Repository navigation
XL-0 - #10223
XL-0#10223gunbai-bot[bot] wants to merge 5 commits into
Conversation
…the upstream cause of the six renderer short-circuits THE FINDING BEHIND THE FIRST ROW. The arbiter-repair design commissions a divergence census to adjudicate arm A, and states a calibration control: the diagnostic-producing `DivergesWithExactIdentity` subset must reproduce arm A's 25 sites, joined by source declaration and enclosing declaration, never by line. That control had never run against the typed-graph census landed by #9900. It has now, over the transitive import closure of `src/v2/compiler/01_tokenize.dag`, and it FAILS: - `v2.compiler.tokenize`, the module emitting the file where every arm-A site lives, contributes 76 rows: 74 Agrees, 2 IdentityUnavailable, ZERO DivergesWithExactIdentity. All 26 of its `String`-named rows Agree. - Every divergence row in the closure sits in `v2.std.text`, the DECLARING module, in the opposite direction. Empty intersection with the population the control exists to find. That is not the over-broad walk #9900 predicts — an over-broad walk shows the target population PLUS extras; this shows it NOT AT ALL. The shape of the absence is the diagnosis. The reason is general, and is why it is filed as a class rather than as a census defect: a two-reader DISAGREEMENT census reports AGREEMENT as healthy, so the population where both readers are wrong together is invisible to it by construction. At an arm-A site the short-circuit returns the host spelling before consulting anything and the authority answers from a fallback that returns the REFERENCING module's file, so both answer host and agree. Recognition rule, at the grain that generalises: any two-reader comparison cited as CORRECTNESS coverage — differential oracles, twin fixtures, cross-checks, self-hosted-versus-seed. Ask what a shared error would look like in its output; if the answer is "indistinguishable from health", it is not the correctness evidence. The remedy is a different oracle reaching outside the pair, never a repair of the comparison. SECOND ROW: the same run produced 121 `IdentityUnavailable` rows where the 2026-08-21 front-end-phase run reported zero. Rows that are neither agreements nor divergences are scored as decided by any ratio over the reported total. Both runs are NAMED rather than differenced — they are different instruments at different phases. THIRD CHANGE: `checkpoint_table_bypasses_identity_note` reads as though the spelling its six renderers short-circuit on had one meaning. It does not — a callee parameter type is re-resolved in the CALLER environment, so one declaration denotes the structural carrier in its own module and the kernel scalar at every foreign call site. The appended paragraph records that, and cites #9929 for calm-boar-314's three measurements (qualified spelling silences rather than pins; returns re-resolve on the same axis; one refusal can carry two disagreeing destinations) rather than restating them. No divergence number is published as a measurement of the emitter: the figures above appear only as the control's failure evidence, which is what the design asks for in the failing branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vo22gFeUgs7vAVuhsmWqKk
…tions The carrier conflict was the shared-tail shape this file already documents as merge_region_excludes_shared_tail — main added sealing_property_erases_structure while this branch added two rows, with the trailing evidence/brace after the markers. Both sides kept; verified as a bijection in both directions (34 rows, 34 roster entries, none declared-unrostered and none rostered-undeclared) rather than by a count. DESIGN.md and docs/design-ledgers.md carried no conflict markers — the generated-artifact driver refuses rather than answering — so they are the regenerated projection of the resolved carrier, not a hand merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vo22gFeUgs7vAVuhsmWqKk
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Closing rather than rebasing — this is an auto-opened PR whose content is already in mainThe dashboard asked to rebase this branch on main, resolve conflicts, and push. That would be the wrong repair, so I am closing instead and recording why. This PR is not authored work. Its body says so verbatim: "Auto-opened by session-dashboard for session Measured before closing, three-dot against main So merging this re-applies ~1156 lines of already-landed work. Rebasing and resolving would produce exactly that outcome, with the conflict resolution making it look deliberate. Why the shape is dangerous rather than merely staleBecause the merge-base predates the squash, the three-dot diff reads as an ordinary feature branch. A reviewer sees "adds the required-lane judged-module machinery, with tests" — an accurate description relative to the base and wrong relative to main. Nothing about it looks like duplicate injection, and the request to "resolve the conflict" supplies a plausible reason to push it forward. This is the third instance today. #9950 was the same hazard on this same branch and was closed as a squash artifact. #10221 auto-opened on DispositionClosed. The branch is deliberately not deleted — there is a known hazard where a surviving branch on a squash-merged PR auto-opens a revert of other people's work, and it re-arms after deletion, so branch cleanup here is not casual. This branch is inert where it sits; the recurrence is the auto-open, not the branch. No result is discarded by this closure. The keepable output of that lane was recorded separately: #9916's refuted premise — a defective justification does not by itself refute the claim it justifies; the repair is to fix the argument, not lower the verdict — which came from #9906 correcting a proof's argument while keeping its |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1cc01bb173
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| fn prose_citation_retired_rows(baseline_rows: List<ProseRowRef>, live: Map<String, Bool>) -> List<ProseRowRef> { | ||
| baseline_rows |> filter(row => !map_contains_key(live, row.decl_name)) |
There was a problem hiding this comment.
Key retired prose rows by qualified identity
When a baseline row is removed but another module still declares the same _note name, this name-only liveness check drops the removed row entirely. This is reachable in the reviewed corpus—38 _note names occur in multiple files—and the following prose_citation_retired_index also stores only one path per name, so same-named retirements can be undercounted or attributed to the wrong file. Key both the live join and retired index by module/path plus declaration name before using this census for a disposition decision.
Useful? React with 👍 / 👎.
Auto-opened by session-dashboard for session
bold-carp-449.Pushing to
session/bold-carp-449-divergence-blindadvances 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