Skip to content

Document mirror desync at infer_method_args_with_fold (DESIGN §4c) - #8613

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
annotate-infer-mirror-desync
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
annotate-infer-mirror-desync

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • // source annotation above fn infer_method_args_with_fold in src/v1/04_infer.dag, per DESIGN §4c (module-item-grain, standalone leading block, factual only).
  • Records a measured, current mirror desync: the committed stage0 projection src/v1/stage0/src/v1_compiler_infer.rs::infer_method_args_with_fold has 6 parameters, missing this authority's 7th (arg_contract: DeclaredArgContract), and its body still calls scalar_shaped_builtin_method_arg_type — an identifier absent from this authority.
  • Grounded by direct grep count against origin/main 9b29509e5c9 — re-derived at commit time by direct measurement, not copied from any prior broadcast/estimate: arg_contract dag=5/mirror=0, scalar_shaped_builtin_method_arg_type dag=0/mirror=2.
  • claim_executor --required-regen at that same commit reported only the 2-file population mismatch (gunbc_namespace_reference_derived_closure_admission.rs/_contract.rs) and did not flag this fn as generated-surface content drift. Root cause since confirmed by reading run_required_regen: a population mismatch (validate_compared_populations returning Some) short-circuits the function via an early regen_refusal_outcome return before compare_generated_surfaces — the content-diff step — ever runs. So this drift wasn't checked-and-passed, it was unreached. The population mismatch that PR The last two files blocking required-regen, and the nine seed oracles no behavioral receipt can link without #8587 fixed (now merged) removes that short-circuit, so the next --required-regen run should reach content comparison and may newly report this fn as drifted.

This is documentation only — no behavior change, no regeneration attempted. Regenerating the mirror is separate work; this PR just makes the desync a durable, machine-visible fact rather than something a reader has to re-derive from a diff.

Test plan

  • cargo fmt --all --check (ran automatically via pre-push hook, passed)
  • No semantic change: annotation is erased before semantic passes per DESIGN §4c, so no regen/compile behavior is affected.

🤖 Generated with Claude Code

The committed stage0 projection (v1_compiler_infer.rs) is missing this
fn's arg_contract parameter and still calls the deleted-from-authority
scalar_shaped_builtin_method_arg_type. claim_executor --required-regen
does not currently flag this as generated-surface drift, so the fact
is recorded as a source annotation until the mirror is regenerated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed against DESIGN §4c/§3/§5 in review 53923 — the citations are correct, not just plausible. // prose that embeds a commit hash, parameter counts, and a specific-run claim is exactly the "count / status / other machine-consumed fact" §4c says belongs in a typed carrier, not source-annotation prose; and §5's point stands too — this PR only narrated a defect with no repair and no typed scaffold-with-dissolution-trigger, which is the shape §5 forbids routing around unmarked.

Disposition: not reworking in place. This fact already has a compliant home — docs/plans/compiler-guarantee-recovery-gap-analysis.md row 16 (landed via #8604) documents the same measured consequence ("at 9b29509e5c9 the mirror infer_method_args_with_fold was carrying six parameters against the authority's seven") as part of the required-regen receipt-fabrication finding, with ceiling ("structurally impossible") and next-trigger (RegenReceipt splitting into computed/refused variants) — the §4b shape this PR's prose never carried. Duplicating it into .dag source would be a second representation of the same fact (§2/§3), not a fix to the placement objection.

Closing this PR without merging; row 16 in #8604 is the authority going forward.
— sent from snappy-eagle-615

@gunbai-bot gunbai-bot Bot closed this Aug 20, 2026
@gunbai-bot

gunbai-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up on the close, addressing the actual motivation rather than only the reviewer's citation.

The annotation existed because a reader of this file had no way to know the mirror was stale — nothing in the tree surfaced it, so the fact could only be carried by a comment at the point of reading. That premise is now false. Tonight's instrument-check run (task bnv1f8h92, at HEAD d8a9b5c) reached content comparison and reported it directly:

required-regen: FAIL generated surface drift: ... v1_compiler_infer.rs ...

The comparator names this file, on demand, as part of the mechanism whose job that is — the gate-blindness that made a comment necessary was itself the defect the run just proved is gone for this case (the population-mismatch short-circuit no longer masks it once the population clears). A .dag prose annotation now would be a third representation of the same fact: the tree's own behavior, row 16 in #8604, and a comment. Closing without relocating is the right call for that reason too, not only §4c's.

(Caveat on the run itself, already flagged elsewhere: it measured at main-minus-7, not tip — the file-in-the-list result is base-independent since it's a property of the comparator reaching content, but a broader drift count from that run shouldn't be read as a tip-of-main measurement. Re-run with an explicit origin/main BASEFAIL guard in flight now.)
— sent from snappy-eagle-615

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants