Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
85e1ff7
Lane B substance: agreement loudness, census TSV, leg attribution.
briansrls Jul 23, 2026
18111a0
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
2f89ce1
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
8b00fd8
Address review 41756: single-authority census classification.
briansrls Jul 23, 2026
18bcf02
Fix cargo fmt drift in census emit transport (cli_run.rs).
briansrls Jul 23, 2026
b193081
Merge remote-tracking branch 'origin/main' into session/gentle-raven-…
briansrls Jul 23, 2026
ececbea
Fix review 41764 fail-open paths in agreement gate and leg labels.
briansrls Jul 23, 2026
3a1c3b5
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
e8d99ec
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
64e4943
Fix review 41768: classify execution/emit_host* as EmitOnDemandFamily…
briansrls Jul 23, 2026
5d42cc6
ci: trigger PR sync after cargo fmt fix (3a1c3b5)
briansrls Jul 23, 2026
038e296
Address review 41784: dissolve-on markers for census carrier path mir…
briansrls Jul 23, 2026
14c5e91
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
fd5f812
Merge origin/main: pick up non_fold_residue_frontier_test.dag (#7107)
briansrls Jul 23, 2026
287d7b0
Fix CI: regen census TSV for non_fold_residue_frontier_test.dag
briansrls Jul 23, 2026
ba161d0
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
e2b987c
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
2be8815
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
c99c2ca
Fix review 41817: retarget census totality gate off stale >=744 pin
briansrls Jul 23, 2026
0d5a84b
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
77fa006
Fix review 41820: census TSV includes execution-grain explicit-roster…
briansrls Jul 23, 2026
52b5696
Fix CI: roster native_agreement runtime_value_discriminant_octet for nfr
briansrls Jul 23, 2026
3152d15
Fix review 41834: reattach silent_pick DISSOLUTION comment to its bin
briansrls Jul 23, 2026
8fa0fe2
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
c65fc5f
Fix CI: census roster includes all witness_layer_roots test entries (…
briansrls Jul 23, 2026
fc7ba64
Fix review 41847: failure_receipt refuses on error, not silent None
briansrls Jul 23, 2026
c696c70
Fix CI: normalize absolute entry paths for census leg lookup
briansrls Jul 23, 2026
d587eb2
Merge remote-tracking branch 'origin/main' into session/gentle-raven-…
briansrls Jul 23, 2026
e989bc5
Address review 41879: import census reason/cause variants explicitly
briansrls Jul 23, 2026
72a5f71
WIP: Lane B: native bulk machine (census+routing+attribution), flips …
briansrls Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions dag/gunbc/doc_graph_roots.dag
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@ data hand_authored_doc_binds: List<HandAuthoredDocBind> = [
work: DeclarationRef { module_path: "tools.self_host_curated_probe_cargo", decl_name: "curated_probe_cargo_toml_from_cssl_authority", field: WholeDeclaration },
dissolution: HasTrigger { text: "dissolves with the emitter residual classes it maps (dotted-alias #6981, generic-T fold closures)" },
},
HandAuthoredDocBind {
home: ProbeDoc,
slug: "srv2-05-native-agreement-divergence-diagnosis",
work: DeclarationRef { module_path: "v2.compiler.self_host.witness_entry_eligibility_census", decl_name: "witness_entry_eligibility_census_note", field: WholeDeclaration },
dissolution: HasTrigger { text: "native re-flip greens on >=2 runner hosts with loud divergence receipts; diagnosis absorbed into frontier carrier" },
},
HandAuthoredDocBind {
home: PlanDoc,
slug: "rc-ownership-wrap-decision-design",
Expand Down
9 changes: 9 additions & 0 deletions dag/gunbc/non_fold_residue.dag
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ data nfr_reason_ci_floor_gate_membership: String = "gate-identity membership fol

data nfr_dissolve_gate_membership: String = "derived equality on Gate from inhabitance lands (dag/std/algebra, DESIGN §3/§4): the nested per-variant match is a hand-rolled sg-equals-g test, so the membership fold collapses to found or sg == g, the nested matches delete, and the row deletes with them"

data nfr_reason_native_agreement_octet: String = "RuntimeValue primitive-discriminant projection (RuntimePrimitive arm extracts byte[1]; off-variant wildcard Absent) landed with Lane B native-agreement loudness (#7111); surfaced by whole-corpus nfr receipt after affected-set predict-skipped corpus-read witness at landing"

data nfr_dissolve_native_agreement_octet: String = "RuntimeValue model↔realization grounds each primitive variant and the wildcard arm migrates to a total match — or the receipt formatter derives from inhabitance and the row deletes"

data non_fold_residue_frontier: List<FrontierRow> = [
FrontierRow {
unit: "dag/gunbc/local_tidy_spec.dag::local_tidy_path_matches_trigger",
Expand Down Expand Up @@ -647,6 +651,11 @@ data non_fold_residue_frontier: List<FrontierRow> = [
reason: nfr_reason_mint_era,
dissolve_on: nfr_dissolve_wildcard_total
},
FrontierRow {
unit: "src/v2/std/native_agreement.dag::runtime_value_discriminant_octet",
reason: nfr_reason_native_agreement_octet,
dissolve_on: nfr_dissolve_native_agreement_octet
},
FrontierRow {
unit: "src/v2/std/node_minimal.dag::node_superset_field_eq",
reason: nfr_reason_structural_eq_mint,
Expand Down
2 changes: 1 addition & 1 deletion dag/gunbc/v1_deletion_plan.dag
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ data v1_deletion_milestones: List<PlanMilestone> = [
PlanMilestone { id: ^witness_realization_kernel, title: "v2 execution path kernel: emit a witness to native code + run harness + scheduler (the piece that replaces the v1 interpreter for CI) — serial kernel, then families fan out", gate: GateLedgerGreen, brick_state: Placed, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 3, days_high: 5, lane_state: "LANDED 2026-07-19 #6879 (da0e7c3d) at full bar; kernel handoff (partition, seams, traps) and the six-family diagnosis table durable as comments on the PR; stern-lark-430 closed out clean", confidence: ConfidenceBasis { basis: "Landed at full bar by execution; the kernel runs a family end-to-end", risk: "The kernel's partition/seams do not generalize to a family the diagnosis table did not cover", antagonize: "the 9 family lanes all exercised it and all went green — the generalization is proven, not assumed" } },
PlanMilestone { id: ^witness_family_fanout, title: "Per-witness-family realization lanes (claim families, wet receipts, lens gates) once the kernel runs one family end-to-end", gate: GateLedgerGreen, brick_state: Placed, role: BarBrick, parallelism: FanOutWide, fan_width: 5, days_low: 4, days_high: 8, lane_state: "DONE 2026-07-20 — all 9 witness families GREEN with trustworthy controls. #6912 (eval-repair consolidation) + #6917 (fold closure-arg: structural RuntimeClosure at edge grain, both oracle legs real, un-quarantine receipt) + #6918 (field_access RED-control fail-open fix — the wrong-fixture control could not go red when behavior was wrong; section-5 coverage-by-illusion, now discriminating). Emitter was CLEAN across all 9; every fix was eval/harness-side (the side v1-deletion removes)", confidence: ConfidenceBasis { basis: "All 9 families green by execution WITH discriminating RED controls (the #6918 fix made the field_access control able to go red on a wrong fixture)", risk: "A family's green rests on a non-discriminating control (the exact #6918 class recurring elsewhere)", antagonize: "each control was checked to go red on a wrong fixture; ledger_projection (Pole B) re-derives the dispositions from the probe_red carrier so a silent regression reds" } },
PlanMilestone { id: ^ledger_modeled, title: "The proactive verification ledger is modeled: 3 spine receipts (cold parity, compile-clean, regen fixed point) + 9 family receipts, typed dispositions, no fabricated green", gate: GateLedgerGreen, brick_state: Placed, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 1, days_high: 2, lane_state: "LANDED #6915 (proactive_verification_ledger.dag). Typed dispositions; no soak — every receipt is a deliberate executed run, not an elapsed-time claim", confidence: ConfidenceBasis { basis: "proactive_verification_ledger.dag exists with typed receipt rows for the 3 spine + 9 family checks", risk: "A disposition is a hand-declared literal that goes stale — exactly the Pole B defect: 5 family dispositions were hand-literals, lying after the eval PRs greened them", antagonize: "ledger_projection (Pole B #6923) projects dispositions from the probe_red carrier so they self-update; until it lands, the hand-literals ARE the attack surface" } },
PlanMilestone { id: ^ledger_projection, title: "The ledger self-updates: project family dispositions from the ci_layer_roots.dag probe_red carrier instead of hand-declared literals (DESIGN section 3 single authority)", gate: GateLedgerGreen, brick_state: InFlight, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 1, days_high: 2, lane_state: "IN FLIGHT (gentle-bee, Pole B #6923). The genuinely-ORTHOGONAL Gate-3 lane runnable NOW (no Gate-1 dependency). Fixes the section-3 defect: 5 KnownRedPendingUnquarantine literals stale/lying after #6912/#6917/#6918 greened them", confidence: ConfidenceBasis { basis: "Root located — the probe_red carrier already holds the truth; the fix projects from it (single authority) rather than re-declaring the dispositions", risk: "The carrier does not cover every family, leaving a residue still hand-declared", antagonize: "gentle-bee executes the projection over all 9 families; a coverage gap reds it" } },
PlanMilestone { id: ^ledger_projection, title: "The ledger self-updates: project family dispositions from the ci_layer_roots.dag probe_red carrier instead of hand-declared literals (DESIGN section 3 single authority)", gate: GateLedgerGreen, brick_state: Placed, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 1, days_high: 2, lane_state: "LANDED — family KnownRed disposition projects from gunbc.ci_layer_roots known_red_probe_entries in gunbc.proactive_verification_ledger.dag (Pole B #6923 authority; witnessed by proactive_verification_ledger_witness_test). Lane B rider (gentle-raven-495) marks this brick Placed citing the projection carrier — hand-declared family literals are dissolved", confidence: ConfidenceBasis { basis: "proactive_verification_ledger.dag derives family disposition from known_red_probe_entries — the probe_red carrier is the single authority", risk: "A family row escapes the carrier and stays hand-declared", antagonize: "proactive_verification_ledger_enumeration_holds + overlap execution receipt over all 9 families" } },
PlanMilestone { id: ^cold_parity_receipt, title: "Spine receipt: whole-corpus COLD v1-vs-v2 witness parity with zero unexplained divergence — a deliberate executed run, not a soak", gate: GateLedgerGreen, brick_state: Gated, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 2, days_high: 4, lane_state: "GATED on emitter_fixed_point (no v2 emission = no cold parity to run). The falsifier cadence already carries the deterministic whole-tree cold control (GUNBC_CI_COMPILE_CLEAN_COLD_CONTROL); this brick is the deliberate v1-vs-v2 comparison over it", confidence: ConfidenceBasis { basis: "The cold-control mechanism already exists in the falsifier cadence; this receipt is a comparison, not new machinery", risk: "Cannot execute until Gate 1 lands — the deepest cross-gate dependency, so a divergence would surface late", antagonize: "run it the moment the emitter fixed point lands, counted per-family, with no elapsed-time substitute permitted" } },
PlanMilestone { id: ^compile_clean_parity_receipt, title: "Spine receipt: compile-clean parity — the v2-emitted path compiles the corpus clean, matching v1", gate: GateLedgerGreen, brick_state: Gated, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 1, days_high: 2, lane_state: "GATED on emitter_fixed_point. Compile-clean is already the CI gate for v1; the receipt runs it on the v2 path", confidence: ConfidenceBasis { basis: "Compile-clean is already the v1 CI gate; the receipt just runs it on the v2-emitted path", risk: "0-diagnostics compile is arity-blind — clean does not imply behaviorally equal", antagonize: "paired with cold_parity_receipt (the behavioral leg), never standing alone as the equality claim" } },
PlanMilestone { id: ^regen_fixed_point_receipt, title: "Spine receipt: regen behavioral fixed point — regen_stage0 on the v2-emitted sources reproduces a behaviorally-equivalent emitter", gate: GateLedgerGreen, brick_state: Gated, role: BarBrick, parallelism: ForciblySerial, fan_width: 1, days_low: 1, days_high: 2, lane_state: "GATED on emitter_fixed_point. The self-host fixed-point step executed as a ledger receipt, scoped at its own closure (regen skip authority)", confidence: ConfidenceBasis { basis: "regen_stage0 --emit-fresh + --verify is the existing self-host proof harness", risk: "The fixed point holds for the emitter but a downstream module regresses", antagonize: "--verify divergence 0 over the FULL regen input set, never a sampled subset" } },
Expand Down
56 changes: 56 additions & 0 deletions docs/probes/srv2-05-native-agreement-divergence-diagnosis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# srv2-05 native agreement divergence — root-cause diagnosis

**Stamp:** 2026-07-23
**Incident:** GitHub Actions run `29963619401` (merge `2a226829f`, host `srv2-05`, 2026-07-22 23:28Z)
**Witness:** `emit_on_demand_family_crate_pr_native_agreement_holds`
**Outcome:** `Bool(false)` in 496ms, `compile_skipped=true` on all three family members
**Native cache key:** `8f21f541808ddb22`
**Frontier action:** complement + meet_join reverted to `InterpretedRetained` per `routed_flip_reverted_note` (#7091)

## What the log showed (before loudness fix)

- Warm native leg: all three members reported `compile_skipped=true` (cache hit).
- Agreement witness returned `false` with **no located member** and **no interpreted/native value pair**.
- CI failure line: `emit_on_demand_family_crate_pr_native_agreement_holds (...) returned Bool(false)`.

This is indistinguishable from a member-run failure, a semantic mismatch, or a harness false without further triage — exactly the loudness gap Lane B item (1) closes.

## Classification: R2 stale-artifact (suspected primary class)

**Hypothesis:** srv2-05 retained a **toolchain-keyed native cache artifact** from the pre-#7069 window. After #7069 keyed `GUNBC_NATIVE_CACHE_ROOT` to the rustc/toolchain identity, the runner could still serve **byte-identical compile_skipped hits** while the **emitted family source or member dispatch surface** no longer matched the interpreted eval oracle.

Evidence supporting R2 stale-artifact over cold-cache miss:

| Signal | Observation | Reading |
|--------|-------------|---------|
| `compile_skipped=true` ×3 | All members warm | Not a cold-build failure |
| 496ms wall | Fast | Interpreter + cached native only |
| srv2-05 only (initial report) | Divergence on one runner class | Persistent local cache state |
| #7069 landed toolchain-keyed root | Cache root semantics changed | Stale hit class opens |
| srv1 4-run hermetic probe (parity_receipts_local) | Runs 2–4 green on same key | Repro is host-state dependent, not deterministic code bug |

**R2 definition (this receipt):** A native cache entry whose **key still matches** (compile skipped) but whose **stored artifact is semantically stale** relative to the current emitter/eval contract — the absorbing-failure mode where the transport reports success (cache hit) while the agreement oracle redds.

## Alternate hypotheses (lower prior)

1. **Genuine semantic divergence** — interpreted eval and native disagree on a member (meet/join/complement) under warm cache. Would be reproducible on a clean root; srv1 probe argues against this as the steady-state main-line failure.
2. **Member dispatch run failure** — stdout octet mismatch masked as agreement `false`. Loudness fix (member + both values) discriminates this on the next red.
3. **Workspace path collision** — `pr_native` test_id workspace shared across jobs without eviction. Less likely given hermetic no-evict design and distinct keys per family digest.

## Remediation sequence (mandate order)

1. **Agreement loudness (LANDING THIS PR):** `v2.std.native_agreement` + `*_failure_receipt` companion — failures name `member=` and `interpreted=` / `native=` octet labels.
2. **Do not re-flip** complement/meet_join until warm agreement greens on **≥2 distinct runner hosts** with loud receipts.
3. **srvN hygeine:** Evict `GUNBC_NATIVE_CACHE_ROOT` for key `8f21f541808ddb22` on affected runners before re-flip experiment; falsifier cold control continues exercising both legs.
4. **744-entry census:** Mechanical roster in `docs/probes/witness_entry_eligibility_census.tsv`; per-entry cssl first-error sweep on srvN names remaining `EmitIneligible` classes before bulk flip.

## Receipt hooks

- Frontier revert: `src/v2/compiler/self_host/native_routing_frontier.dag` `routed_flip_reverted_note`
- Loudness authority: `src/v2/std/native_agreement.dag`
- Failure companion: `emit_on_demand_family_crate_pr_native_agreement_failure_receipt()` in `emit_on_demand_family_crate_witness_test.dag`
- Local green control: `src/v2/compiler/self_host/parity_receipts_local.dag` (srv1, key `8f21f541808ddb22`, runs 2–4 warm PASS)

## Status

**Diagnosis-complete, re-flip blocked.** Next red on agreement must carry located member + both values; if R2 stale-artifact reproduces, eviction receipt is the counted remediation before any `NativeRouted` data flip.
Loading
Loading