Skip to content

Delete v3; migrate its one load-bearing role (method-template producer) into v2 - #5025

Merged
briansrls merged 1 commit into
mainfrom
claude/dazzling-bohr-jrykn0
Jun 16, 2026
Merged

briansrls merged 1 commit into
mainfrom
claude/dazzling-bohr-jrykn0

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Removes the src/v3 tree (historical, confusing) after migrating its one genuinely load-bearing role into v2.

v3 was not dead weight: v2's self-compile imports generated.method_template_projection (src/v2/05_emit*.dag, dsl/gunbc/compiler.dag), and the only producer of that .dag module was v3's emit_method_template_projection bin. v2 already held the same data (regen_stage0's GENERATED_METHOD_TEMPLATE_PROJECTION_DAG const + the baked .rs), so the producer dependency was redundant — this is a re-pointing, not a reimplementation.

Changes

  • New single-authority lib module src/v2/stage0/src/method_template_projection_source.rs — the projection .dag const + an in-process writer. Both regen_stage0 and the self-compile test helper consume it (no external producer; no committed generated .dag — the bootstrap ratchet forbids that).
  • bootstrap.rs::run_self_compile writes the projection in-process instead of shelling out to cargo run -p v3-compiler.
  • Removed v3-only v2 tests: pb_method_template_projection_consumability (whole file) and the legacy-method-template / l1-type-knowledge-ratchet tests in source_audit.rs (they audited the src/v3 corpus / the v2↔v3 method-template boundary).
  • Deleted src/v3 (436 files) + its 8 Cargo workspace members.
  • Cleaned the PR template (was almost entirely v3 SG-0 / dissolution-gate scaffolding for now-deleted files) and updated v3 state claims in ROADMAP.md / CLAUDE.md / docs/thesis/doc-authority.md.

Verification

  • cargo build --workspace — clean (no v3 compile deps remain).
  • v2 self-compile without v3 (strict_compile_diagnostic_count --ignored): 68 files emitted, 0 diagnostics.
  • v4 emit witness still green (v4 is v3-independent — runs on the v2 interpreter, never linked v3).

Left intentionally (separate pass)

The dormant layering subsystem still models a v3.compiler import-prefix via the operator-signed CUTOVER witness coverage_domain_equivalence.dag + scanner fixtures. It is not CI-wired and now scans an empty path harmlessly. Retiring its v3 dimension is a signed-witness edit (zesty signs) that wants its own pass, so it was not folded into this deletion.

Test plan

  • cargo build --workspace
  • v2 self-compile green without v3 (strict_compile_diagnostic_count --ignored)
  • v4 emit witness green

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM


Generated by Claude Code

…r) into v2

v3 was not dead weight: v2's self-compile imports `generated.method_template_projection`
(src/v2/05_emit*.dag, dsl/gunbc/compiler.dag), and the only producer of that .dag was
v3's `emit_method_template_projection` bin. v2 already held the same data (regen_stage0's
GENERATED_METHOD_TEMPLATE_PROJECTION_DAG const + the baked .rs), so the producer dependency
was redundant.

Migration (v3 -> v2), then deletion:
- New single-authority lib module `src/v2/stage0/src/method_template_projection_source.rs`
  holding the projection .dag const + an in-process writer; regen_stage0 and the self-compile
  test helper both consume it (no external producer, no committed generated .dag — the
  bootstrap ratchet forbids that).
- bootstrap.rs `run_self_compile` writes the projection in-process instead of shelling out to
  `cargo run -p v3-compiler`.
- Removed v3-only v2 tests: pb_method_template_projection_consumability (whole file) and the
  legacy-method-template / l1-type-knowledge-ratchet tests in source_audit.rs (they audited
  the src/v3 corpus / the v2<->v3 method-template boundary).
- Deleted src/v3 (436 files) + its 8 Cargo workspace members.
- Cleaned the PR template (was almost entirely v3 SG-0 / dissolution-gate scaffolding for
  now-deleted files) and updated v3 state claims in ROADMAP / CLAUDE.md / doc-authority.

Verified: `cargo build --workspace` clean; v2 self-compile green without v3
(strict_compile_diagnostic_count --ignored: 68 files emitted, 0 diagnostics); v4 emit
witness still green.

Left intentionally: the dormant layering subsystem still models a v3 import-prefix
(operator-signed CUTOVER witness `coverage_domain_equivalence.dag` + scanner fixtures). It is
not CI-wired and scans an empty path harmlessly; retiring its v3 dimension is a signed-witness
edit for a separate pass.

https://claude.ai/code/session_01CZuU2uD14dAhjtKMG6NxNM
@briansrls
briansrls merged commit 108abd5 into main Jun 16, 2026
1 check passed
@briansrls
briansrls deleted the claude/dazzling-bohr-jrykn0 branch June 16, 2026 17:36
briansrls pushed a commit that referenced this pull request Jun 16, 2026
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 added a commit that referenced this pull request Jun 16, 2026
* Rename compiler generations: v2 -> v1, v4 -> v2 (full/deep, post-v3-removal)

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

* Retire the v3 dimension from the dormant layering-imports subsystem

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

* Migrate dsl/v3 std modules into dsl/std; drop the v3.std namespace

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
briansrls pushed a commit that referenced this pull request Jun 16, 2026
#5025 migrated the method-template producer into v2 and hand-added
`pub mod method_template_projection_source;` to the committed stage0
lib.rs, but did not teach the self-compile to emit it. A fresh
self-compile therefore omitted the line, so `regen_stage0 --verify`
(the v2 self-host fixed point) failed: committed stage0 != fresh
self-compile. The module is load-bearing — regen_stage0 and the
bootstrap test both `use v2_compiler::method_template_projection_source`.

Handle it as the hand-written infra module it is, in the three places
its peers (v2_interpreter, cli_run, ...) are already handled:
  - 05_emit_rust.dag: add to emit_lib_rs_from_files hand_maintained_mods
    (+ regenerated v2_compiler_emit_rust.rs seed)
  - regen_stage0: add to HAND_MAINTAINED_STAGE0_FILES (copied into the
    fresh self-compile dir; excluded from the generated-output registry)
  - bootstrap tests: copy into stage dirs + exclude from the cross-pass
    fixed-point diff

regen_stage0 --verify now passes; committed lib.rs is unchanged (the
generator reproduces it).

https://claude.ai/code/session_01NiKQuX5vjB66m78TGLGE2i
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 pushed a commit that referenced this pull request Jun 16, 2026
#5025 migrated the method-template producer into the bootstrap compiler
and hand-added `pub mod method_template_projection_source;` to the
committed stage0 lib.rs, but never taught the self-compile to emit it.
A fresh self-compile omits the line, so `regen_stage0 --verify` (the
self-host fixed point) fails: committed stage0 != fresh self-compile.
CI does not run regen --verify, so the drift sits latent on main. The
module is load-bearing — regen_stage0 and the bootstrap test both
`use v1_compiler::method_template_projection_source`.

Handle it as the hand-written infra module it is, in the three places
its peers (v1_interpreter, cli_run, ...) are already handled:
  - 05_emit_rust.dag: add to emit_lib_rs_from_files hand_maintained_mods
    (+ regenerated v1_compiler_emit_rust.rs seed)
  - regen_stage0: add to HAND_MAINTAINED_STAGE0_FILES (copied into the
    fresh self-compile dir; excluded from the generated-output registry)
  - bootstrap tests: copy into stage dirs + exclude from the cross-pass
    fixed-point diff

regen_stage0 --verify now passes; committed lib.rs is unchanged (the
generator reproduces it).

https://claude.ai/code/session_01NiKQuX5vjB66m78TGLGE2i
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
…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>
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