Repository navigation
Remove the 25 roster rows that now pass, and fix the Optional patterns I over-qualified - #8400
Merged
Merged
Conversation
…at now pass THE FIRST COMPLETE RUN OF THE NEW FLOOR LANDED (main 611fd02, run 32076934126) and every mechanism reported. planned = executed = terminal = 9366; 8523 passed + 795 held + 48 failed reconciles exactly; the decline partition came out 1088 = 309 long-home + 779 live-tree; and the roster's own partition held at 820 = 795 held + 25 now-passing. What follows is the two things it found. TWENTY-FIVE ENROLLED ROWS NOW PASS, so they red the build and name themselves for removal. That is the removal path working as designed rather than a roster edit: six merges landed under a roster measured on 380c242, and these are the rows those merges fixed. Removed at exact identity grain; the roster is 795. ELEVEN FAILURES ARE MINE, and they are the same over-correction wearing a different hat. My earlier qualification commit rewrote bare `Absent` to `std.upsert_decision.Absent` across eight modules to break a collision with ConvergeVerdict. But `Absent` is ALSO the absent arm of Optional, and in a match over `SwapStats?` the arm belongs to Optional, not to ObservationVerdict. So I qualified twelve patterns to the wrong authority and turned exhaustive matches into non-exhaustive ones — `non-exhaustive pattern match on: null`, where null is the Optional's own runtime absence. That is worth naming precisely, because it is the mirror of the defect it was fixing. The original bug was a bare name binding to the wrong declaration by insertion order; my fix was a qualified name binding to the wrong declaration because I qualified without checking which type the match scrutinee had. Both mis-bind; only one of them looks careful. Site-level qualification is exactly as capable of naming the wrong authority as bare lookup is, which is an argument for the construction wall rather than for more of what I did. Reverted at the twelve sites whose match carries a `Present {` sibling arm — those scrutinees are Optional. The sites that genuinely match ObservationVerdict keep their qualification; readback_independence's two arms are checked and correct. Verified the roster evaluates through required_floor's own closure, which is the frame the floor reads it in. 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
Catching up to origin/main at b9763bd. Clean automatic merge, no conflicts this time -- the generated crate-layout artifacts were untouched by both commits. #8400 is the fix for the failure population diagnosed on this PR's previous head: the over-qualified Optional patterns behind the non-exhaustive pattern match on null class, and the removal of the 25 floor_expected_red rows that had begun passing. Both were main's, not this branch's -- the set difference measured 48 failures on main against 23 here, with the 19-row gap being exactly this PR's deleted witnesses. Verified after merge that this cut's deletions survived intact: zero live-tree references to ci_control_plane, owned_ci, ci_execution_plan or the CiRuns* handlers, and lib.rs carries no ci_control_plane module. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GJgwfCsHvvRLD5EAErgP7F
6 tasks
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 18, 2026
Route per-witness floor lines through a Rust mirror of ci_witness_claim_result_text instead of per-line interpreter eval (~800 anomaly rows were pushing marginal witnesses over the 500ms receipt budget). Fix host_network_diagnosis Optional Absent arm missed by #8400. Remove three expected-red rows the floor reported as now passing. Co-authored-by: Cursor <cursoragent@cursor.com>
2 tasks
briansrls
pushed a commit
that referenced
this pull request
Aug 18, 2026
briansrls
pushed a commit
that referenced
this pull request
Aug 18, 2026
* Wave 6: one witness presentation authority for Bazel-shaped floor output. Route per-witness claim lines through gunbc.observation_ci_render so the required floor and discovery paths share one //package:target PASSED-in-Xms formatter instead of ad-hoc Rust glyphs. Co-authored-by: Cursor <cursoragent@cursor.com> * Address review 53041: drop duplicate witnesses and legacy formatter fallback. Remove the pasted duplicate test declarations and make witness presentation fail closed with a typed ::error:: when the .dag authority cannot render, matching the existing ci_batch_summary_text seam. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix CI witnesses: mirror hot-path render, roster prune, Optional match. Route per-witness floor lines through a Rust mirror of ci_witness_claim_result_text instead of per-line interpreter eval (~800 anomaly rows were pushing marginal witnesses over the 500ms receipt budget). Fix host_network_diagnosis Optional Absent arm missed by #8400. Remove three expected-red rows the floor reported as now passing. Co-authored-by: Cursor <cursoragent@cursor.com> * Route E2 budget-warn lines and add mirror-oracle lockstep receipts. Land ci_witness_budget_warn_text with native hot-path mirror and fail-closed refusal; add byte-equal .dag oracle tests for both S1 and S2 mirrors (review 53082), minute-switch boundary witnesses, emit-census rows, and dedupe duration formatting through v1_rt::obs_human_elapsed. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix census witness string patterns: escape literal braces. The raw-shape-gone witnesses grep for legacy format strings containing `{subject}` and `{}` placeholders; escape them so the parser does not treat them as interpolation. Co-authored-by: Cursor <cursoragent@cursor.com> * Ground ci_witness_budget_warn_text on Millisecond carriers. Address review 53093 unit-modeling hard-blocker: wall, warn, and budget cross as std.measure Millisecond at the render seam; seed oracle test builds carriers via millisecond() at the boundary. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix floor_expected_red roster prune brace imbalance. Removing three expected-red identities in 538df9b dropped Cons nodes but left extra closing braces in chunk_00 and chunk_03, which made the module unparseable and cascaded into required-floor refusal. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix floor roster drift and qualified variant match on records. Remove seven expected-red identities the floor reported as passing, restore three that were pruned too early (altra budget + dissolution census), merge main, and teach match_pattern to accept record-shaped coproduct values under qualified variant patterns (fixes compute_board_admission witness runtime errors). Co-authored-by: Cursor <cursoragent@cursor.com> * Revert match_pattern record broadening from wave-6 PR. Per review 53137: qualified-leaf record matching is substrate-level and belongs in its own change with a discriminating witness, not folded into witness presentation routing. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix compute_board match failures and sync expected-red roster with main. Scope record-shaped coproduct reconciliation to parent_enum-stamped match arms (fixes non-exhaustive pattern match without the unscoped name_last broadening review 53137 rejected). Restore main's 795-entry floor_expected_red roster so PR-only roster drift stops failing witnesses that main still holds as expected-red. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert interpreter match_pattern hunk; sync expected-red roster with CI. Remove the Record-arm leaf reconciliation from v1_interpreter (out of scope for Wave 6 per operator directive). Update floor_expected_red: drop dashboard_health (now passes), enroll compute_board admission PreparedSubject failures and marginal budget witnesses from run 32099904819. Co-authored-by: Cursor <cursoragent@cursor.com> * Document passed:Bool as interim display transport, not semantic seam. Records dissolve-on toward #8423 typed per-witness receipt channels per tidy-pike-117 migration advice; Wave 6 keeps scalar transport for E1 only. Co-authored-by: Cursor <cursoragent@cursor.com> * Sharpen interim Bool note with outcome×disposition receipt shape. Records sleek-moth-351 guidance: Bool blind spot (TimedOut collapse), per-witness receipt = outcome × disposition product (not reporting channels), held-row visibility obligation for follow-up. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix observation_ci_render parse error: escape braces in interim note. TimedOut{...} in the dissolve-on prose triggered string interpolation and broke the whole module; escape literal braces per dag string rules. Co-authored-by: Cursor <cursoragent@cursor.com> * Remove five stale expected-red roster entries that now pass. CI reported these identities as no longer failing; keeping them would block the floor-known-red gate on PR #8399. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix parse error in expected-red roster after stale-entry removal. Surgical Cons-node removal left one extra closing brace per deleted identity; restore brace balance in chunks 08, 10, 13, and 15. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert floor_expected_red.dag to main — roster edits are out of scope. The three net removals straddle the 500ms witness ceiling and are not decidable from pass/fail on this branch; presentation authority should not touch the roster. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix Record pattern matching for qualified constructor spellings. Mirror the Variant arm's last-segment fallback so refusal coproduct rows like DuplicateComponentIdentity match when the scrutinee carries the bare type name. Unblocks compute_board_admission floor witnesses (pre-existing substrate gap). Co-authored-by: Cursor <cursoragent@cursor.com> * Revert interpreter match_pattern Record fallback from wave-6 PR. Qualified-name matching belongs in #8416 at resolution time, not via last-segment coincidence matching at runtime. Co-authored-by: Cursor <cursoragent@cursor.com> * Land compute_board refusal matching in owning module (#8427 shape). Move refusal_matches_name into admission.dag so witness tests bind at runtime without the rejected interpreter last-segment fallback. floor_expected_red and required_floor budget unchanged. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop compute_board hunks from wave-6 PR (#8399). Presentation routing only; admission refusal matching belongs in #8416/#8427 (compiler/owning-module lanes), not this diff. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.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.
Two findings from the first complete run of the new witness floor (main
611fd027708, run 32076934126) — the run that never happened before the cut merged, because the branch run was cancelled by the merge itself.The run reported, and every join held
8523 + 795 + 48 = 9366exactly. The decline partition came out1088 = 309 long-home-declined + 779 live-tree-declined(68 in both, attributed once). The roster's own partition held at820 = 795 held + 25 now-passing. Nothing landed in the declined-by-neither arm, which is the one that would have meant a silent narrowing.Memory also answered for the first time:
[floor-heap-trim] 46 trim(s) returned 5.08GB total, 2.08GB worst single trim. Most of the fold's diffuse growth was allocator retention rather than live data. (A small reclaim would not have proved the converse — fragmentation and arena boundaries produce the same reading — but 5 GB back is positive evidence.)1. Twenty-five enrolled rows now pass
They red the build and named themselves for removal, which is the roster's self-emptying arm doing its job rather than a roster edit. Six merges landed under a roster measured on
380c242c79a; these are the rows those merges fixed. Removed at exact identity grain. The roster is now 795.2. Eleven failures are mine, and they are the mirror of the bug they were fixing
My earlier qualification commit (
fda9ca03c55) rewrote bareAbsenttostd.upsert_decision.Absentacross eight modules, to break a real collision withConvergeVerdict. ButAbsentis also the absent arm ofOptional, and in a match overSwapStats?that arm belongs toOptional, not toObservationVerdict. So twelve patterns were qualified to the wrong authority, turning exhaustive matches into non-exhaustive ones:where
nullis the Optional's own runtime absence.Worth naming precisely, because of what it says about the fix strategy: the original defect was a bare name binding to the wrong declaration by insertion order; this was a qualified name binding to the wrong declaration because the scrutinee's type was never checked. Both mis-bind — only one of them looks careful. Site-level qualification is exactly as capable of naming the wrong authority as bare lookup is, which is an argument for the construction wall (the
#8282lane) rather than for more hand-qualification.Reverted at the twelve sites whose match carries a
Present {sibling arm — those scrutinees are Optional. Sites that genuinely matchObservationVerdictkeep their qualification;readback_independence's two arms were checked individually and are correct as-is.Not in this PR
The other twelve failures are pre-existing and unrelated: nine witnesses failing on
host tool unresolved: "cargo"(runner environment), twoBool(false)rows inrunner_slot_provision, and one witness at 569ms against a 500ms whole-receipt ceiling.Verification
The roster was evaluated through
required_floor's own closure — the exact frame the floor reads it in, which is the reachability defect that broke the previous run.