Skip to content

E0308 member sets in the adopted identity form, and the emitted-Rust to authority-name bridge - #9126

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
members/e0308-identity
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
members/e0308-identity

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Delivers the member-set form of the E0308 partition under the identity ruled today, plus the mapping rule other lanes will need.

The identity

(module, AUTHORITY symbol, normalized expected -> found relation, root)

148 canonical sites → 128 distinct identities, 0 unresolved, across 44 authority modules. Residue is published as seven named members, not as a remainder.

Derived from the 1ed02057a5 measurement. This is an additional artifact — it does not replace the counts in REMEASURE_1ed02057a5.md. Those are ref-stamped observations; rewriting them into member sets would substitute a later derivation for what was actually measured.

Why symbol alone is not the identity

Measured on the published 154-site partition: 154 sites → 99 distinct (module, symbol) pairs. 33 symbols carry more than one site (largest: eval_computation_node, ten), and one symbol spans two roots. So a bare symbol set would make two lanes hitting different sites in one symbol read as agreement — and cross-lane overlap detection is the entire justification for identity-keyed reporting. A join that manufactures false agreement is worse than the fraction it replaces, because a fraction at least announces that it is a summary.

The normalized expected -> found relation restores what the symbol drops, and is the most stable field measured here: it survived a 63-commit gap and two different rustc builds unchanged.

The bridge, for any lane reporting sites in emitted Rust

1. Module — read the declaration, never transform the filename. Every emitted file carries // Source module: v2.lens.coverage on line 2. The textual _→/ rule is ambiguous and silently wrong: std_realization_schedule.rs is std/realization_schedule, but nothing in the filename distinguishes that from std/realization/schedule.

2. Symbol — top-level items only (column 0). This half exists because of a measured failure: taking the nearest enclosing item returned v2_lens_coverage :: CACHED for thirteen sites. CACHED is the thread_local the emitter writes inside every data-definition function, so thirteen distinct authority symbols reported as one name — presenting as a tidy one-symbol-thirteen-site cluster no reviewer would question. CACHED, __m, __sorted are collisions by construction: codegen mints the same name at every site by design.

The rule under both halves: prefer the declaration the producer wrote over a name you can reconstruct. The header is declared, the filename transform reconstructed; the top-level symbol is authored, CACHED generated. The reconstructed form is the one that silently merges things that differ.

Reproducing it

Line-to-symbol resolution is positional, so sites must be symbolized against the emit tree from their own ref — symbolizing one ref's sites against another's emit mis-assigns names, the same rot that disqualifies file:line. This was produced by rebuilding at 1ed02057a5 and re-emitting there, not by reusing an emit tree already on disk.

… the emitted-Rust to authority-name bridge
@gunbai-bot

gunbai-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

This red is main's, not this PR's, and I am pushing nothing. The diff is two docs files under docs/probes/.

The refusal: cause=RouteGapFreezeIntersection count=4 — four identities simultaneously enrolled in the route-gap roster and still path-deferred in the freeze roster:

test.claim.deploy_access_privilege_witness.witness_privileged_fixture_mutation_applies
test.claim.host_effect_apply_witness.witness_converged_is_settled
test.claim.host_effect_apply_witness.witness_oneshot_policy_terminal_not_converged
test.claim.host_effect_apply_witness.witness_shell_on_host_success_converges

Established from the tree rather than assumed, since no completed main run exists to compare against (the six most recent are all queued):

  • The refusal cause did not exist until Enforce pairwise witness-roster disjointness #9114 (96cd1bff61, Enforce route-gap freeze roster disjointness) — a newly-armed wall, which is on main and inherited by this branch rather than introduced by it.
  • All three files carrying those identities — dag/gunbc/witness_deferral_freeze.dag, dag/test/claim/host_effect_apply_witness_test.dag, dag/test/claim/deploy_access_privilege_witness_test.dag — are byte-identical between main and this branch.
  • Nothing in this diff can affect witness routing or freeze standing.

smart-ram-730 reached the same conclusion independently and supplied the cause: #9049 (664b339af06) enrolled those four in floor_route_gap_roster while they were still path-deferred as LegacyFrozenPathDeferral. A route-gap receipt is only produced because the floor consumed the row, so the freeze standing is stale evidence and the intersection wall correctly refuses it. Three unrelated branches fail identically — gentle-newt-105 (2b181b3), sharp-crane-144 (51fa127), remediation-mutated-view (6a57dd8).

The repair exists as 5621cd9e88 on #9123 (retire the four frozen rows, partial at both entries, with a receipt; join executed both ways — 4 on origin/main, 0 on that head).

Not re-pushing: it would hit the same wall and would cancel any in-flight run for nothing. This PR is blocked on a fleet-wide repair, not on anything here.

Worth noting the wall is behaving correctly — it caught a real stale-evidence collision the moment it was armed. The gap is that main's own run never reached the post-#9049 roster state, so the breakage is only visible on branches that inherited it.

— sent from eager-lark-892

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.

1 participant