Skip to content

Rename compiler generations: v2 → v1, v4 → v2 (full/deep) - #5028

Merged
briansrls merged 3 commits into
mainfrom
claude/dazzling-bohr-jrykn0
Jun 16, 2026
Merged

briansrls merged 3 commits into
mainfrom
claude/dazzling-bohr-jrykn0

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

The version labels were historical. With v3 already removed (#5025), this relabels the two remaining generations so names reflect reality:

  • production self-hosted compiler (was v2) → v1
  • active substrate + pipeline (was v4) → v2

Full/deep rename — dirs, .dag namespace, Cargo crate names, every v2_*/v4 Rust identifier + file name, generated-header strings, regen authority strings, and front-door doc labels.

How (two ordered stages, token-scoped)

Order is load-bearing: v2→v1 first (frees the v2 namespace), then v4→v2. Token-scoped replacements (\bv2_, \bv2\., src/v2, exact package names, …) so historical prose isn't corrupted.

  • Dirs: src/v2→src/v1, src/v4→src/v2
  • Cargo: v2-compiler / -tests / -stage0-core / -stage0-emit-core → v1-*
  • Rust: all v2_* identifiers + 42 v2_*.rs files → v1_*; crate ref v2_compiler→v1_compiler
  • .dag namespace: module/import/qualified v2.→v1., v4.→v2.
  • Paths, generated headers (Generated by v2 compiler), regen authority strings
  • Docs: front-door generation labels (README status, ROADMAP, THESIS self-host block, doc-authority, BOOTSTRAP) updated by hand; bare v4 (no surviving v4 generation) bulk-replaced

Verification

  • cargo build --workspace — clean (twice; before and after the bulk prose pass)
  • v1 self-compile (strict_compile_diagnostic_count --ignored): 68 files, 0 diagnostics
  • v2 (former v4) emit witness — green
  • ci_claim_gate indexes the full src/v2 tree (exit 0)

Touch-driven tail (intentionally not in this PR)

Harmless, no build/CI impact, left for on-touch cleanup per the doc-authority touch-driven rule:

  • Scattered bare v3 historical mentions (~100 files) — the deleted generation.
  • Deep-prose old-v2 references in THESIS/INVARIANTS essays. Bare v2 is ambiguous post-rename (new v2 vs old v2→v1), so it was fixed targeted, not scripted.

Test plan

  • cargo build --workspace
  • v1 self-compile green
  • v2 emit witness green
  • ci_claim_gate full-tree index (exit 0)

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM


Generated by Claude Code

claude added 3 commits June 16, 2026 18:18
…emoval)

The version labels were historical. With v3 already removed, relabel the two
remaining generations so names reflect reality: the production self-hosted
compiler (was v2) -> v1; the active substrate+pipeline (was v4) -> v2.

Done in two ordered stages (v2->v1 first to free the v2 namespace, then v4->v2),
token-scoped so historical prose is not corrupted:
- Dirs: src/v2 -> src/v1, src/v4 -> src/v2.
- Cargo: v2-compiler / -tests / -stage0-core / -stage0-emit-core -> v1-*.
- Rust: all v2_* identifiers + 42 v2_*.rs files -> v1_*; crate ref v2_compiler -> v1_compiler.
- .dag namespace: module/import/qualified v2. -> v1., v4. -> v2.
- Paths, generated headers ("Generated by v2 compiler"), regen authority strings.
- Bare-word generation labels in front-door docs (README status, ROADMAP, THESIS
  self-host block, doc-authority, BOOTSTRAP) updated by hand; bare "v4" (no
  surviving v4 generation) bulk-replaced.

Verified: cargo build --workspace clean; v1 self-compile green
(strict_compile_diagnostic_count: 68 files, 0 diagnostics); v2 (former v4) emit
witness green; ci_claim_gate indexes the full src/v2 tree (exit 0).

Touch-driven tail (not done here; harmless, no build/CI impact): scattered bare
"v3" historical mentions (~100 files) and deep-prose old-"v2" references in
THESIS/INVARIANTS essays. Bare "v2" is ambiguous post-rename (new v2 vs old
v2->v1), so it was fixed targeted, not scripted.

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM
Follow-up to the v3 removal: the layering lens still actively forbade the dead
`v3.compiler` import prefix, and the (dormant, operator-signed CUTOVER) coverage
witness + scanner fixtures still modeled a v3 layer-root/form.

- Lens (`src/v2/lens/layering_imports.dag`): drop `v3.compiler` exact/prefix; keep
  the v2.compiler forbidden (the live layering rule), simplifying the now-single-
  generation names.
- Delete the 4 v3 scanner/lens-unit fixtures (`v3_std_exact`, `dsl_std_v3_prefix`);
  the latter's coverage was host-manifest-coupled, so dsl/std drops from the
  enumerated witness domain (still enforced by the lens root-independently).
- Coverage witness: v3 root/forms/rows removed → 3 roots × 2 forms × 4 rows;
  `coverage_domain_equivalence_argument_holds()` green.
- `tools/layering_imports_scan`: drop the dead `src/v3/std` scan root.

The layering subsystem is dormant (its CI gate script was removed in the CI rework),
so no CI impact; build clean, witness runs green.

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM
dsl/v3 held two live std modules in the v3.* namespace, imported by production
dsl/std. Migrate them so the v3 namespace is gone:
- dsl/v3/std/{approximate_field,emit_model}.dag -> dsl/std/, module v3.std.* -> std.*
- dsl/std/float.dag + rust/primitives.dag comment repointed to std.approximate_field
- Removed dsl/demos/todo_service.dag: a standalone, ungated demo whose only
  non-std dependency (v3.std.services) was deleted with src/v3 (#5025) and exists
  nowhere — the demo cannot compile; git-recoverable if rewritten.

dsl/v3 removed; no v3.std.* importers remain; float.dag closure resolves.

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM
@briansrls
briansrls merged commit efbdbb3 into main Jun 16, 2026
1 check passed
@briansrls
briansrls deleted the claude/dazzling-bohr-jrykn0 branch June 16, 2026 19:26
briansrls added a commit that referenced this pull request Jun 16, 2026
The v2->v1/v4->v2 rename (#5028) modified docs my bankruptcy had deleted; the
merge-conflict resolution didn't persist, so #5027 squash-merged with them restored
(BOOTSTRAP/INVARIANTS/THESIS/EXAMPLE/DIRECTION-CHECKLIST, all of docs/, src/v1 design
docs, scratch.txt) plus a README.md~origin_main merge artifact. Re-delete them and
repoint 2 stale INVARIANTS.md refs in bootstrap.rs to DESIGN.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
* WIP: cleanup day

* WIP: cleanup day

* WIP: cleanup day

* Docs bankruptcy: consolidate to DESIGN.md (harvest TODO); README/CLAUDE symlink to it

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* WIP: cleanup day

* DESIGN: serial first-principles rewrite; remove PR template

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* DESIGN: re-root §1 axiom on minimal/safe/efficient solution; DRY as consequence

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* Cleanup: gut ROADMAP, delete extdeps.md/fixture/ci-merge, repoint review tooling to DESIGN

- ROADMAP.md: reduced to a thin high-level project list (dep graphs being reformed)
- delete dsl/extdeps/extdeps.md; fold its fidelity invariant into DESIGN §3; repoint
  review.dag / review_codex.dag / schedule_model.dag (which also dangled on the deleted
  INVARIANTS/THESIS/MODELING/CODING) to DESIGN.md as the single review-context source
- delete orphan fixtures/v4-mvp1 (parity test gone with v3) and stale scripts/ci-merge SG-0 txt
- DESIGN: reconcile generation naming with main's v2->v1 / v4->v2 rename; trim open threads

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-delete bankrupted docs lost in the #5027 merge resolution

The v2->v1/v4->v2 rename (#5028) modified docs my bankruptcy had deleted; the
merge-conflict resolution didn't persist, so #5027 squash-merged with them restored
(BOOTSTRAP/INVARIANTS/THESIS/EXAMPLE/DIRECTION-CHECKLIST, all of docs/, src/v1 design
docs, scratch.txt) plus a README.md~origin_main merge artifact. Re-delete them and
repoint 2 stale INVARIANTS.md refs in bootstrap.rs to DESIGN.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
…plate_projection_source)

`regen_stage0 --verify` was stale at HEAD: a fresh self-compile dropped
`pub mod method_template_projection_source;` from the generated lib.rs, so the
committed stage0 seed could no longer reproduce itself (and a real regen would
orphan the module + break the build, since regen_stage0.rs and tests/bootstrap.rs
reference it).

Root cause: #5025 added the hand-maintained method_template_projection_source.rs;
#5028 hand-added its `pub mod` to the generated lib.rs but never registered the
module in regen's authority, so fresh regen omitted it (a 7th hand-maintained
stage0 file outside both registries).

Fix (mirrors v1_compiler_dag_collect handling):
- register method_template_projection_source.rs in HAND_MAINTAINED_STAGE0_FILES
  so regen copies it and the output-set assertion accepts it
- ensure_method_template_projection_module() injects its `pub mod` into the
  generated lib.rs (the .dag has no source for this module — it holds
  GENERATED_METHOD_TEMPLATE_PROJECTION_DAG as a Rust const)
- sync tests/bootstrap.rs copy_stage0_support_modules to the full hand-maintained
  set (it was missing resolved_graph_cache + v1_compiler_dag_collect)

regen-safe: no .dag change, no generated stage0 file changes (committed lib.rs
already declared the module; this makes regen reproduce it). Validated:
`regen_stage0 --verify` green, regen write produces zero drift, v1 claim gate
still green (158 witnesses).

Gating of this fixed point is provided by PR #5026 (executing .dag bootstrap
claim); this PR is its prerequisite post-rename.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
…plate_projection_source) (#5030)

* WIP: v1 -> v2 bootstrap/compile

* fix(bootstrap): restore v1 self-host fixed point (register method_template_projection_source)

`regen_stage0 --verify` was stale at HEAD: a fresh self-compile dropped
`pub mod method_template_projection_source;` from the generated lib.rs, so the
committed stage0 seed could no longer reproduce itself (and a real regen would
orphan the module + break the build, since regen_stage0.rs and tests/bootstrap.rs
reference it).

Root cause: #5025 added the hand-maintained method_template_projection_source.rs;
#5028 hand-added its `pub mod` to the generated lib.rs but never registered the
module in regen's authority, so fresh regen omitted it (a 7th hand-maintained
stage0 file outside both registries).

Fix (mirrors v1_compiler_dag_collect handling):
- register method_template_projection_source.rs in HAND_MAINTAINED_STAGE0_FILES
  so regen copies it and the output-set assertion accepts it
- ensure_method_template_projection_module() injects its `pub mod` into the
  generated lib.rs (the .dag has no source for this module — it holds
  GENERATED_METHOD_TEMPLATE_PROJECTION_DAG as a Rust const)
- sync tests/bootstrap.rs copy_stage0_support_modules to the full hand-maintained
  set (it was missing resolved_graph_cache + v1_compiler_dag_collect)

regen-safe: no .dag change, no generated stage0 file changes (committed lib.rs
already declared the module; this makes regen reproduce it). Validated:
`regen_stage0 --verify` green, regen write produces zero drift, v1 claim gate
still green (158 witnesses).

Gating of this fixed point is provided by PR #5026 (executing .dag bootstrap
claim); this PR is its prerequisite post-rename.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
)

* WIP: cleanup day

* WIP: cleanup day

* WIP: cleanup day

* Docs bankruptcy: consolidate to DESIGN.md (harvest TODO); README/CLAUDE symlink to it

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* WIP: cleanup day

* DESIGN: serial first-principles rewrite; remove PR template

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* DESIGN: re-root §1 axiom on minimal/safe/efficient solution; DRY as consequence

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* Cleanup: gut ROADMAP, delete extdeps.md/fixture/ci-merge, repoint review tooling to DESIGN

- ROADMAP.md: reduced to a thin high-level project list (dep graphs being reformed)
- delete dsl/extdeps/extdeps.md; fold its fidelity invariant into DESIGN §3; repoint
  review.dag / review_codex.dag / schedule_model.dag (which also dangled on the deleted
  INVARIANTS/THESIS/MODELING/CODING) to DESIGN.md as the single review-context source
- delete orphan fixtures/v4-mvp1 (parity test gone with v3) and stale scripts/ci-merge SG-0 txt
- DESIGN: reconcile generation naming with main's v2->v1 / v4->v2 rename; trim open threads

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-delete bankrupted docs lost in the #5027 merge resolution

The v2->v1/v4->v2 rename (#5028) modified docs my bankruptcy had deleted; the
merge-conflict resolution didn't persist, so #5027 squash-merged with them restored
(BOOTSTRAP/INVARIANTS/THESIS/EXAMPLE/DIRECTION-CHECKLIST, all of docs/, src/v1 design
docs, scratch.txt) plus a README.md~origin_main merge artifact. Re-delete them and
repoint 2 stale INVARIANTS.md refs in bootstrap.rs to DESIGN.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: ground the axiom in time (time is life); recast "why DRY" as refusing deferred future time

§1: all three quantities (cost/complexity/safety) reduce to time — to-run,
to-change, to-recover — and time is the one quantity every agent intrinsically
values, making minimal/safe/efficient an intersubjectively grounded objective
rather than a house preference.

§2: through that lens, DRY's "why" is the refusal to *defer* cost into the
future (shove a problem onto a later fixer, or build a throwaway process) —
valuing time holistically across every party, not just the author's now.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: §4 — ground acyclicity/seriality as the precondition for intersubjective agreement

Connects §4's two standing claims (bounded-forward/acyclic; grounding is
intersubjective) that previously sat unlinked: the DAG is acyclic *because*
intersubjective agreement holds only across time (§1), which demands claims
stable under it — so each is written syllogistically, a re-interrogable
consequence-chain that never wavers (algebra), never a cycle that could quietly
redefine itself. The preamble's recursion clause carries this to the document's
own serial reasoning.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: §1 — state the aim at its limit: reduce intersubjectivity to physics

Names the project's telos. Physics here is §1 turned on grounding itself — the
efficient, time-bound description of interactions that satisfies a goal — so the
aim is to drive every shared framework (§4) down from arbitrary convention
toward time-bound necessity. Ties the arc together: this is the deep reason §3
models the universal frameworks / real upstream rather than re-coining (a
nickname is convention standing where physics was available).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansrls@gmail.com>
Co-authored-by: Brian Searls <briansrls@gunb.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
* WIP: cleanup day

* WIP: cleanup day

* WIP: cleanup day

* Docs bankruptcy: consolidate to DESIGN.md (harvest TODO); README/CLAUDE symlink to it

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* WIP: cleanup day

* DESIGN: serial first-principles rewrite; remove PR template

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* DESIGN: re-root §1 axiom on minimal/safe/efficient solution; DRY as consequence

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cleanup day

* Cleanup: gut ROADMAP, delete extdeps.md/fixture/ci-merge, repoint review tooling to DESIGN

- ROADMAP.md: reduced to a thin high-level project list (dep graphs being reformed)
- delete dsl/extdeps/extdeps.md; fold its fidelity invariant into DESIGN §3; repoint
  review.dag / review_codex.dag / schedule_model.dag (which also dangled on the deleted
  INVARIANTS/THESIS/MODELING/CODING) to DESIGN.md as the single review-context source
- delete orphan fixtures/v4-mvp1 (parity test gone with v3) and stale scripts/ci-merge SG-0 txt
- DESIGN: reconcile generation naming with main's v2->v1 / v4->v2 rename; trim open threads

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-delete bankrupted docs lost in the #5027 merge resolution

The v2->v1/v4->v2 rename (#5028) modified docs my bankruptcy had deleted; the
merge-conflict resolution didn't persist, so #5027 squash-merged with them restored
(BOOTSTRAP/INVARIANTS/THESIS/EXAMPLE/DIRECTION-CHECKLIST, all of docs/, src/v1 design
docs, scratch.txt) plus a README.md~origin_main merge artifact. Re-delete them and
repoint 2 stale INVARIANTS.md refs in bootstrap.rs to DESIGN.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: ground the axiom in time (time is life); recast "why DRY" as refusing deferred future time

§1: all three quantities (cost/complexity/safety) reduce to time — to-run,
to-change, to-recover — and time is the one quantity every agent intrinsically
values, making minimal/safe/efficient an intersubjectively grounded objective
rather than a house preference.

§2: through that lens, DRY's "why" is the refusal to *defer* cost into the
future (shove a problem onto a later fixer, or build a throwaway process) —
valuing time holistically across every party, not just the author's now.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: §4 — ground acyclicity/seriality as the precondition for intersubjective agreement

Connects §4's two standing claims (bounded-forward/acyclic; grounding is
intersubjective) that previously sat unlinked: the DAG is acyclic *because*
intersubjective agreement holds only across time (§1), which demands claims
stable under it — so each is written syllogistically, a re-interrogable
consequence-chain that never wavers (algebra), never a cycle that could quietly
redefine itself. The preamble's recursion clause carries this to the document's
own serial reasoning.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: §1 — state the aim at its limit: reduce intersubjectivity to physics

Names the project's telos. Physics here is §1 turned on grounding itself — the
efficient, time-bound description of interactions that satisfies a goal — so the
aim is to drive every shared framework (§4) down from arbitrary convention
toward time-bound necessity. Ties the arc together: this is the deep reason §3
models the universal frameworks / real upstream rather than re-coining (a
nickname is convention standing where physics was available).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* DESIGN: recast §1 as an explicit axiom→theorem syllogism (light formalism)

States the assumptions up front as three axioms (A1 goal, A2 time-is-life,
A3 agreement-is-temporal), then derives minimal/safe/efficient, intersubjective
grounding, and the reduce-intersubjectivity-to-physics limit as named
consequences — prose connectors, not logic symbols, so it stays readable. The
cost/safety/complexity definitions are kept inline; nothing is lost. Preamble
notes §1 fixes the axioms and every later section is a consequence.

Adds an open thread: model A1–A3 in .dag and have a lens enforce the syllogism
(no orphan/cyclic claim) — the §4 acyclicity test turned on the argument itself,
the §7 recursion (operator's next project).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansrls@gmail.com>
Co-authored-by: Brian Searls <briansrls@gunb.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 16, 2026
…osed receipt-parse bug + 2 masked lints (#5045)

* WIP: v1 -> v2 bootstrap/compile

* fix(bootstrap): restore v1 self-host fixed point (register method_template_projection_source)

`regen_stage0 --verify` was stale at HEAD: a fresh self-compile dropped
`pub mod method_template_projection_source;` from the generated lib.rs, so the
committed stage0 seed could no longer reproduce itself (and a real regen would
orphan the module + break the build, since regen_stage0.rs and tests/bootstrap.rs
reference it).

Root cause: #5025 added the hand-maintained method_template_projection_source.rs;
#5028 hand-added its `pub mod` to the generated lib.rs but never registered the
module in regen's authority, so fresh regen omitted it (a 7th hand-maintained
stage0 file outside both registries).

Fix (mirrors v1_compiler_dag_collect handling):
- register method_template_projection_source.rs in HAND_MAINTAINED_STAGE0_FILES
  so regen copies it and the output-set assertion accepts it
- ensure_method_template_projection_module() injects its `pub mod` into the
  generated lib.rs (the .dag has no source for this module — it holds
  GENERATED_METHOD_TEMPLATE_PROJECTION_DAG as a Rust const)
- sync tests/bootstrap.rs copy_stage0_support_modules to the full hand-maintained
  set (it was missing resolved_graph_cache + v1_compiler_dag_collect)

regen-safe: no .dag change, no generated stage0 file changes (committed lib.rs
already declared the module; this makes regen reproduce it). Validated:
`regen_stage0 --verify` green, regen write produces zero drift, v1 claim gate
still green (158 witnesses).

Gating of this fixed point is provided by PR #5026 (executing .dag bootstrap
claim); this PR is its prerequisite post-rename.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

* Clear two clippy lints masked behind the never_loop error

- src/v1/tests/src/lib.rs: remove duplicated #[cfg(test)] on mod pd3_adversarial (clippy::duplicated_attributes)
- tools/ci_claim_gate/src/main.rs: fix doc-comment list markdown (clippy::doc_lazy_continuation); wording unchanged

clippy --all-targets -- -D warnings now clean workspace-wide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Resolve merge with main #5038: keep the fail-closed rev-scan fix

main's #5038 silenced clippy::never_loop by reducing parse_compiled_receipt to
lines().next_back(), which only inspects the literal last line and preserves the
original fail-closed bug (trailing output after the compiled: line -> false reject).
This keeps the rev-scan that actually fixes it, guarded by the discriminating test
parse_compiled_receipt_skips_non_matching_trailing_lines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 17, 2026
…name v4->v2 perturb fixture dir

The scripts/v2-leaf-model-*.sh leaf-model host runners were retired repo-wide
per operator directive #4252 (the modeled .dag TestClaim is the receipt authority,
as std/leaf_model_verification.dag already documents). 14 extdeps Status:/Host
runner comments still cited them present-tense as live infrastructure — a §5
false-consumer claim. Drop the dead-script clause, keep the tool verb.

Also fixes a #5028 (v4->v2) rename skew: workflow__glob_discovery.dag:52 was
repointed to scripts/fixtures/v2_discovery_completeness_slice but the directory
itself was left as v4_discovery_completeness_slice. git mv to match.

Left intentionally: std/leaf_model_verification.dag's #4252-retirement note and
its named dissolution trigger (load-bearing design intent, per §6).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 17, 2026
* WIP: cruft pt 2

* cruft pt 2: drop dead scripts/v2-leaf-model-*.sh runner citations; rename v4->v2 perturb fixture dir

The scripts/v2-leaf-model-*.sh leaf-model host runners were retired repo-wide
per operator directive #4252 (the modeled .dag TestClaim is the receipt authority,
as std/leaf_model_verification.dag already documents). 14 extdeps Status:/Host
runner comments still cited them present-tense as live infrastructure — a §5
false-consumer claim. Drop the dead-script clause, keep the tool verb.

Also fixes a #5028 (v4->v2) rename skew: workflow__glob_discovery.dag:52 was
repointed to scripts/fixtures/v2_discovery_completeness_slice but the directory
itself was left as v4_discovery_completeness_slice. git mv to match.

Left intentionally: std/leaf_model_verification.dag's #4252-retirement note and
its named dissolution trigger (load-bearing design intent, per §6).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: cruft pt 2

* WIP: cruft pt 2

* cruft pt 2 (batch 3): delete release/install pipeline + its orphaned platform island

Operator-authorized removal of the genuinely-unused release/install machinery
(never triggered: no v* tags, zero releases, no run history):
- .github/workflows/release.yml, install.sh, install/release-target-triples.sh
- src/v2/workflow/release.dag, src/v2/install/install.dag (unimported leaves)

Deleting install.dag orphaned a self-contained island whose only external entry
point it was — provably zero importers after removal, and self-described as
'Release Jun1 §5 Phase 1b prerequisite':
- src/v2/extdeps/platform_detection.dag (install.sh sed/uname projection support)
- src/v2/std/target_triple.dag, src/v2/std/platform.dag
Reconstructable from git + the-gunbai upstream (crates/gunbai-types/src/platform.rs)
if cross-compilation codegen later needs target-triple modeling.

Kept: shared infra was verified to be comment-mentions only, not real imports
(llvm_ir/dsl-v1-types carry their own TargetTriple concept). No stale comment
refs to the deleted modules remain. CI floor gate green (170 witnesses) incl.
#5051 filename-hygiene.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansrls@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 17, 2026
…s (deletes tools/) (#5048)

* WIP: v1 -> v2 bootstrap/compile

* fix(bootstrap): restore v1 self-host fixed point (register method_template_projection_source)

`regen_stage0 --verify` was stale at HEAD: a fresh self-compile dropped
`pub mod method_template_projection_source;` from the generated lib.rs, so the
committed stage0 seed could no longer reproduce itself (and a real regen would
orphan the module + break the build, since regen_stage0.rs and tests/bootstrap.rs
reference it).

Root cause: #5025 added the hand-maintained method_template_projection_source.rs;
#5028 hand-added its `pub mod` to the generated lib.rs but never registered the
module in regen's authority, so fresh regen omitted it (a 7th hand-maintained
stage0 file outside both registries).

Fix (mirrors v1_compiler_dag_collect handling):
- register method_template_projection_source.rs in HAND_MAINTAINED_STAGE0_FILES
  so regen copies it and the output-set assertion accepts it
- ensure_method_template_projection_module() injects its `pub mod` into the
  generated lib.rs (the .dag has no source for this module — it holds
  GENERATED_METHOD_TEMPLATE_PROJECTION_DAG as a Rust const)
- sync tests/bootstrap.rs copy_stage0_support_modules to the full hand-maintained
  set (it was missing resolved_graph_cache + v1_compiler_dag_collect)

regen-safe: no .dag change, no generated stage0 file changes (committed lib.rs
already declared the module; this makes regen reproduce it). Validated:
`regen_stage0 --verify` green, regen write produces zero drift, v1 claim gate
still green (158 witnesses).

Gating of this fixed point is provided by PR #5026 (executing .dag bootstrap
claim); this PR is its prerequisite post-rename.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

* Clear two clippy lints masked behind the never_loop error

- src/v1/tests/src/lib.rs: remove duplicated #[cfg(test)] on mod pd3_adversarial (clippy::duplicated_attributes)
- tools/ci_claim_gate/src/main.rs: fix doc-comment list markdown (clippy::doc_lazy_continuation); wording unchanged

clippy --all-targets -- -D warnings now clean workspace-wide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Resolve merge with main #5038: keep the fail-closed rev-scan fix

main's #5038 silenced clippy::never_loop by reducing parse_compiled_receipt to
lines().next_back(), which only inspects the literal last line and preserves the
original fail-closed bug (trailing output after the compiled: line -> false reject).
This keeps the rev-scan that actually fixes it, guarded by the discriminating test
parse_compiled_receipt_skips_non_matching_trailing_lines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

* Park axiom slice: remove broken prose axiom model (idea deferred)

The prose statement: String axiom model was inert (a human restating
DESIGN.md, not mechanically checked) and had unresolved v2 type errors
(List not matchable with Empty/Cons; generic-lambda params not inferring
field access). Operator parked the axiom-modeling idea; removing the
slice rather than shipping cringey/broken code into std/. The mechanical
reframe (time->cost.dag, safety->Risk dim with Diagnostic as values) is
saved for a future clean take.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* Slice 2: wire clippy/fmt CI gates (rust_gate_runner) + fix the latent stage0_core breakage they caught

What ships:
- rust_gate_runner (tools/): realizes the v2.workflow.rust_stage0_gates .dag
  selector. Per changed path it calls path_is_rust_monolith (String->Bool, in
  the v1 interpreter) — the .dag is the authority for WHICH gates run, the binary
  is the realizer. On a Rust-touching diff it runs cargo fmt --all --check and
  cargo clippy --all-targets -- -D warnings, fail-closed (undeterminable diff =>
  run the gates). The in-process witness gate stays the always-on floor; this adds
  the two Rust-only dependents. A .dag-only diff selects neither.
- ci.yml: adds the runner step (affected-set via origin/main...HEAD); fetch-depth
  1->0 so the merge-base resolves (runner fail-closes if absent). SCAFFOLD,
  dissolves when the Rust seed reaches zero (DESIGN §7).

Latent breakages the clippy gate caught on first run (both pre-existing on main,
uncaught because CI only ran the witness gate):
- v1-stage0-core did not compile (E0432): the generated CoreCrate module list
  omitted std_emit_model, though the shared emit files import it. Fixed at the
  authority (stage0_crates.dag) + regen_stage0; 'regen --verify' confirms the seed
  is at a fixpoint. This makes 'cargo check --workspace' green again.
- doc_lazy_continuation lint in src/v1/tests/src/pipeline.rs (same class as #5045).

Proven by execution: witness gate 176 green; rust_gate_runner exit 0 (fmt+clippy
both pass) on a .rs path; exit 1 on a planted fmt violation; skips on .dag-only;
git-mode plan resolves the diff vs origin/main.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* Merge origin/main into session/jolly-bear-882

Integrate main's v2 self-host (#5052), folder-based .dag naming (#5051), and
cruft sweep (#5053). Conflict resolutions:
- ci_claim_gate (modify/delete): keep the deletion; #5051's filename-hygiene
  check (no __ in .dag basenames) is ported into claim_batch's discovery path,
  so the witness floor still enforces it.
- DESIGN.md: CI floor line points at claim_batch + the gunbc rust gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fmt: reflow claim_batch import block after merge

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Replace emit_host_runner with gunbc-run emit_host_gate.dag (#5058)

* WIP: Replace emit_host_runner (bespoke tools/ Rust) with a gunbc-run .dag gat

* Replace emit_host_runner with gunbc-run emit_host_gate and delete the crate.

Host MVP smoke rows (rust/python/go/typescript) now run via dsl/tools/emit_host_gate.dag
with POSIX shell transports; CI witnesses the gate by execution. emit_host.dag transport
rows stay fail-closed in src/v2 (no host effects there) until T-22 Realization lands.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(emit-host-gate): bootstrap portable Go when absent from CI PATH.

Self-hosted runners have cargo/rust but not always `go`; download the
arch-matched toolchain tarball before the MVP smoke row runs.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Brian Searls <briansrls@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* WIP: v1 -> v2 bootstrap/compile

* fmt: reformat interp_dry_run_test.rs (pre-existing violation caught by the new rust gate)

The #5048 rust gate (cargo fmt --all --check) is the first CI fmt enforcement;
this test file accumulated a violation on main before any gate existed. Reformat
so the gate lands green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* WIP: v1 -> v2 bootstrap/compile

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: gunbai-bot[bot] <289086189+gunbai-bot[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Jun 22, 2026
… green-fixpoint yet)

Re-repair the .dag authority so it matches the committed seed's end products,
reducing the regen drift surface. Additive, cargo-green on the current seed; the
clean green regen fixpoint + the drift-gate are deferred (they converge with the
Route-A emitter self-host, since regen-write still emits a non-building seed from
~150 emitter-completeness gaps, not these pieces).

.dag authority (single-authority, no hand-Rust-logic in seed):
- runtime_rust.dag: add host-fn bytes_identity_hash (byte-level authority);
  atom_identity_hash now delegates to it.
- compile.dag: model compile_to_resolved_discovery_corpus_advisory +
  compile_to_resolved_with_options_gated + is_resolved_pipeline_typecheck_blocking;
  import is_discovery_corpus_blocking_diagnostic.
- 05_emit_rust.dag emit_lib_rs hand-module list + regen_stage0.rs
  HAND_MAINTAINED_STAGE0_FILES: wire doc_reachability_project and the two further
  drifted-in hand modules cache_purity_oracle + medium_structure_project (#5423/#5500).

Mirror sync (generated .rs kept in lockstep with the .dag edits, concat-associative):
- v1_compiler_emit_rust.rs hand_maintained_mods string == the .dag list.
- v1_compiler_runtime_rust.rs rt_hash_ops emits bytes_identity_hash + delegation.
- v1_compiler_compile.rs already carried the advisory family (consistent).

Also fix a leftover v2->v1 rename in a regen_stage0 unit test fixture (#5028).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 22, 2026
…achability + 2 drifted hand-mods, bytes_identity_hash host-fn, advisory family) (#5514)

* WIP: Stage0 regen-lockstep RE-REPAIR plus a regen-equals-committed CI drift-g

* WIP: Stage0 regen-lockstep RE-REPAIR plus a regen-equals-committed CI drift-g

* WIP: Stage0 regen-lockstep RE-REPAIR plus a regen-equals-committed CI drift-g

* Stage0 regen lockstep: .dag authority pieces + consistent mirrors (no green-fixpoint yet)

Re-repair the .dag authority so it matches the committed seed's end products,
reducing the regen drift surface. Additive, cargo-green on the current seed; the
clean green regen fixpoint + the drift-gate are deferred (they converge with the
Route-A emitter self-host, since regen-write still emits a non-building seed from
~150 emitter-completeness gaps, not these pieces).

.dag authority (single-authority, no hand-Rust-logic in seed):
- runtime_rust.dag: add host-fn bytes_identity_hash (byte-level authority);
  atom_identity_hash now delegates to it.
- compile.dag: model compile_to_resolved_discovery_corpus_advisory +
  compile_to_resolved_with_options_gated + is_resolved_pipeline_typecheck_blocking;
  import is_discovery_corpus_blocking_diagnostic.
- 05_emit_rust.dag emit_lib_rs hand-module list + regen_stage0.rs
  HAND_MAINTAINED_STAGE0_FILES: wire doc_reachability_project and the two further
  drifted-in hand modules cache_purity_oracle + medium_structure_project (#5423/#5500).

Mirror sync (generated .rs kept in lockstep with the .dag edits, concat-associative):
- v1_compiler_emit_rust.rs hand_maintained_mods string == the .dag list.
- v1_compiler_runtime_rust.rs rt_hash_ops emits bytes_identity_hash + delegation.
- v1_compiler_compile.rs already carried the advisory family (consistent).

Also fix a leftover v2->v1 rename in a regen_stage0 unit test fixture (#5028).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gunbai-bot Bot pushed a commit that referenced this pull request Jun 23, 2026
…fact)

The v2→v1 compiler rename (#5028, efbdbb3) moved this file to
src/v1/stage0/src/coproduct_reflection.rs. The old v2 path was never
wired (no mod declaration, no use sites) — dead on arrival after the
rename merged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 24, 2026
…moji) (#5653)

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* Fix: remove all // comments from .dag files (parser rejects them)

The DAG parser does not support // line comments anywhere — not at the
top level between declarations, not inside list literals, not inside
match bodies. Strip all // comments from unicode.dag, the XID test, and
the v2 tokenizer so dsl_compile_clean_gate_passes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* Drop stale src/v2/stage0/src/coproduct_reflection.rs (pre-rename artifact)

The v2→v1 compiler rename (#5028, efbdbb3) moved this file to
src/v1/stage0/src/coproduct_reflection.rs. The old v2 path was never
wired (no mod declaration, no use sites) — dead on arrival after the
rename merged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add target-glyph test: U+1F7E2 🟢 and U+1F7E1 🟡 survive Emoji_Presentation narrowing

Prove the keycap-base fix did not accidentally exclude the operator's
actual target codepoints. Both glyphs have EmojiPresentation status
(unlike # / * which have EmojiOtherAndEmojiComponent), so they correctly
remain accepted as emoji ident chars and round-trip through the emit
sentinel (_Eu1F7E2_ / _Eu1F7E1_).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix clippy + fmt: drop .clone() on Copy TokenShape; apply rustfmt

Clippy -D warnings caught .clone() on TokenShape (Copy type) in the
smoke test. rustfmt reformatted three files that had drifted from the
project style (unicode_xid_smoke.rs, v1_rt.rs, v1_compiler_tokenize.rs).
No logic changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* WIP: Grounded Unicode identifiers in the lexer (XID_Start/XID_Continue ∪ Emoj

* ci: re-trigger after sccache connection failure on runner srv1-10

The prior rust_tests run (#28065180602) hit sccache 'Failed to read
response header' mid-compile of unicode-properties — infra flake, not a
code issue. Retry via fresh run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix emit_ident ordering: case-convert before emoji-escape so sentinel survives to_snake

apply_char_sanitization was called before the naming-case transform, so the
_Eu<UPPER-HEX>_ sentinel introduced for emoji codepoints was immediately fed into
to_snake, which converts ASCII-uppercase chars (65-90) with underscore-prefix:
E(65)→_e, U(85)→_u, F(70)→_f — producing __eu1_f600_ that the lexer's
is_reserved_emit_sentinel check never matches.

Fix: move apply_char_sanitization after the naming-case block.  Emoji codepoints
(>> 90) are outside the 65-90 range that to_snake/to_lower_char modify, so they
pass through unchanged; the sentinel is introduced last and survives intact.

Add emit_ident_sentinel_survives_case_conversion test discriminating the correct
sentinel form _Eu1F600_ (accepted) from the mangled __eu1_f600_ (rejected).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

2 participants