Repository navigation
Cut the ctrl/session-container lane at the root, and repair a witness file that never ran - #9483
Conversation
… file that never ran Operator direction: delete anything related to ctrl/session containers; minimize this. Steps 7-9 of the convergence plan are retired by deletion rather than implemented. DELETED, six modules whose only production importers were each other: gunbc.session_auto_publish, gunbc.session_auto_publish_ctrl_ingest (literally the bridge from ctrl publishSessionWorktree), gunbc.session_demand, gunbc.session_demand_observe, gunbc.session_container_projection and gunbc.ctrl_host_provisioning_census, with their four witness files. ~4,700 lines. FIVE LOAD-BEARING EDGES THE IMPORT CENSUS COULD NOT SEE. Delete-first surfaced every one by refusing, which is the whole argument for cutting at the root: - session_demand_observe had ZERO .dag importers and a live consumer: it is invoked BY PATH as a fleet-converge workflow dispatch mode. Removed the mode, the step, the ci_spec target and its invoke. This is the lanes-are-invisible blind spot -- a module census cannot see an actuation consumer. - gunbc.list_membership_operation_gap carried a decl_ref citation into session_auto_publish. With the citation wall now on main, deleting the module would have dangled it and redded the parse phase. - carrier_reference_integrity asserted length(list_membership_gap_sites) >= 5 over exactly 5 rows. Lowered to 4: the SUBJECT went away, not a row hidden to green a ratchet. - gunbc_ci_fleet_job_backstop_timeout_note described the removed mode. The computed value is unaffected -- it derives from always-run counts plus the spark_grants worst case and the removed step was neither -- but the prose asserted a mode that no longer exists. - Two stale prose citations. .github/workflows/fleet-converge.yml REGENERATED from its authority, never hand edited (that file carries an explicit never-hand-edit instruction and a recorded two-day outage from a hand cut). Verified three ways before installing: the diff against the committed file contains ONLY the three intended removals; steps went 25->24 and timeouts 20->19; and the set of steps LACKING a timeout is identical in both, so no surviving step lost one. FREE §3 WIN: PublicationContext and PublicationDisposition were each defined TWICE in the corpus. The live consumer imports from gunbc.publication_policy, so the cluster's copies were dead duplicates and the name collision goes with them. AND A DEFECT I INTRODUCED IN #9351, FOUND WHILE VALIDATING THIS CUT. test.claim.session_reservation_policy_witness_test declared its twelve witnesses as plain `fn`, not `test fn`. The floor discovers by scanning for the literal `test fn ` / `test data ` prefix (v1_compiler cli_run scan_test_decl_lines), so those twelve are INVISIBLE to discovery and have never executed in CI. They passed every time I ran them by hand, and I cited that 12/12 as validation for #9351 -- a file that reads as coverage and carries none, which is worse than an absent file because it gets cited. It also guarded the one carrier this cut KEEPS: session_reservation_policy is what makes srv1's width honest and srv2 refuse. Promoted to `test fn`, assertions unchanged, reason recorded in the file. POPULATION, NOT INCIDENT: 990 corpus witness files use `test fn` and 9 do not. Only mine is repaired here; the other eight are named in the PR body rather than swept in, since each needs its own check that it passes under the floor's hermetic envelope. KEPT: session_admission_policy, session_reservation_policy, session_lease. Deleting the reservation policy would reinstate the fabricated fleet-wide figure #9351 removed; session_lease has two real consumers. Validated by execution: workflow_dispatch_input 6/6, runner_placement 28/28, session_reservation_policy 12/12 both before and after promotion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The floor red on this PR is inherited from main, not caused by this cut. Evidence, and I am not pushing anything for it.
Main's logs are fetchable (its runs completed; this PR's were still locked behind an in-progress Mechanism: gunbc#9397 renamed Nothing in this diff touches A fix is already in flight as gunbc#9492 ("contention finishes #9397's rename (MAIN RED)"), so I am deliberately not writing a second one — duplicate repairs of one fleet-wide break are their own waste. This PR's floor should clear once that lands; it needs a re-run, not a change. Three hypotheses I tested and refuted before reaching this, recorded so the next reader does not repeat them: the floor growth budget ( — sent from warm-tern-755 |
|
Correcting my comment above: main is broken in TWO independent ways, not one. I named only the first, because main's log carried only the first — my own log, which became readable once the run completed, carries both. Break 1 — Break 2 —
Why my first comment missed it, which is the part worth recording. I compared my failure against main run Neither break is in this diff. Nothing here touches Both fixes are in flight and I am writing neither. This PR needs a re-run once #9492 and #9497 have landed — not a change. If it still refuses after both, that result is worth reading fresh rather than assuming a third inherited cause. Adjacent and not mine to pursue here: gunbc#9481 records that the compiler ADMITS duplicate function definitions in one module and silently resolves to the last, which is the class Break 2 sits in. Worth noting that the — sent from warm-tern-755 |
|
Correction to the number I cited for Break 1: gunbc#9492 was closed unmerged at 18:07, contained by gunbc#9488 — the same repair built independently, and better on the arm-reachability question #9492 drew a review round over. #9488 never passes the duration into the ranked fold, so the unobserved arms are structurally absent there rather than present-and-unreachable. So the two blockers under this PR are #9488 and #9497. Both are open and mergeable as of this comment. Nothing else changes: neither break is in this diff, I am writing neither fix, and this PR needs a re-run once both land. Worth stating plainly since I have now cited a wrong PR number once in this thread: "a fix is in flight" is a claim with an expiry, and I checked it rather than carrying it forward. The premise had gone false in the twenty minutes between my comment and this one. — sent from warm-tern-755 |
|
Both inherited main breaks are now merged (#9488, #9497), and I merged current main in rather than clicking re-run — a re-run replays the pinned merge ref, which still carried broken main, so it would have reproduced the identical red and read as a defect in this diff. Head is Before pushing I checked the failure that actually threatens a deletion PR: main moved 67 files while this was blocked, and a new reference to a module deleted here would merge CLEAN and break main. Two hits, both past-tense The floor then refused, and it is not an assertion failure. Run
5005 ms against a 5000 ms CPU cap — a 0.1% overshoot, on a witness this PR does not touch. The authored set here is 20 files and none of them are under Worth stating precisely, because the floor's own message does: this is not a red. The deadline preempted the verdict, so whether that witness passes is UNKNOWN and its real cost is UNMEASURED — 5005 ms is the interrupt point, not the row's cost. Nothing here claims the witness is broken, and I am not claiming it is healthy either. Re-running the failed lane, which is the right move now for the reason it was the wrong move an hour ago: the merge ref contains repaired main, and the refusal is a timing race rather than content. If it recurs, the honest reading is a marginal witness sitting on the cost line rather than anything in this diff — and that is a real finding for whoever owns — sent from warm-tern-755 |
…p the wall that makes the fourth impossible #9483 ("repair a witness file that never ran") deleted two of this branch's four barren specimens with the ctrl/session-container lane and promoted a third in place, while this repair was in flight. Resolution takes main's deletions and main's WHOLE version of session_reservation_policy_witness_test — including the aggregate this branch had deleted. Deleting theirs is still the right call for the reason the leaf promotions make it redundant, but a deletion arriving as conflict resolution carries no reasoning a reviewer can see; it belongs in its own change with the double-assertion argument stated, not smuggled through a merge. WHAT SURVIVES, and it is the point rather than the remainder: the wall, and the one specimen nobody happened to be cutting a lane through. filesystem_read_outcome_witness_test.dag is STILL BARREN on main tonight — the barren census over all 1708 `*_test.dag` entries under both roots returns exactly one — and its three claims are promoted here. After this, zero. #9483 is a repair; this is a construction. The clean test is what happens to the NEXT instance: after a repair, nothing; after the wall, it refuses. The surviving specimen is the receipt that repair does not close the class. And the RED control is stronger for having been overtaken. It named four specimens, three were then removed by an unrelated human action, and the wall's verdict on the survivor did not move — so the mechanism does not depend on the population it was discovered from, which is exactly what a reviewer would otherwise ask to be shown. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aG5paMUmwmfRSp7czE5dY
…ess under budget required-witnesses-floor refused two cost rows, no wrong verdict: - instance_gap_carrier_declaration_refs_all_resolve (withheld cost debt on main) PASSED-OVER-BUDGET at 34.9 s, almost all of it the shared module_path_index fill it paid (629 eval steps of its own). It ran because the explanatory comment added in 18d6aa6 sat between its closing brace and the next test fn, and changed-witness selection attributes changed LINES to declarations (claim_edit_changes_execution_policy_outside_reported_cost_delta). The comment is removed; the #9483 provenance already lives in the carrier prose, the commit and the PR body. The file's diff is now the import and the two conjuncts inside instance_gap_carrier_ref_population_is_not_empty only. - lex_rule_dispatch_agrees_with_trying_every_rule: 72,615 steps vs 72,300. Two redundant specimens dropped (fnord duplicates iffy's keyword-prefix case; !x duplicates the !/!= shared first character). Local gunbc run: 19 checked, 18 pruned, 0 disagreements, pass; no-residual mutant 4 disagreements, fail. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NHwsRfYwr6M5rXcCQFNdar
Operator direction: "I would err towards deleting anything related to ctrl/session containers, if possible - i really want to minimize this stuff." Steps 7-9 of the convergence plan are retired by deletion rather than implemented.
20 files, -4,780 / +38.
Deleted
Six modules whose only production importers were each other, plus their four witness files:
gunbc.session_auto_publishgunbc.session_auto_publish_ctrl_ingestpublishSessionWorktreegunbc.session_demand_observegunbc.session_demandgunbc.session_container_projectiongunbc.ctrl_host_provisioning_censusFive load-bearing edges the import census could not see
Delete-first surfaced every one by refusing. That is the argument for cutting at the root rather than reading first:
session_demand_observehad zero.dagimporters and a live consumer — it is invoked by path as afleet-convergeworkflow dispatch mode. Removed the mode, the step, theci_spectarget and its invoke. This is the lanes-are-invisible blind spot: a module census cannot see an actuation consumer.decl_refcitation intosession_auto_publishfromgunbc.list_membership_operation_gap. With the citation wall now on main, deleting the module would have dangled it and redded the parse phase.length(list_membership_gap_sites) >= 5over exactly 5 rows. Lowered to 4 — the subject went away, not a row hidden to green a ratchet.gunbc_ci_fleet_job_backstop_timeout_notedescribed the removed mode. The computed value is unaffected (it derives from always-run counts plus thespark_grantsworst case, and the removed step was neither), but the prose asserted a mode that no longer exists.The generated workflow was regenerated, not edited
.github/workflows/fleet-converge.ymlcarries an explicit never-hand-edit instruction and a recorded two-day outage from a hand cut. Regenerated fromgunbc.generated_artifact_emitand verified three ways before installing: the diff against the committed file contains only the three intended removals; steps went 25 to 24 and timeouts 20 to 19; and the set of steps lacking a timeout is identical in both, so no surviving step lost one.Free §3 win
PublicationContextandPublicationDispositionwere each defined twice in the corpus. The live consumer imports fromgunbc.publication_policy, so the cluster's copies were dead duplicates and the name collision goes with them.A defect I introduced in #9351, found while validating this cut
test.claim.session_reservation_policy_witness_testdeclared its twelve witnesses as plainfn, nottest fn. The floor discovers by scanning for the literaltest fn/test dataprefix (v1_compilercli_runscan_test_decl_lines), so those twelve are invisible to discovery and have never executed in CI.They passed every time I ran them by hand, and I cited that 12/12 as validation for #9351. A file that reads as coverage and carries none is worse than an absent file, because it gets cited — and it was. It also guarded the one carrier this cut keeps:
session_reservation_policyis what makes srv1's width honest and srv2 refuse.Promoted to
test fn, assertions unchanged, reason recorded in the file rather than renamed silently.This is a population, not an incident. 990 corpus witness files use
test fn; nine do not:Only mine is repaired. The other eight are named here rather than swept in: each needs its own check that it passes under the floor's hermetic envelope, which is different work from this cut. Naming them is the point — they are 17 further assertions that currently read as coverage and never run.
Kept, deliberately
session_admission_policy,session_reservation_policy,session_lease. Deleting the reservation policy would reinstate the fabricated fleet-wide figure #9351 removed;session_leasehas two real consumers (host_effect_nbd_proxy_serve,roadmap_dispatch_actuator). If those should go too it is a further cut with a cost worth stating first.Validated by execution
workflow_dispatch_input6/6 ·runner_placement28/28 ·session_reservation_policy12/12 both before and after promotion.