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
1b00e05
Increment 1 (carried from cool-hawk-899): build_movable_set derives f…
Jul 5, 2026
4f13b94
Design: increment-2 per-site ownership verdict (Perceus last-use) + c…
Jul 5, 2026
1ad3572
Stage increment-2: per-site move licenses (backward liveness) + count…
Jul 5, 2026
416e997
Wire per-site move licenses through the emitter (whole-value consumpt…
Jul 5, 2026
d20f288
Design doc: consolidated validation-time checklist (parent-endorsed s…
Jul 5, 2026
3887918
Merge origin/main (resolver keystone #6250)
Jul 5, 2026
6c90480
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
b637a11
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
c8e721c
Drop gen-1 splice probe from the branch: seed back to committed baseline
Jul 5, 2026
54f1f16
Merge origin/main (get-fix #6255, P1 emit #6242)
Jul 5, 2026
d541383
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
a224dfd
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
4fe54c0
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
8623a27
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
7bde873
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
721ad9a
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
d873f7a
Drop gen-1/gen-2 adjudication scaffolding from the branch (local prob…
Jul 5, 2026
4ec57c5
Merge remote-tracking branch 'origin/main' into session/snappy-newt-504
Jul 5, 2026
eb6214e
Wall from gen-2 adjudication: per-site moves refuse match-bound / fun…
Jul 5, 2026
f031166
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
c12fa61
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
92893c1
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
e02a242
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
759d38f
Repair seed: pin src/v1/stage0 to origin/main content + take_owned_co…
Jul 5, 2026
e97eea1
Restore sibling-lane files swept by the stale scaffolding-restore mer…
Jul 5, 2026
a306d35
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
e63391b
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
1509122
Restore seed to origin/main + v1_rt counted helper (post gen-2' adjud…
Jul 5, 2026
dc2d155
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 2026
f5644ac
WIP: Emitter ownership de-fork: kill silent clone-fallback O(n2)
Jul 5, 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
18 changes: 9 additions & 9 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ Legend: `[x]` done · `[ ]` todo · **indentation = depends on the item it sits

Anchor (do not flip-flop): `.dag` = truth; v2 emits its own seed (no stage0 hand-edits); the trust chain is discharged by execution; then the hand-written seed is deleted. Terminal is **hand-written compiler logic → 0**, not zero bytes of Rust: a pinned v2-emitted bootstrap kernel (~8–15k LOC — `claim_executor`, evaluator host-physics, the regen oracle) survives as the content-addressed seed. → [plan](docs/plans/v2-self-hosting.md) · [de-fork audit](docs/plans/dag-v2-defork-audit.md) · [seed census](docs/plans/seed-shrink-census.md)

Ground truth (2026-07-01): `src/v1` = ~174k hand-written `.rs` LOC (the ~154k figure in older docs is stale) + 44 `.dag` files of v1's own modeling; `src/v2` = 839 `.dag`, zero `.rs`. HAND_MAINTAINED roster is down 24 → 9 files + `module_path_index` (~20.6k LOC); `patch_*` 3 → 1. The regen gate proves byte-identity per the COMMITTED seed (two-generation): emitter improvements are latent until a cutover, and the cargo-green receipt is episodic (`#[ignore]`, ~3–5min), not continuous — today's continuous walls are byte-identity + the interim fixpoint + well-typed emit.
Ground truth (2026-07-05): `src/v1` = ~174k hand-written `.rs` LOC (the ~154k figure in older docs is stale) + 44 `.dag` files of v1's own modeling; `src/v2` = 874 `.dag`, zero `.rs`. HAND_MAINTAINED roster is down 24 → 7 files + `module_path_index` (~22.3k LOC: the three lens projections drained #6158/#6211/#6212; `phase_profile.rs` ADDED 2026-07-04 with its own dissolution trigger); `patch_*` is fully dead in-tree. The regen gate proves byte-identity per the COMMITTED seed (two-generation): emitter improvements are latent until a cutover, and the cargo-green receipt is episodic (`#[ignore]`, ~3–5min), not continuous — today's walls are byte-identity + the full 92-file byte fixed point (#6218) + well-typed emit. INTERIM (operator-accepted, 2026-07-05): the CI floor cannot complete inside its 10-minute budget (#6232) while batch-1 compile-clean runs ~40+min, so these walls are proven by LOCAL execution with documented receipts, not by CI, until the §2 compile-clean work lands.

**◆ Milestones:** front-end ✓ · emit-rust well-typed ✓ · cross-tree import ✓ (#5473) · emitted crate cargo-green, 0 rustc errors ✓ (#5777/#5873, re-verified #6099) · `regen --verify` in CI ✓ (#5873) · interim fixpoint gate, 2-of-92 roster ✓ (#6009) → **▸ NOW: regen-cutover cadence · HAND queue drain · full-roster real fixed point** → seed-honesty (DDC) → **TERMINAL: `src/v1` deleted**
**◆ Milestones:** front-end ✓ · emit-rust well-typed ✓ · cross-tree import ✓ (#5473) · emitted crate cargo-green, 0 rustc errors ✓ (#5777/#5873, re-verified #6099 — for the THEN-seed; fresh emit is red today, see NOW) · `regen --verify` in CI ✓ (#5873) · interim fixpoint gate, 2-of-92 roster ✓ (#6009) · full-roster 92-file byte-fold + host-grounded digest ✓ (#6218) · v1 self-resolution: #6235 arm fixed ✓ (#6250), #6241 `get`-registry arm → #6255 in flight (operator-resolved collision: register the builtin, preserving P2's O(1) token access) → **▸ NOW: emitter restoration to fresh-emit cargo-green (#6243 C8 tail + residue — cutover #1 is BLOCKED on it; 1667 rustc errors measured 2026-07-05) · HAND queue drain · fixed-point residue (Node-level compare + placeholder hashes)** → seed-honesty (DDC) → **TERMINAL: `src/v1` deleted**

- [ ] **regen-cutover cadence** — absorb latent emitter fixes into the committed seed (#6099 merged with the `machine_width` emit test still ignored: two-generation regen means every emitter improvement is invisible until a cutover). Each cutover un-ignores its witnesses; a stale seed hides emitter regressions.
- [ ] **real fixed point** — `content_hash` stage1==stage2 over the FULL seed: host-ground `source_text_code_unit_digest`, widen the `SelfHostRealizedComparisonGate` byte-fold from its 2-file roster (`lib.rs`, `v1_rt.rs`) to all 92 GENERATED files, dissolve the `bootstrap.dag` placeholder hashes. The #6009 gate is INTERIM by its own disposition; this milestone gates the bulk cutover-delete, seed-honesty, and the shelved TS self-host.
- [ ] **seed-honesty discharge** (Diverse Double-Compiling) — modeled in `bootstrap.dag` (`SeedHonestyDischarge`), no execution exists; needs a reproducible artifact to double-compile. Design proposal (second-compiler candidate `ddc_reference_compiler` + computed fixed-point digest, reusing `self_host.dag`'s `canonical_emitted_bytes_digest`; flags open for operator sign-off): [seed-honesty discharge design](docs/plans/seed-honesty-discharge-design.md)
- [ ] **regen-cutover cadence** — absorb latent emitter fixes into the committed seed (#6099 merged with the `machine_width` emit test still ignored: two-generation regen means every emitter improvement is invisible until a cutover). Each cutover un-ignores its witnesses; a stale seed hides emitter regressions. RECEIPT (2026-07-05, local, #6253 — measured on a tree with the `get` sites resolvable; numbers independent of which #6241-gap fix lands, #6255 is the operator-chosen one): regen write-mode completes and materializes the latent backlog — 40 generated files / ~4.3k lines of drift since their last per-file writes — but the fresh crate is cargo-RED: 1667 rustc errors (E0282/E0308/E0425/E0614/E0631; dominant class = #6243's deref-boxing + alias-brand C8 tail). Cutover #1 is BLOCKED on emitter restoration to fresh-emit cargo-green; until it lands, `regen --verify` is red on that drift by construction and every emitter fix stays latent (the broken cutover was measured and NOT committed).
- [ ] **real fixed point** — `content_hash` stage1==stage2 over the FULL seed. LANDED (#6218): `source_text_code_unit_digest` host-grounded on `atom_identity_hash`, and the `SelfHostRealizedComparisonGate` byte-fold widened from the 2-file roster to all 92 GENERATED files via the regen manifest (self-updating roster; the gate's INTERIM disposition deleted). REMAINING: the Node-level comparison — emitted compiler Node vs emitted bytes (`generate_stage_candidate_from_ingest` has zero consumers today) — dissolve the `bootstrap.dag` placeholder hashes, and widen the provenance witness off its 1-file roster. This milestone gates the bulk cutover-delete, seed-honesty, and the shelved TS self-host.
- [ ] **seed-honesty discharge** (Diverse Double-Compiling) — modeled in `bootstrap.dag` (`SeedHonestyDischarge`), no execution exists; worse, the modeled witness is fail-open by construction (its evidence argument is the same atom it checks against — Holds trivially, no red case constructible) until Stage 3's executing consumer lands. Needs a reproducible artifact to double-compile. Design proposal (second-compiler candidate `ddc_reference_compiler` + computed fixed-point digest, reusing `self_host.dag`'s `canonical_emitted_bytes_digest`; FLAGs A–D open for operator sign-off): [seed-honesty discharge design](docs/plans/seed-honesty-discharge-design.md)
- [ ] **TERMINAL — collapse `src/v1`**: one atomic regen cutover-delete of the 92 GENERATED files (~117k of stage0's ~137k LOC) + per-module test deletes as migration lands + pin the terminal kernel. Requires: HAND queue empty · real fixed point · test-migration green · seed-honesty.
- [ ] **drain the HAND_MAINTAINED queue** (9 files + `module_path_index`, ~20.6k LOC) + kill the last `patch_*` (`patch_complexity_linearity_audit_mod`) — order: `main.rs` flip-back → the three lens projections → `coproduct_reflection` (de-fork-coupled) → `v1_interpreter` pure-eval emit (kernel D [plan](docs/plans/interpreter-kernel-d.md)) → `cli_run.rs` (largest, ~9.2k LOC; #6046 hard-gates net-new logic INTO it — verified pure-projection HAND folds carved out per #6211/#6212/#6217). Host-physics files (`recorded_fixture` · `resolved_graph_cache`) are terminal-kernel pins, not dissolution targets.
- [ ] **no-dual-representation-test lens rebuilt pure-v2** (#6104) — lens verdict moves off v1 Rust, the lens-E retirement pattern continued (in flight) — ⏳ awaiting sign-off
- [ ] **drain the HAND_MAINTAINED queue** (7 files + `module_path_index`, ~22.3k LOC; three lens projections drained ✓ #6158/#6211/#6212 · last `patch_*` dead in-tree ✓ · `phase_profile.rs` added 2026-07-04, dissolution trigger `realization_measurement_loop` Phase 0) — remaining dissolution order: `main.rs` flip-back (attempted #6226, self-reverted — the emitter lost Ci-subcommand/`extract_module_path` emission in #6053's dag_collect split; restore the emit gaps first) → `coproduct_reflection` (de-fork-coupled) → `v1_interpreter` pure-eval emit (kernel D [plan](docs/plans/interpreter-kernel-d.md); model+witness landed #6229, phase ModelAndWitnessOnly, blocked on emit_host transport wiring) → `cli_run.rs` (largest, ~12.1k LOC — grew as the absorption point for the drained projections' pure folds per #6211/#6212/#6217; #6046 hard-gates net-new logic INTO it). Host-physics files (`recorded_fixture` · `resolved_graph_cache`) are terminal-kernel pins, not dissolution targets.
- [ ] **no-dual-representation-test lens rebuilt pure-v2** (#6104) — lens verdict moves off v1 Rust, the lens-E retirement pattern continued (landed #6104) — ⏳ awaiting sign-off
- [ ] **de-fork dag ↔ v2 grounding cluster** (one std authority — the fixed point must be well-defined over ONE algebra): `algebra` first (LIVE fail-open, 75 floor entries) → effects/float/integer/logic → `nat` LAST. Operator rulings stand: coproduct = structural authority; grounded-realization wins. The cost of not de-forking is no longer theoretical: the `extdeps.shell` dag↔v2 fork silently shadowed `shell.Which` in the two-root module index and kept main red from #6097 until the de-fork hotfix. [brief](docs/plans/dag-v2-defork-audit.md)
- [ ] **Root B repoints** — def-unification (coproduct authority + aliases) → repoints (algebra/nat/integer/float/logic/effects/verification) → 🟡-marker dissolution (keystone #5552 merged)
- [ ] v1-coupled `coercion`/`node` renames — deferred to v1-delete
- [ ] **test-migration lane** — ~90 v1 test modules / ~939 `#[test]` fns move to floor `*_test.dag` witnesses before their module deletes (hard gate per module, bulk-delete forbidden); ~71 modules have NO floor equivalent today (census §5B: infer_semantics 51 · source_audit 41 · effects 36 · pipeline.rs 418 concern-level only). Parallelizable now; gates the terminal collapse per module.
- [ ] **make cargo-green continuous (or cheap)** — `route_a_emit_fresh_cargo_green_test` is ignored (~3–5min); an emitter regression that keeps bytes stable per the old seed but breaks a fresh build surfaces late. Decide: fold into `RegenVerifyGate` (doubles its cost) or a scheduled receipt.
- [ ] **test-migration lane** — live debt per the `v2.lens.test_migration_debt` shrink-only ratchet: 73 v1 test modules / 731 `#[test]` fns / ~23k LOC with no exact-stem floor witness (baselines 77/912/28546 set 2026-07-02; `pipeline.rs` alone is 417 fns, the dominant unit); the delete-guard blocks removing a v1 test module without its floor witness (hard gate per module, bulk-delete forbidden). **Scrutinize before migrating (operator, 2026-07-05): tests are not inherently valuable — triage each module first (migrate · delete-as-redundant · delete-as-low-value); the guard currently requires an exact-stem witness for ANY delete, so the lane's first deliverable is a typed retirement path through the guard, never a bypass.** Parallelizable now; gates the terminal collapse per module. NOTE: migrated witnesses run on the local discovery path — CI enrollment is opt-in (#6232) until affected-set selection lands.
- [ ] **make cargo-green continuous (or cheap)** — `route_a_emit_fresh_cargo_green_test` is ignored (~3–5min); an emitter regression that keeps bytes stable per the old seed but breaks a fresh build surfaces late. Decide: fold into `RegenVerifyGate` (doubles its cost) or a scheduled receipt. (This exact failure mode materialized 2026-07-05: fresh emit = 1667 rustc errors, accumulated invisibly while the byte wall was dark — see the regen-cutover receipt.)

## 2. Compute fabric — own the infra (CI · deploy · control plane)

Expand Down
Loading
Loading