Repository navigation
CI floor: prove whether the 64-row bin-witness wet batch executes per-PR — it is absent from three job logs and its observability receipt emits zero rows - #7857
Merged
Conversation
gunbai-bot
Bot
force-pushed
the
session/wise-ibex-779
branch
from
August 5, 2026 19:04
1f6ec4e to
e84f8a4
Compare
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 5, 2026
The first draft cited "#7770 twice, #7791, #7835, #7857". Two errors: #7770 hit the author-commit-required class three times on 2026-08-05 (ci.yml at 04:39 and 17:42, falsifier.yml at 06:34), and #7835 was only a prospective warning, never a confirmed incident — the real fourth PR is #7772. Verified against this lane's dispatch receipts rather than recall, and the count is now stated as a floor rather than a census. A wrong enumeration inside a canonical carrier is the citation class DESIGN §3 names, so it gets the same bar as any other cited fact. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase merged #7856 path_intent cgroup ascent with wet receipt post-step; main_wet restores committed workflow bytes for heal author-commit gate. Co-authored-by: Cursor <cursoragent@cursor.com>
Class B pool-coincidence: stripped file resolved only when an unrelated closure dragged md_helpers into the pool. Whole-tree compile-clean after workflow yml commit exposed the latent main defect; restore imports per sibling plan modules until closure-independent binding lands. Co-authored-by: Cursor <cursoragent@cursor.com>
Main already restored md_helpers imports in #7872; keep file byte-identical to main so this PR carries only the wet-batch observation work. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot
Bot
force-pushed
the
session/wise-ibex-779
branch
from
August 5, 2026 20:28
6bcb8fa to
40e800e
Compare
4 tasks done
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 5, 2026
Import-stripped plan resolved only by pool-membership coincidence; whole-tree compile-clean exposes bare references to md_helpers and markdown types. Same fix as #7857. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 5, 2026
Import-stripped plan resolved only by pool-membership coincidence; whole-tree compile-clean exposes bare references to md_helpers and markdown types. Same fix as #7857. Co-authored-by: Cursor <cursoragent@cursor.com>
…size. Thread spawns_host_compiler from RunnableDiscoveryBatch through BatchUnit into run_discovery_batch_node so bin-witness vs execution lanes stay correctly labeled even if the execution roster grows past the old count heuristic threshold. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
pushed a commit
that referenced
this pull request
Aug 6, 2026
…les from the path roster (#7830) * WIP: import -> namespace (import deletion) * chore: regenerate drifted generated artifacts (ci auto-heal) * Namespace closure: three prerequisite rows in front of reference-derived-closure namespace-reference-derived-closure carried a six-capability set-difference closing contract in which every row read Unavailable, while the node itself was the only dispatchable thing in the lane -- one startable row standing for three separable pieces of work with different substrates. The cut follows the contract's own triggers, which already record what each capability waits on: namespace-structural-observations 4 caps, P2aStructuralCandidateProducer7515 namespace-cross-file-provenance 1 cap, P2aReferenceDependencyProjection7515 namespace-pool-independence 1 cap, P2aPoolIndependentDependencyProjection7515 The first two are parallel -- no dependency runs between the same-file rules and the cross-file projection. Pool independence depends on cross-file provenance because a differential needs a projector to perturb. No new identity was minted for integration or for the census. namespace-reference-derived-closure keeps its durable identity and now denotes the aggregate handback (its first_slice moved; its boundary, which still covers all six, did not). namespace-ambiguity-discharge keeps its identity and its existing dependency on the closure node. The three new rows are deliberately ExecutionContractUnspecified. Each first_slice names authoring its own closing check as its first act, per v1_lane_binding_survey_note: the contract follows the witness, never precedes it. The derived closing-contract tasks for the two startable rows are the honest fail-closed state, not a gap; pool-independence gets none because it is dependency-held, and could not carry one anyway -- its differential compares an output shape its prerequisite has not yet produced. Also adds roadmap-receipt-continuity (roadmap-runtime, off the namespace spine): a receipt that was valid and is now absent refuses unless an explicit revocation names the exact node, the exact record, a reason and its disposition. Motivated by #7739, where a branch spent real effort reconstructing an acceptance record that already existed because nothing refused when it went missing. Distinct from startable_nodes_missing_closing_contract, which finds nodes that never had a check rather than accepted state that vanished. Evidence, by execution on this tree: - roadmap_authority_test: 42/42 witnesses PASS - generated_artifact_drift_test: 7/7 PASS - ROADMAP.md regenerated via main_wet on dag/tools/generated_artifact_gate.dag; the projection shows reference-derived-closure requiring the two new prerequisites, and derived closing-contract tasks appearing for exactly the two startable unbound rows. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * WIP: import -> namespace (import deletion) * Remove stray empty file committed by WIP auto-commit An empty file named 'true' was created in the worktree by a shell-quoting mishap while sending dashboard messages, then picked up and committed by the WIP auto-commit process. It is not on main and carries no content. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * WIP: import -> namespace (import deletion) * Regenerate ci.yml: heal repair artifact publishes its hidden payload Author-committed because the GitHub App lacks workflows:write, so the heal job can detect this drift but can never push the fix. Emitted from the ci_workflow.dag change in this branch; the value is derived from author_commit_required_committed_artifact_paths(), not hard-coded. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Correct the incident enumeration in the hidden-files note The first draft cited "#7770 twice, #7791, #7835, #7857". Two errors: #7770 hit the author-commit-required class three times on 2026-08-05 (ci.yml at 04:39 and 17:42, falsifier.yml at 06:34), and #7835 was only a prospective warning, never a confirmed incident — the real fourth PR is #7772. Verified against this lane's dispatch receipts rather than recall, and the count is now stated as a floor rather than a census. A wrong enumeration inside a canonical carrier is the citation class DESIGN §3 names, so it gets the same bar as any other cited fact. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Regenerate ci.yml against merged main (author-committed) The merge brought in 52 commits of main, and the generated-artifact merge driver keeps this side's copy for generated paths, so the merged ci.yml was this branch's pre-merge bytes: it was missing main's new registered plans and stage0 modules in AUTHORED_CONFLICTS, the heal commit's --no-verify, several step ids, and a test-negation respelling. Regenerated from the authority rather than hand-merged. The output now differs from origin/main by exactly one line — the include-hidden-files key this branch adds — which is the check that the regeneration is correct rather than a plausible-looking text merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * WIP: import -> namespace (import deletion) * WIP: import -> namespace (import deletion) * Remove the floor/heal gating model change: it belongs to #7882, not here review 49102 is correct and this was my error. ci_workflow.dag declared needs: [build, regen, heal_generated_artifacts] with a job-level if, while the committed ci.yml carried neither -- an internally inconsistent PR that would have failed ci_yaml_parse_witness, since expected_ci_yml() serializes the model. The cause was mechanical rather than a decision: the gating work was in this worktree when the WIP auto-commit picked it up and pushed the .dag half, while the regenerated ci.yml was discarded by a local reset moments later. The two halves were split across a push boundary. The fix is removal, not regeneration. That change is not in this PR's scope and already exists as #7882, authored on main with its own witnesses and a proven RED control. Regenerating ci.yml here would have made this PR self-consistent by duplicating another PR's change, which is the worse resolution of the two. The three files are restored to cfea75a, the last head where this branch carried only the heal-artifact fix. Regen after the restore produces no ci.yml drift, which is the check that model and artifact now agree. 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>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 6, 2026
Both #7763 and #7857 touched dag/gunbc/ci_layer_roots.dag, the same file this branch deletes two long-lane roster rows from. The textual merge is clean, which is exactly the case worth re-executing rather than trusting: a roster defect can live only in the composition of two individually correct changes.
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.
Auto-opened by session-dashboard for session
wise-ibex-779.Pushing to
session/wise-ibex-779advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective. (dashboard nodeadhoc-0c003561-2bf; no GitHub issue.)Summary
Question: does the ~64-row
bin_witness_wet_entriesbatch actually execute on every PR, given it is absent from several job logs andtarget/floor-wet-witness-row-outcome-receipt.tsvreports zero rows?Answer (by execution, not log grep alone):
Scheduling is enrolled. New witnesses in
ci_floor_plan_witness_test.dagprove the bin batch is present ingunbc_ci_floor_ordinary_batchesand that the live floor schedules four discovery corpora (hermetic floor + execution + bin-witness + pr-native wet). Log absence of✓/PASSlines after hermetic discovery cannot, by itself, prove the batch never ran.The zero-row receipt is an observation problem, not a skipped mechanism. On main, PR Schedule live_rust closing contract on bin_witness wet lane #7698's worker receipt + coordinator replay do run (
wet-witness-row-outcome-receiptstarted/completed in the phase journal), but emit zero[wet-witness-row-outcome]lines — the receipt truthfully reports0 row(s). That collapses executed / selection-skipped / batch-not-reached into one green surface (DESIGN §5 absorbing-fallback at the observation layer).This PR extends observation so the next CI run can discriminate: discovery batches log as
bin-witness-corpus[...]/execution-corpus[...](not indistinguishablediscovery-corpus[...]); coordinator replay rows and receiptrow_countpersist intoGUNBC_FLOOR_PHASE_JOURNAL; the ci/falsifier post-step dumps the wet receipt TSV beside the phase journal.bin_witness_wet_per_row_actions_log_observation_gap_noteis updated with the scheduling read and the dissolve-on (measured CI grep with run/job IDs forlive_rust_observation_matches_actions_subject).Still open after merge: whether zero rows means the bin batch produced no
witness_row_costsrows vs a worker/coordinator path mismatch — the observation extension is the discriminating receipt that closes that fork on the next green run.Incidental receipt: heal's
heal-author-commit-requiredartifact has been empty on every run since landing (HealAuthorCommitRequirednames both workflow paths; upload reports "No files were found") — measured on this lane; fix tracked in #7830 (include-hidden-filesderived from the author-commit roster).Test plan
claim_batch --wet --entry dag/tools/generated_artifact_gate.dag --function main— drift gate PASS (committedci.yml/falsifier.ymlmatchexpected_ci_yml/expected_falsifier_yml)claim_batch --wet --entry dag/tools/generated_artifact_gate.dag --function main_wet— regen PASSclaim_batch --entry src/v2/test/claim/ci_floor_plan_witness_test.dag --function ci_floor_plan_witnesses— schedule witnesses PASS (includeswitness_live_floor_schedules_bin_witness_wet_batch,witness_live_floor_discovery_batch_count_is_four)claim_batch --entry src/v2/workflow/ci_floor_peak_emit_test.dag --function ci_floor_peak_post_emit_matches_golden_holds— post-step emit golden PASS40e800e— build, regen, heal_generated_artifacts, ci (all SUCCESS; ci within 65-minute budget)