Repository navigation
Two witnesses drifted from legitimate changes: deploy-order oracle pinned tree,binary; seat oracle copied group B's ceiling - #11821
Conversation
…e pinned tree,binary; the seat oracle copied group B's ceiling Both reds reproduce from source on main and both are oracle drift, not production defects (DESIGN 6b: the earliest unjustified boundary is the transcription in the witness, every upstream contract holds). - test.claim.deployed_tree_remote_witness the_remote_converges_after_its_inputs_and_before_the_belt pinned the sequence tree,binary,... while gunbc.live_deploy.spec deployment_steps_apply_order states binary-then-tree with its reason (the tree is published by a oneshot that RUNS the admitted binary, review on #10696). The claim's own annotation never made the order of those two its subject. The literal now follows the authority, and the stale prose on deployment_tree_remote_unit_name is corrected to match. - test.claim.harness_seat_witness the_tolerant_pool_is_a_separate_pool_whose_ceiling_is_not_the_engines_sequence_limit transcribed group B's tolerant ceiling as 1 after #11617 superseded gunbc.serving.serving_enrollment serving_group_b_route_turn_ceiling to 4 (and updated serving_routing_witness but not this one). The copy is removed rather than re-copied: the claim now asserts the harness pool ceiling equals serving_route_turn_ceiling_count(serving_route_ceiling) for each group -- the ROUTE of the number is the subject -- and keeps != quality ceiling and != engine max_num_seqs as the discriminators. The two serve-unit oracle claims reported red at 43643ba were already repaired by #11484 (after that base): at the base the oracle pinned --host 0.0.0.0 / --eval-budget-wall-ms 30000 while production rendered 127.0.0.1 / 120000. #11723 is a descendant of that base and did not cause them. No change to those claims here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Executed evidence for the deploy-path pair (green on main). Run locally at 3bf84fc (= origin/main 2f18c48 + this PR's commit; the two claims and their production closure are unchanged by this PR — the only touch in their closure is annotation-only prose in The refusal is the
The two witnesses this PR edits are executed by this PR's own |
…nit) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Executed red→green for both repaired witnesses (local (Each line is the Do not read this PR's Review nit (the "second conjunct" prose) fixed in afd7ae9. |
DESIGN 4b: every newly discovered error class files one row under dag/gunbc/recurring_failure_mode/. The class here is a required lane binding an instrument that RECORDS its verdict into a receipt and binding nothing that reads the receipt back, so a completed measurement carrying blockers concludes success. The row carries the two executed receipts (PR #11821 run 35497139573; merge_group run 35550476069 green over 'floor refused'), the sediment the darkness accumulated once the adjudicator could refuse, the boundaries against the two nearest rows (required_evidence_absent_reads_as_evidence_of_pass, where nothing reported; required_lane_green_over_a_population_it_never_offered, where the denominator is partial), and states the ceiling as structurally impossible with the capability trigger: a bound step naming an output artifact carries its adjudicating consumer in the same value. The claim landed in this PR is the rung 2 step, not the ceiling. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…uses the lane (#11829) * Required gate: bind the receipt's adjudicator, so a refused floor refuses the lane The floor job of gunbc.compiler_gate_workflow ran claim_executor with --measurement-receipt and bound nothing that read the receipt back. Under that flag a completed measurement carrying blockers exits 0 -- the blockers are the receipt's content, and the verdict belongs to the D0-ADJUDICATE step that gunbc.witness_floor_workflow binds after the producer. The gate did not bind it, so a refused floor and a passed floor were indistinguishable at the job conclusion: PR #11821 run 35497139573 logged 'floor refused ... phases_run=2 phases_failed=2', evaluated no claim, and concluded success. A required lane that cannot go red is DESIGN section 5's fail-open arm, live on main since #11742. Repair (roadmap manager decision, option B): the floor job re-binds gunbc.witness_floor_workflow required_ci_measurement_bound_steps -- D0-MEASURE (seal an unreached receipt), D0-PUBLISH (upload it), D0-ADJUDICATE (read it back, exit 1 on any blocker) -- immediately after the run step, exactly where the floor authority binds them, so one receipt has one refusal mechanism (section 3). The alternative, dropping --measurement-receipt so the run step itself exits 1, was refused: it fuses a refused floor with a killed runner and loses the receipt. witnesses.yml regenerated from its authority (tools.generated_artifact_gate main_wet_one): 61 added lines, the three steps, nothing else. Wall: test.claim.compiler_gate_workflow_witness_test asserts over the emitted job's step positions that the adjudicator is bound after the producer, and over the emitted yml that it is present. Both were red on main before this change. Blast radius, stated plainly: every floor success between #11742/#11761 and this landing is unverified. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * File the failure-mode row for the class this PR repairs DESIGN 4b: every newly discovered error class files one row under dag/gunbc/recurring_failure_mode/. The class here is a required lane binding an instrument that RECORDS its verdict into a receipt and binding nothing that reads the receipt back, so a completed measurement carrying blockers concludes success. The row carries the two executed receipts (PR #11821 run 35497139573; merge_group run 35550476069 green over 'floor refused'), the sediment the darkness accumulated once the adjudicator could refuse, the boundaries against the two nearest rows (required_evidence_absent_reads_as_evidence_of_pass, where nothing reported; required_lane_green_over_a_population_it_never_offered, where the denominator is partial), and states the ceiling as structurally impossible with the capability trigger: a bound step naming an output artifact carries its adjudicating consumer in the same value. The claim landed in this PR is the rung 2 step, not the ceiling. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Drop the emitted-yml claim: the drift gate and the job claim already compose to it The claim over the emitted bytes re-rendered the whole workflow to read two substrings, and the floor adjudicated it at 97132 eval steps against the 72300 a new witness is allowed (the claim over the job costs 55109 and passes). The budget refusal is the tell rather than the rule that was broken: the cheap way to keep it was a 4b(3) drop, and DESIGN forbids buying reach with a debt row. It was also redundant. The drift gate establishes that the committed yml IS the projection of gunbc.compiler_gate_workflow, and the surviving claim establishes that the authority binds the adjudicator after its producer, so the bytes carry it by composition -- two facts with one home each, not one fact asserted twice. The deletion is recorded on the carrier with the measurement that forced it. 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>
What this is
Work item: four witnesses reported RED at base 43643ba (session gentle-seal-606). Two are in the deploy path. This PR repairs the two that are real oracle drift on main and records why the deploy-path pair is a stale report. Evidence class is stated beside every claim.
The deploy-path pair — stale report, no change here
live_deploy_unit_emission_oracle_witness_test:the_serve_unit_matches_the_deployed_bytes,serve_unit_execstart_carries_admitted_entrypoint.emit.dagchange addslive_deploy_fabric_db_unit_filebeside the serve emitter without touching the serveExecStartproducer.--host 127.0.0.1(roadmap_dashboard_instancelisten_host) and--eval-budget-wall-ms 120000(dashboard_serve_wall_limit), while both claims still pinned0.0.0.0/30000. approval loop D: converge materialization, loopback bind, mtcollins1_boot mode #11484 (121a4d4, after the base) corrected exactly those literals in exactly those claims.spec.service.listenand the two limit rows) held at every link. The deploy machinery was not lying.Ordering witness — oracle drift, fixed
(source-derived; executed by this PR's floor run, which plans edited test fns)
deployment_owned_stepslistsServeBinarythenGunbcSourceTree;deployment_steps_apply_order's annotation states binary-then-tree with its reason (the tree is published by a oneshot that RUNS the admitted binary; review on #10696). The witness literal pinnedtree,binary,…; its own annotation never made the order of those two its subject. Literal follows the authority now; the stale prose ondeployment_tree_remote_unit_nameis corrected to match.Seat witness — oracle drift, transcription removed
(source-derived; executed by this PR's floor run) #11617 superseded
serving_group_b_route_turn_ceiling1 → 4 and updatedserving_routing_witnessbut notharness_seat_witness, which had copied1. Per the parent's direction the copy is removed, not re-copied: the claim assertsw_tolerant_ceiling(g) == serving_route_turn_ceiling_count(serving_route_ceiling(g))for both groups (the harness reads the enrollment row), and keeps!= quality ceilingand!= engine max_num_seqsas the discriminators. The row moving no longer reds anything.Why all four drifted unseen — the finding beyond the four
The required floor (
floorjob,claim_executor --required-ci --required-lane witnesses) plans the CHANGED witness set from the test fns the diff touched —required_floor_runner.rschanged_witness_identities_from_edited_test_fnsoverfloor_diff_edits_from_line_ranges— not from the whole corpus. So an oracle that transcribes a production value is only ever executed when its own file is edited; a production change that moves the transcribed value (listen host, wall budget, apply order, a ceiling row) never plans the witness, and its red stays invisible until someone edits or runs it. All four reds here are that class. (An earlier revision of this body wrongly said no witness executes in CI — that was a read of one run's job roster from before #11761 restored the floor job; corrected by the parent, verified againstwitnesses.ymlat origin/main.)Evidence status
claim_batchon BuildBuddy was SIGKILLed (137) on the live_deploy closure andgunbc runthere refusedMemoryStallRefusedPageThrashon every one of these closures; locally the host sat at 96/125 GiB and bothclaim_batch(MemoryStallRefusedPageThrash) andgunbc run(25 min, 26 s user / 21 min sys, timed out) thrashed. A local run is in progress with headroom; results will be posted here verbatim, or the blockade stated if it persists.v1_src_dag_parse) is clean for the three edited files.🤖 Generated with Claude Code