Repository navigation
compiler_tests_rust_blobs_are_all_rostered is RED on main (43 ct_ declarations vs 40 rostered): establish whether it is unenrolled or held known-red, disposition the unrostered blobs, and make the completeness claim honest - #9987
gunbai-bot[bot] wants to merge 2 commits into
Conversation
…le row standing in for an unrostered blob `test.claim.language_source_scaffold_index_test.compiler_tests_rust_blobs_are_all_rostered` was RED on main and ENROLLED, not unenrolled: it sits in `floor_expected_red_chunk_live_tree_admission` in `v2.workflow.floor_expected_red`, and its entry declares `ReadsLiveTree`, which in `entry_eligible_for_discovery_skip_before_resolve` means it never predict-skips. So it genuinely executed and genuinely failed every required run. THE GAP WAS NOT THE FOUR THE COUNTS SUGGESTED. The witness asserted `declared_fn_count(ct_) == rostered_count_for(...)`, 44 against 40. Joined by IDENTITY the residues are of two kinds: FIVE live blobs unrostered (ct_fixture_closure_rustc_discrimination_test, ct_import_lines_follow_resolved_binding_identity_test, ct_witness_carrier_declines_non_witness_expected_type_test, ct_generic_param_declines_fail_closed_unwrap_test, ct_shell_service_output_projection_known_hole_probe_test) and ONE row that outlived its blob -- ct_caret_parse_smoke_native_witness_tests, which #8532 deleted from the carrier while leaving the roster row standing. Rostering four of the five would have balanced the counts at 44 and GREENED the witness with one blob still unmarked and one row still naming a declaration that does not exist. The count was never the claim; it was a necessary condition of the claim being read as the claim. DESIGN section 5 already says this outright: completeness is an identity join, not a count equality. DISPOSITION. The five blobs are hand-authored Rust assertion blobs, the same class as their rostered neighbours, and carry `compiler_tests_rust_hand_assertion_scaffold_trigger`. The stale row is removed. THE CLAIM MADE HONEST. The witness now names the two residues separately -- declared-not-rostered (a blob landed unmarked) and rostered-not-declared (a row outlived its blob) -- and asserts each is empty, so the two directions red with distinct meanings and neither can pay for the other. Cardinality survives as a third conjunct answering the one question containment cannot, a DUPLICATE within one side. The `rt_` arm gets the same treatment. `head_before`'s unreachable Absent arm yields a spelling no roster row can carry rather than fabricating a plausible name: the failure arm refuses, it does not widen. THE EVIDENCE DOES NOT STOP AT THE REPAIRED TREE. A repaired population makes both live arms permanently green and the join indistinguishable from the count it replaced, so five discriminating controls run over authored fixtures, including the equal-counts-different-identities case that is exactly what the old form accepted. Delisted from the expected-red roster, since that roster self-empties on pass. Executed evidence, `gunbc run` against the live tree (BuildBuddy runners expose no cgroup memory limit, so `gunbc run` refuses there under `gunbc.host_budget_source`; this ran in the session container): all ten witnesses in the file return `true`, including compiler_tests_rust_blobs_are_all_rostered, and each of the four `the_join_refuses_*` controls returns `true`, i.e. actively refuses. DESIGN.md and docs/design-ledgers.md are regenerated through `dag/gunbc/instruments/generated_artifact_gate.dag main_wet`, carrying the new `compensating_errors_cancel_in_the_aggregate` recurring-failure-mode row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P7mphvNU1JoCbrowqDM5Zg
Main moved to 99ace7a (#9946, selection_view_read_as_population), which touched DESIGN.md and docs/design-ledgers.md — the same two generated projections this branch touches. GitHub reported mergeable=CLEAN, which is not evidence: it does not run this repository's generated-artifact merge driver, so it reports a clean TEXT merge on projections whose bytes would then project neither side's authorities. `git merge-tree --write-tree` is the authority, and it refused with GeneratedArtifactConcurrentDivergence on both paths (gunbc#9969). Neither projection is hand-resolved. The driver left both UNMERGED with the ours side verbatim and no conflict markers, and both were REGENERATED from the merged authorities via `dag/gunbc/instruments/generated_artifact_gate.dag main_wet`. Both ledger rows survive the merge: this branch's `compensating_errors_cancel_in_the_aggregate` and main's `selection_view_read_as_population`. Also adds the boundary sentence the class needed: the row now states explicitly that NO SWEEP FOR SIBLINGS WAS PERFORMED, so the absence of a census reads as a declared boundary rather than as coverage. The receipt establishes the class at one subject and says nothing about the population — reading the row as a census of aggregate-cardinality checks would be the same substitution it names. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P7mphvNU1JoCbrowqDM5Zg
|
Closing as a duplicate — this PR carries no unlanded work and merging it would revert three other PRs. This branch's work already landed on main as 7e1479e (#9976): the witness is delisted from #9976 was squash-merged, so git does not see No action needed on the substance; the lane is complete. — sent from clever-crane-462 |
|
CORRECTION to my closing comment above: this PR was a NO-OP, not a revert. The close stands; the reason I gave for it was wrong. I wrote that merging would revert #9956, #9959 and #9978, citing 18 files / 1101 deletions. That number came from Measured with the right instruments:
So the real reason to close is smaller and different: the content is already on main via 7e1479e (#9976), so this PR would consume a review cycle and a CI run to change nothing. The tell I proposed ( Credit for the correction to the reviewing manager, who measured it three ways rather than taking my number. — sent from clever-crane-462 |
Auto-opened by session-dashboard for session
clever-crane-462.Pushing to
session/clever-crane-462advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan