Repository navigation
Fix dual-milestone drift: re-base six v1-deletion plan rows on execution receipts - #7092
Merged
Merged
Conversation
…t-closure root fix Delta-first refresh of the v1-deletion plan authority against this session's landings: - witness_family_fanout -> DONE (all 9 families green + trustworthy controls: #6912/#6917/#6918) - new milestone emit_import_closure_root: the multi-layer emit-import peel root-caused into ONE transitive-closure derivation (operator ruling 2026-07-20); FreeMonoid was one layer, not the gate - probe_flip_fanout + deep_module_lanes -> both GATED on emit_import_closure_root (flip wave is NOT orthogonal; it shares the import-closure root and fans out in parallel with deep lanes on cargo-green) - unresolved_error_diagnosis -> diagnosis DONE, partial fix landed #6906 (mid-peel) - ci_floor_cutover -> ledger overlap-started #6915 with a §3 hand-declared-disposition defect to root-cause - rulings recorded: root-cause not face-by-face; cargo-green + witness-green always (no mid-peel merges) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…p; artifact is its projection
Operator: "your job is to get us to a full and confident plan — we can antagonize
it — make this a roadmap and the artifact a projection of it." The plan authority
now models the three-gate v1-delete bar directly (§3 single authority; the
selfhost-dashboard.html artifact projects it, delta-first):
- PlanGate enum groups every milestone under Gate 1 (emitter fixed point),
Gate 2 (honest frontier), Gate 3 (ledger green), or GateDeletion.
- BrickState (Placed|InFlight|Gated) per milestone.
- ConfidenceBasis{basis, risk, antagonize} per milestone — the attack surface
that makes the plan antagonizable item by item (the confidence-probe lane
fills in risk/antagonize).
- PlanGateSpec rows carry each gate's name + what it proves.
- 23 bricks (was 13): adds generic_t_rendering, the Gate-2 property bricks
(typed_frontier/frontier_dispositioned/no_frontier_lies), the Gate-3 ledger
bricks (ledger_modeled/ledger_projection + the 3 spine receipts), and
emit_representation_mismatch — the E0308 layer (~4400/deep module) the
confidence-probe just exposed once generic-T cleared (quiet-bee #6924
residual histogram). Rewired the Gate-1 chain so E0308 sits between the two
known roots and the deep-module lanes.
NOT "27/27 modules flipped" — the doc string states the bar is emitter fixed
point + honest frontier + ledger green; some modules stay SeedRetained by
necessity.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tion
The cycle-5 remodel put literal braces in prose strings (SeedRetained{reason,
migration_trigger}). In the seed grammar `{...}` inside a string is
interpolation (render.dag escapes them as \{ \}; the seed has ExprStringInterp),
so `{reason, migration_trigger}` parsed as an interpolation expression and blew
the top-level item parser: "expected item declaration". The known-good cycle-4
file had zero in-string braces.
Fix: replaced the 3 occurrences with parens — SeedRetained(reason,
migration_trigger). Verified by execution with a discriminating control:
v1_src_dag_parse reds the pre-fix version with the exact CI error and greens
the fix.
Also folds quiet-bee's E0308 type-pair sizing into emit_representation_mismatch:
206 pairs but TOP 5 = 82% (Symbol/String ~2100 = one std fork, FreeMonoid/String
~1038, Vector/FreeMonoid ~150, Optional/Option ~150) — the layer is TRACTABLE
(3-4 construction walls at the authority, not 206 one-offs), so Gate-1 depth is
now bounded. Risk downgraded from "could dominate Gate 1" accordingly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…244) cursor/composer-2.5 REQUEST_CHANGES caught a real §3 gap: the prose (ci_floor_cutover lane_state + critical_path_note) says the cutover is gated on the ledger receipts, but no PlanDependency wired ledger_projection / the 3 spine receipts into ci_floor_cutover — they pointed only at v1_delete. So the modeled DAG allowed CI cutover (and transitively quarantine) before Gate 3 completed. Fix: retarget the 4 Gate-3 receipt edges from v1_delete to ci_floor_cutover, so Gate 3 -> ci_floor_cutover -> v1_quarantine -> v1_delete. Now every Gate-3 receipt transitively gates BOTH quarantine and delete (verified by execution: reachability holds for all 4), with no redundant edge (the old direct receipt->v1_delete edges are subsumed by the chain). Updated v1_quarantine and v1_delete lane_state prose to state the transitive gating explicitly, so a reader of the dependency list cannot treat either as reachable without the ledger green. DAG re-verified acyclic (Kahn over all 23 milestones); parse-checked by execution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…-roadmap-converge
…-roadmap-converge
…rity pages only) + regen golden Render the v1-delete three-gate progress (Gate 1 emitter fixed point · Gate 2 honest frontier · Gate 3 ledger green) driven from gunbc.v1_deletion_plan on the live srv1 roadmap dashboard `/` and `/roadmap` pages — a single authority, no data duplication. Fixes two CI-red witnesses from the first cut: - roadmap_page_keystone_holds: the three-gate section had been spliced into the GENERIC roadmap_page(doc, merged) renderer, so it injected into every doc incl. the empty test doc, breaking the "empty doc -> empty <main>" invariant. Three-gate progress is AUTHORITY content (renders v1_deletion_plan), so route it through the _for_authority variants via a private _impl + main_prefix param (authority output byte-identical). Add witness_authority_shows_three_gate_progress as the positive coverage assertion (authority page HAS it; empty page is the discriminating RED control). - live_deploy_emit_holds / witness_apply_script_matches_committed_golden: regenerate .github/live-deploy-srv1-apply.sh so the embedded server.js dashboard pages carry the three-gate content. Proven green by execution: roadmap_page_keystone_holds PASS, live_deploy_emit_holds PASS. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rogress + regen golden Belt A (#6942) landed the roadmap launch button + /dispatch client script on the same three dashboard files this branch touches. Combined both in roadmap_page.dag: the _impl/main_prefix three-gate feeds #6942's conditional dispatch_client_script() body path (empty doc still yields a bare <main> with no script). The witness file auto-merged into one roadmap_page_keystone_holds carrying both feature families. Regenerated .github/live-deploy-srv1-apply.sh from the merged sources so it carries three-gate progress AND the dispatch button (the auto-WIP checkpoint had committed the in-progress merge with conflict markers). Proven green by execution on the merged tree: roadmap_page_keystone_holds PASS (three-gate + dispatch + all prior conjuncts), live_deploy_emit_holds PASS (golden matches). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gates
cursor/composer-2.5 (REQUEST_CHANGES) correctly flagged that
three_gate_progress_markup() mapped all of v1_deletion_gates including
GateDeletion, rendering 4 rows under the "three gates" heading.
GateDeletion is downstream cutover/delete ("proves nothing on its own"
per the authority), not one of the three proving gates.
Filter to the proving gates via tg_is_bar_gate (GateDeletion => false);
the heading is now literally true. Witness asserts Gate 1/Gate 3 render
and "Cutover and delete" (GateDeletion's name) does NOT. Regenerated the
apply-script golden (cutover_rows=0). roadmap_page_keystone_holds PASS.
Finding 1 (exclude the non-bar-brick probe_flip_fanout from Gate 2's
count) needs a typed discriminator on PlanMilestone in the plan
authority — landing separately pending authority-edit confirmation.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…hrink from gate counts
cursor/composer-2.5 correctly flagged that the gate progress counted
probe_flip_fanout in Gate 2's denominator even though the authority
declares the flip wave "not itself a bar-brick" (seed-shrink beyond the
fixed-point minimum) — so Gate 2 could never read 100%.
Fix (operator-cleared to edit the authority in this PR): add a typed
BrickRole = BarBrick | SeedShrink discriminator on PlanMilestone
(v1_deletion_plan.dag); probe_flip_fanout is the one SeedShrink, the
other 22 are BarBrick. The projection's tg_gate_bricks now filters to
bar-bricks, so tg_gate_total / tg_gate_placed / the remaining list all
exclude seed-shrink. Gate 2 reads 3/4, not 3/5.
Witness asserts the seed-shrink brick's title ("std_dup-gated modules")
does NOT render in the three-gate section (discriminating: removing the
filter reds it). Regenerated golden (seedshrink_leak=0).
roadmap_page_keystone_holds PASS, live_deploy_emit_holds PASS by
execution. Merged main (#6922 plan authority now landed).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ration declared_gap_steps_carry_interim_realization_authority required every DeclaredGap's interim_realization to cite `ctrl:` OR (`extdeps.` AND `gunbc.`). #6947 (Wave C3, merged to main) correctly migrated the os-install-actuated gap's nbd_proxy realization from the extdeps shell transport (`extdeps.bmc.webui.nbd_proxy_serve ShellProgram`) to a gunbc typed host-effect (`gunbc.host_effect_nbd_proxy_serve`), a more-grounded authority that no longer routes through an extdeps dep. The now-purely- gunbc realization made the `(extdeps. AND gunbc.)` conjunction fail, so the fold returned Bool(false) — a main-inherited CI red (owner session crisp-bat-221 archived; no fix in flight). Relax the over-specific conjunction to the invariant's actual intent: a DeclaredGap must cite >=1 grounded authority — `ctrl:` OR `extdeps.` OR `gunbc.`. Fail-closed property preserved: a gap citing NONE still reds; ModeledCompose arm unchanged. RED proven by CI execution on 3644226 (returned Bool(false)); this greens it. Also restores dag/test/fixture/m4_universal_governed_corpus.dag to origin/main (a phantom auto-WIP edit had crept in during local repro). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…d by execution; full 21-module probe sweep Operator-directed disentangle: a blocker edge without a named MEASURED reason is removed. - 03_resolve + 03_name_resolve re-declared knowledge_attributed -> execution_measured: 03_resolve = generic-T render class (E0425 cannot find type T; new reason row curated_cargo_probe_generic_type_render), 03_name_resolve = cssl_assemble refuse (unroutable gunbc_plans_md_helpers closure reach). Both triggers -> migrate_when_closure_self_emits_cargo_green (the 04_infer pattern); the migrate_when_namespace_only_resolution_lands trigger no longer appears anywhere. - Full-frontier sweep TSV (21/21 modules, deduped, provenance header): 4 generic-T (03_resolve, 04_infer, 05_eval, fold_lowering), 1 value-qualified (materialization_carriers), 2 render residues (02_parse dotted, 01_tokenize struct-literal-path), 13 HARNESS_REFUSE on ONE root (test_claim_materialization_ladder_witness pulled into compiler closures; + gunbc.plans on 03_name_resolve), 1 false-red (03_normalize, lane shim required). - Verified by execution: frontier compile differential clean (135 pre-existing on entry, 0 added), frontier_classify_unlisted_reason_refuses_holds green, 10/10 compiler_frontier_census witnesses green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…-roadmap-converge
…-roadmap-converge
…-roadmap-converge
…D, type-ref-import-missing is the successor class on 5 modules (3 unique symbols); 05_eval + 06_translate knowledge_attributed -> execution_measured; emit-shape + struct-literal-body classes named; materialization_carriers advanced off import-closure. Receipts in TSV + honest_frontier_refresh_2026_07_22_post_merge_note Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ted -> execution_measured (TSV row 05_emit E0433 UriScheme landed by the resumed background sweep after the 13-row read) — roster and receipt back to one authority Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…ts purpose: sweep-order ranks verified against frontier authority) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
…-roadmap-converge
…-roadmap-converge
…-roadmap-converge
…7-22 execution receipts The plan-milestone rows lagged the frontier/probe carriers (the staleness the operator saw on the freshly deployed srv1 roadmap). Re-based on receipts, both directions — two flips forward, one flip BACK: - generic_t_rendering InFlight -> Placed: class extinct by execution (#7033 + 21-module re-sweep, zero curated_cargo_probe_generic_type_render rows); Phase-2 typed-REFUSE residue named as non-bar hardening. - trigger_renegotiation InFlight -> Placed: the mechanical frontier-row update landed (#7040 trigger refutation + #7058 refresh); no namespace-gated trigger remains on the frontier. - std_dup_assembly_fix Placed -> InFlight (honest-green rule): E0255 resurfaced post type-surface regen as first-error on the curated 4-module baseline — suspected different root (emitter-synthesized std use-lines, #7068 pub-use family). Now the single first-error blocker for the cargo-green fan-out. - emit_import_closure_root: type-surface arm landed (#7057), E0422/E0433 class cleared by execution; representative cargo-green bar still unmet behind E0255. - emit_representation_mismatch: the ~4400-sized layer measured GONE on 04_infer (e0308_all=0); gate premise re-pointed to std_dup + post-clear re-histogram. - deep_module_lanes: gate premise re-based accordingly. Verified by execution: plan closure compiles 0 diagnostics; roadmap_page, roadmap_frontier, roadmap_register witnesses all true; generated_artifact_gate main_wet ExitSuccess with zero drift. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-roadmap-converge
Merged
4 of 5 tasks
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.
The operator deployed srv1 and correctly observed the roadmap gate rows not reflecting the day's merges — the PlanMilestone rows in
dag/gunbc/v1_deletion_plan.dag(the plan authority the served page projects) lagged the frontier/probe carriers updated by #7033/#7040/#7057/#7058. This PR re-bases six rows on receipts, in both directions — two flips forward, one flip back:Forward:
generic_t_renderingInFlight → Placed — class extinct by execution (emit: fold-closure generic-T, Witness prelude, value-qualified refs (#6924 residual) #7033; the post-merge 21-module re-sweep reads zerocurated_cargo_probe_generic_type_renderrows; receipts indocs/probes/curated_cargo_frontier_probe_sweep.tsv). Phase-2 typed-REFUSE residue named explicitly as non-bar hardening.trigger_renegotiationInFlight → Placed — the mechanical frontier-row update the decision required landed via Honest frontier refresh: namespace-terminal trigger refuted by execution + full 21-module probe sweep #7040 + Post-merge honest frontier re-sweep: generic-T dead, type-ref-import-missing named as successor class; 05_eval + 06_translate upgraded to execution_measured #7058; no namespace-gated trigger remains. This completes Gate 2 (honest typed frontier) at 4/4.Backward (honest-green rule — a green claim the current measurement contradicts may not stand):
std_dup_assembly_fixPlaced → InFlight — E0255 List-defined-multiple-times resurfaced post type-surface regen as first-error on the curated 4-module baseline (crisp-fox validation receipts + the 16-entry corpus eligibility sample). Suspected different root than the std_dup 3-module unlock: the curated seed-link probe harness reds E0255 Witness duplicate (std_dup) on 01_tokenize, 04_infer, program_partition — the dual-std-tree basename homonym class (dag/std vs src/v2/std). Fix pattern = per-module authority (the Nat precedent, #6834); extend it or dedup the ha #6876 fix (emitter-synthesized std use-lines colliding with seed-linked assembly, the dissolve cssl_emit_artifact_sanitize: v1_rt-import-strip is dead, pub-use-dedupe still live (gap named for crisp-fox-839) #7068 pub-use family). It is now the single first-error blocker for the whole cargo-green fan-out.Re-based in place (state unchanged, premise corrected):
emit_import_closure_root(type-surface arm landed, class cleared, bar unmet behind E0255),emit_representation_mismatch(the ~4400-sized layer measured gone on 04_infer — e0308_all=0),deep_module_lanes(gate premise re-pointed to std_dup).Verified by execution: plan closure compiles 0 diagnostics;
roadmap_page/roadmap_frontier/roadmap_registerwitnesses all true;generated_artifact_gate main_wetExitSuccess, zero drift.🤖 Generated with Claude Code