diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 0fd0ce9..250f2ea 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -280,3 +280,23 @@ cluster addresses as the class's strongest members. global-ra family is a second library-asm class (ra in a global, no stack frame — the CRT-entry pattern outside the CRT). - Worker B continues on 14 clean tier-1 leaves in partition A. + +## Cycle 3 — recorded-negatives exclusion (the queue fix) + +- Worker B measured that recorded negatives cluster at the head of every + partition: 39 of the first 40 worklist rows and 57/271 tier-1 rows (21%) + were attempted-and-recorded addresses. sf3_triage never read the negatives + index, so closed negatives returned to the queue head every cycle. +- Fix (committed a38aa26): sf3_triage reads config/near_match_negatives.tsv + (new --negatives input, tracked) and excludes those rows as + excluded_recorded_negative=69. Tracked index grown 38→94 by importing the + phase's 56 unregistered negatives (workers A/B/C + coordinator absorption). + Worklist regenerated to 1,490 rows (tier 1=214, tier 2=1274, tier 3=2); + 3 new synthetic tests. Partitions re-proved disjoint (497/497/496). +- Worker B cycle-3: 0 matches / 12 attempts, causes separated (queue defect + fixed; class-blocked call-shape rows; two self-inflicted incl. the + lui-immediate misread lesson — cookbook material). B's handoff paid off: + 0x80101838 and 0x80036A9C are registered by worker C's late run. +- Coordinator absorption this segment: 0x800266A8 (3B, two fresh re-spellings), + 0x80042D88 (strength-reduce, 2 spellings) recorded as negatives. 310 + regions / 301 distinct bodies; all gates green; SHA-1 stable.