Repository navigation
The floor's own comment recommended the relocation its refusal forbids - #8456
Merged
Merged
Conversation
required_floor.dag offered 'move it to a designated long/ home that CI does not run' as one of two honest remedies for an over-ceiling row. That is the move the 2026-08-04 admission ruling forbids, and the interpreter's EvaluationBudgetExceeded text argues against it explicitly three files away. Two authorities in one tree disagreed and this was the one recommending the defect. Nothing executes a long/ home: the tree carries witnesses.yml and fleet-converge.yml, and the falsifier cadence died in the floor cut. So relocating deletes coverage while retaining source -- the gunbc#7762 specimen. Comment only; no behavior change. Found by quiet-ibex-39 censusing the runaways. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 18, 2026
…relocation-as-remedy tidy-lark-471's forward-looking catch, and it is a real risk rather than a stylistic one. #8456 says relocation is not an honest remedy for an over-budget row; #8457 relocates 21 modules. To the next reader those look contradictory, and the cheap wrong conclusion is that required_floor's comment is stale and should be reverted -- which would leave the floor advertising the unsanctioned move again. They are different acts. An author moving their own over-budget witness deletes coverage silently (the gunbc#7762 specimen). An operator-ruled bounded rung-drop with a named population and a restoration trigger is permitted by DESIGN 4b. The distinction is declaration and reversibility, never the directory -- so the carrier now says so where the relocation happened, rather than leaving the distinction in two PR bodies that no consumer reads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Aug 18, 2026
…ed rung drop (#8457) * Move the 5 over-budget witnesses to long/ homes and retire their roster rows Operator direction (2026-08-18): move the five PassedOverBudget identities to long/ for now; a separate worker is draining the expensive population out of long/. Each module is renamed into a long home (test.claim.long.*), which is how required_floor excludes it -- the exclusion is by AUTHORED MODULE NAME via long_home_prefixes, not by file path, so the rename is the mechanism and the directory move is for humans. THE ROSTER ROWS GO WITH THEM, and this is not optional. main enrolled all five after #8447 (roster 464 -> 469). An enrolled identity that no longer executes trips the floor's did-not-execute check, which walks the roster looking for identities no claim reported. Leaving them enrolled would swap one refusal for another. Roster returns to 464. Enrollment was never going to clear these anyway: they PASS over budget, so an enrolled row reports STALE-QUARANTINE plus BUDGET-REFUSED -- both red. That is the same move I shipped and closed in #8438. Stale path and module citations updated rather than left dangling: ci_layer_roots.dag (2 entry rows), floor_effect_gate_witness.dag (1 prose path), and the self-referencing decl_ref inside the dissolution census witness. THIS DOES NOT MAKE MAIN GREEN. It clears the failed channel only; budget_refused=97 exits 1 on its own (evidenced by run 32143198793: failed=0, budget_refused=130, exit 1). Those 97 are interrupted rows whose true cost is unknown, measured by probe #8451. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Quarantine the 102 over-budget witnesses to long/ homes; roster 469 -> 361 Operator direction: get CI green, treating these witnesses as effectively failing. Decomposing them is a separate lane already staffed; this change only removes them from the required floor so the floor's verdict is about everything else. WHAT MAKES A WITNESS LEAVE THE FLOOR: its module's AUTHORED NAME, via required_floor long_home_prefixes. Not its directory -- the host used to test the path and that was ruled out in 2026-08-17 precisely because a directory is not a fact the program reads. So each file is moved into a long/ dir AND its module renamed under one of the three valid prefixes; the rename is the mechanism, the move is for humans. All 17 verified to carry a valid prefix. THE ROSTER ROWS GO WITH THEM. An enrolled identity that no longer executes trips the floor's did-not-execute check, so leaving them would swap one refusal for another. 469 -> 361, exactly the 108 identities whose modules moved, no others, chunk brace structure verified balanced. POPULATION, from main run 32177951514 (budget_refused=97, stale=5): 60 rows in 9 files where EVERY witness was red -- no collateral 37 rows in 8 files with healthy siblings -- collateral, declared below 5 rows already moved earlier in this branch DECLARED COVERAGE LOSS (§4b rung drop, loud rather than silent): 78 healthy, fast, passing witnesses leave the floor because they share a file with a slow one. Worst cases: roadmap_page_witness 29, live_read_classification 17, add_arrow_eval_by_execution 13, loop_eval_by_execution 7, bind_eval 6. They are not refused, not failing, and nothing will report them missing -- which is exactly why the number is written here. Splitting each file to strand only the slow witnesses was considered and rejected for now: loop_eval_by_execution alone is 516 lines with ~20 interdependent local helpers, and eight such surgeries cannot be verified without a floor run each. RESTORATION TRIGGER: as the cost lane fixes a module, that module returns to the floor whole and its siblings return with it -- so the collateral dissolves with the work already scheduled, and is not a population anyone must separately remember. Importers of the renamed modules updated in the same motion (9 files), including two roster-row string references and five real imports. THIS DOES NOT FIX THE WITNESSES. It makes the floor's verdict trustworthy about the other 9,318 rows while the cost work proceeds. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Declare the roster shrink as a bounded rung drop on the carrier itself tidy-lark-471's mechanical objection, taken: nothing in this tree guards roster SHRINKAGE. An empty roster refuses (they landed that today), but 469 -> 361 reads as perfectly healthy -- indistinguishable from the defect that silently dropped 197 identities and went unnoticed for an hour. So the drop is now declared where the population lives, not in a PR body that no consumer reads: previous rung, temporary rung, reason, both halves of the bounded population (108 enrollments AND the 78 healthy collateral siblings), and the restoration trigger. It also records what this is NOT: every other removal from this roster came from OBSERVING a pass, and these did not. Calling that out on the carrier is the difference between a declared temporary measure and the class of bug this roster spent today recovering from. Operator decision: land the quarantine, investigate the root cause after. The restoration trigger names that root cause with the evidence three sessions gathered independently today -- the cost is the evaluation context, not the witnesses; no genuinely slow witness has been found. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Inoculate the rung-drop note: this quarantine is not a precedent for relocation-as-remedy tidy-lark-471's forward-looking catch, and it is a real risk rather than a stylistic one. #8456 says relocation is not an honest remedy for an over-budget row; #8457 relocates 21 modules. To the next reader those look contradictory, and the cheap wrong conclusion is that required_floor's comment is stale and should be reverted -- which would leave the floor advertising the unsanctioned move again. They are different acts. An author moving their own over-budget witness deletes coverage silently (the gunbc#7762 specimen). An operator-ruled bounded rung-drop with a named population and a restoration trigger is permitted by DESIGN 4b. The distinction is declaration and reversibility, never the directory -- so the carrier now says so where the relocation happened, rather than leaving the distinction in two PR bodies that no consumer reads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Pre-merge repair: 50 stale pre-move paths, and the roster denominator said 469 while carrying 361 Both found by an external reviewer mid-review on this PR, relayed by tidy-lark-471, and both real. I had verified module NAMES after the moves and never re-scanned PATH literals, which is the half that actually broke. (1) STALE PATHS -- 50 literals across 13 files still named a pre-move path. The dangerous one is witness_deferral_freeze.dag (9): its own note says a frozen row naming a witness the tree no longer carries is a StaleFrozenPathDeferral REFUSAL, so those rows would have failed the build, not degraded quietly. commit_workflow (4), ci_layer_roots (22), the three self-host frontiers (7), prose_row_frontier (2) and four others follow the same shape. Zero remain. The opposite failure was possible too and is worth recording: exclusion patterns match by SUBSTRING, and every move changed only the directory, never the filename -- verified, 21/21 basenames identical -- so bare-filename patterns still match and no row silently returned to the floor unannounced. (2) DENOMINATOR -- the header still read 'POPULATION: 469 identities' while the file carried 361. A count that contradicts its own contents is the change detector this project rejects, in the one file whose justification is being visible at identity grain. It now reads 361, states the 469 -> 361 drop, and says explicitly that the 78 collateral siblings are counted by NO number here -- because a half-counted population is exactly how the 78 would later become invisible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Name the 6 known_red_held identities the rung drop was rounding into 102 tidy-lark-471 verified what the external reviewer reached by arithmetic, and I reproduced it: the roster drops 108 identities, of which exactly 102 are the cost population (identity join against main run 32177951514 -- all 102 removed, none missed) and SIX are not. Those six were known_red_held: enrolled, and behaving exactly as enrolled. They leave because they share a module with a relocated row, not for anything about their own cost or verdict. Five are add_arrow_eval_by_execution rows and one is realization_sweep. The declaration said 108 and explained 102, which is a population described at a grain it is not actually bounded at -- the precise failure this roster exists to avoid, in the file whose whole justification is identity-grain visibility. They are now named individually, and typed as a THIRD collateral class: the 78 are unenrolled and passing, these six were enrolled and correctly red. Both leave for the same reason and both return when their module does. Also recording, so a stale review is not re-litigated later: the companion finding that commit_gate_roster and the live-discovery test retain pre-move bind/loop paths is REFUTED at this head. tidy-lark-471 checked it the general way -- every quoted .dag path on the branch diffed against the branch file list, then asked of each missing one whether it exists on main, which is the signature of a path these moves broke. Zero. The only surviving mentions are two lines in a historical measurement receipt, which is not a consumer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Second wave: quarantine everything over 1000ms, plus one measured straggler Operator-directed. Run 32186963581 on the first wave proved the approach and exposed its residue in one motion: stale_quarantine=0 budget_refused=0 <- both channels CLEARED known_red_held=361 failed=8 <- new The 102-row quarantine did exactly what it claimed. The 8 failures are rows that were PASSING under the ceiling and tipped over it once the slow head was gone -- and 7 of the 8 sit in the 1000-1552ms band I flagged as the tip risk before the run, so this is the predicted failure mode arriving on schedule rather than a surprise. This wave moves 16 modules: the 15 measured over 1000ms, plus test.claim.e0308_mechanical_trio_test at 774ms. That last one is BELOW the operator's line and is quarantined anyway because it actually failed on 32186963581 -- evidence beats threshold, and leaving a measured failure in place to honour a round number would red the tree for a rule. Roster 361 -> 358. About 200 further healthy siblings leave under the same module-grain rule as the 78, and the declaration says so. The underlying reason, recorded on the carrier: 1552ms was calibrated as measured-max-plus-one-quantum from a SINGLE 1527ms observation, so anything within a few hundred ms of it is not stably green on a shared runner. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Quarantine emitted_lib_rs_module_declaration_witness_test (42545ms) The 1000ms wave took failed 8 -> 1. The survivor is a module that costs 42545ms -- 27x the ceiling -- and it was missed for an instructive reason recorded on the carrier: the cost table it was screened against came from a run where the 30s wall interrupted the slowest rows, so censored rows reported their deadline (30000ms) instead of their cost. The table systematically under-reported precisely the rows most in need of quarantine, and I read those lower bounds as values. 3 witnesses leave with the module. No roster row named it; roster stays 358. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Comment-only.
src/v2/workflow/required_floor.dagoffered, as one of two "honest remedies" for an over-ceiling row:That is the move the 2026-08-04 admission ruling forbids, and the interpreter's own
EvaluationBudgetExceededtext argues against it explicitly three files away:So two authorities in one tree disagreed about the remedy, and this was the one recommending the defect. Nothing executes a
long/home — the tree carrieswitnesses.ymlandfleet-converge.yml, and the falsifier cadence died in the floor cut.The two honest remedies are now stated as: reduce what the witness reaches for, or enroll it in a lane that declares its own dated ceiling AND names the row as an executing consumer.
Found by quiet-ibex-39 while censusing the runaway witnesses for #8455 — they flagged it rather than fixing it, correctly, since it's in the floor's area.
🤖 Generated with Claude Code