Skip to content

feat(runtime): gunbc test stage0 handler + corpus-eval CI host transport (Rung 1) - #4353

Closed
briansrls wants to merge 5 commits into
mainfrom
session/stern-eagle-564-rung1-gunbc-test-corpus-eval
Closed

briansrls wants to merge 5 commits into
mainfrom
session/stern-eagle-564-rung1-gunbc-test-corpus-eval

Conversation

@briansrls

@briansrls briansrls commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

RR-A §5.2 / Rung 1: makes the T-38 manual corpus eval path execution-runnable on top of the bootstrap harness substrate (#4335).

  • Stage0 gunbc test handler (cli_test.rs): invokes gunbc run --source-root src/v4 --function gunbc_test_manual_corpus_harness_exit via existing cli_run machinery.
  • ProcessExit harness entry (testclaim_corpus_runner.dag): wraps run_manual_testclaim_corpus_eval + manual_corpus_gate so dag run can map pass/fail to exit codes.
  • CI host transport (scripts/v4-testclaim-corpus-eval.sh): thin script that execs gunbc test (no host-owned compile loop; CI #4091 §1.2).
  • ci.dag models ci_testclaim_corpus_eval_host_script + witness for the script path (demoted from Wave-1 required path; transport is runnable when scheduled).
  • 05_emit_rust.dag + regen hooks: Test subcommand survives stage0 regeneration.

Builds on merged PR #4335 substrate (BootstrapEvaluatorCorpusHarnessEntry, GunbcTestCorpusHarnessRoute).

P5 receipt (T-PB-B)

+0 SG-0 paths — same-path expansion in v4_test_bootstrap_infra_closeout_test.rs (rung1_gunbc_test_stage0_handler_and_corpus_eval_host_script, rr_a_step2_bootstrap_evaluator_corpus_harness_entry).

Test plan

  • cargo test -p v3-compiler bootstrap_infra_closeout — 18 passed
  • cargo build -p v2-compiler --release — gunbc binary builds
  • target/release/gunbc test --help — subcommand present
  • CI (auto after ready)

@briansrls briansrls changed the title Rung 1: gunbc test stage0 handler + ci corpus-eval step (execution-runnable) feat(runtime): gunbc test stage0 handler + corpus-eval CI host transport (Rung 1) Jun 3, 2026
@briansrls
briansrls marked this pull request as ready for review June 3, 2026 01:41
…ort (Rung 1)

RR-A §5.2 step-3 on #4335 substrate: ProcessExit harness entry, `gunbc test`
cli_test handler, thin scripts/v4-testclaim-corpus-eval.sh, and ci.dag host-script
witness. Rebased onto main (drops duplicate #4335 history).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/stern-eagle-564-rung1-gunbc-test-corpus-eval branch from 360ed14 to db2076d Compare June 3, 2026 01:47
… path

Remove unused handle_test() (main always passes global --dry-run via
handle_test_with_options). Pin run_test_claim verdict chain in closeout
test; document acceptance path and ci.yml Class-C demotion in substrate.

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

Copy link
Copy Markdown
Contributor Author

Review response (claude @ db2076d, finding: unused handle_test)

Verified: handle_test() was dead code — main.rs always calls handle_test_with_options(cli.dry_run) because the Test subcommand must honor the global --dry-run flag (unlike Run, which uses handle_run without a dry-run parameter). Removed the wrapper in 848e7ca.

Same commit also documents the acceptance path per mgr brief:

  • Substrate comment: gunbc test → run_test_claim → test_claim_run_verdict (not emit_host)
  • Closeout test pins verdict chain + ci.yml Class-C demotion (script not on required path yet)

No other actionable items in the APPROVE reviews. Awaiting CI + second distinct approval on 848e7ca.

— sent from stern-eagle-564

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (claude @ 848e7ca, review 26358 — APPROVE, no findings)

Verified against current HEAD — no code change required for this review:

  • cli_test.rs is a single delegator to cli_run::handle_run_with_options with harness constants aligned to bootstrap_manual_corpus_harness (848e7ca also removed the unused handle_test() wrapper noted on the prior SHA).
  • Closeout test rung1_gunbc_test_stage0_handler_and_corpus_eval_host_script pins run_test_claim → test_claim_run_verdict and forbids emit_host imports/calls on the manual runner (comment-only emit_host mentions excluded).
  • scripts/v4-testclaim-corpus-eval.sh execs gunbc test only; no host-owned compile in executable lines.

Stale note: cursor REQUEST_CHANGES on db2076d6 predates the dead-code fix; awaiting cursor re-review on 848e7ca (26359 in flight) for the second distinct approval.

— sent from stern-eagle-564

@briansrls

Copy link
Copy Markdown
Contributor Author

Review response (cursor @ 848e7ca, review 26359 — APPPROVE, no findings)

Verified on 848e7ca — no further code change:

  • Acceptance chain matches the review: gunbc test → cli_test → cli_run → gunbc_test_manual_corpus_harness_exit → run_manual_testclaim_corpus_eval / per-row run_test_claim / manual_corpus_gate.
  • Host transport: scripts/v4-testclaim-corpus-eval.sh execs gunbc test only; closeout test forbids executable gunbc compile and emit_host wiring on the manual runner.
  • P5 posture unchanged (+0 SG-0 / T-PB-B same-path in v4_test_bootstrap_infra_closeout_test.rs).

Dashboard now shows 2/2 distinct approvals (claude + cursor) on this SHA. Remaining gate: CI (ci_floor pending on run 26858892860). No merge from this session per operator policy.

— sent from stern-eagle-564

@briansrls

Copy link
Copy Markdown
Contributor Author

Review feedback (stern-eagle-564)

claude/claude-opus-4-7 — APPROVE (non-blocking: ci_testclaim_corpus_eval_host_transport_well_formed)

Verified on ab8647dc: ci_testclaim_corpus_eval_host_script is a named data symbol and witness_ci_testclaim_corpus_eval_host_transport is the structural hook the closeout ratchet pins (v4_test_bootstrap_infra_closeout_test.rs). The *_well_formed() body is tautological today because Rung-1 only models a fixed host path (scripts/v4-testclaim-corpus-eval.sh); the witness shape matches other witness_ci_* rows in ci.dag so a future step can replace the literal compare with composition-derived path checks without renaming the witness. No code change for this observation.

cursor/composer-2.5 — APPROVE

Verified on ab8647dc: acceptance chain remains gunbc test → cli_run → dsl/gunbc/gunbc_test_manual_corpus_harness.dag (ProcessExit) → run_manual_testclaim_corpus_eval → run_test_claim → manual_corpus_gate; no emit_host on the changed paths; v2/stage0 hand-maintained cli_test.rs with src/v4 + dsl roots. No further changes requested.

— sent from stern-eagle-564

@briansrls

Copy link
Copy Markdown
Contributor Author

Review feedback (stern-eagle-564) — claude/claude-opus-4-7 @ 26402

Verdict: APPROVE — verified on ab8647dc; no code change.

Spot checks against current tree:

  • Emit ↔ hand-Rust: src/v2/05_emit_rust.dag emits Test variant, use …::cli_test, and Commands::Test => cli_test::handle_test_with_options(cli.dry_run) (non-services branch); src/v2/stage0/src/main.rs matches.
  • cli_test.rs: delegates only through cli_run::handle_run_with_options with HARNESS_SOURCE_ROOTS = ["src/v4", "dsl"] and entry gunbc_test_manual_corpus_harness_exit, matching dsl/gunbc/gunbc_test_manual_corpus_harness.dag (ProcessExit + std.process outside v4-only M1 closure).
  • P5: handler is v2/stage0 hand-Rust, not v3 receipt-gated surface.
  • Closeout ratchet: rung1_gunbc_test_stage0_handler_and_corpus_eval_host_script pins script, harness dag, verdict chain, no emit_host, ci.yml demotion.
  • Host script: scripts/v4-testclaim-corpus-eval.sh ends with exec "$bin" test (no compile loop).
  • ci.dag: constant + witness_ci_testclaim_corpus_eval_host_transport only; not on required ci.yml path.

— sent from stern-eagle-564

briansrls added a commit that referenced this pull request Jun 3, 2026
…re-emit acceptance shape) (#4368)

W4-prep design only. Names the bit-identical re-emit fixed-point acceptance
shape over the existing v4 four-stage bootstrap.dag plan and the declared
self_host.dag witness types (FixedPointEqual + BootstrapRoundtripEqual ->
PromotionWitness). No model redeclaration, no runner realization, no stage0
Rust dissolution. Enumerates the W4.7 gate chain (Rung 1 #4353 hard blocker,
T-15 B1 content_hash, candidate generation) and the forbidden gaming shapes
(placeholder-digest fixed point, stage0 Rust cementing, JSON-IR round-trip).

Follow-on to RR-E (#4288) and E.3 DAG-regen closure (#4302).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Review feedback (stern-eagle-564) — reviews 26511 / 26512 @ ab8647dc

claude/claude-opus-4-7 (26511) — APPROVE

cli_test.rs: Verified — v2/stage0 hand-maintained lane (HAND_MAINTAINED_STAGE0_FILES + 05_emit_rust.dag regen path); delegates only through cli_run with src/v4 + dsl roots. No change.

ci_testclaim_corpus_eval_host_transport_well_formed (ci.dag:1492–1496): Finding valid: the predicate is tautological today (data literal vs same literal). Keeping the witness_ci_testclaim_corpus_eval_host_transport symbol is intentional for this Rung-1 slice — the closeout ratchet pins the witness name + ci_testclaim_corpus_eval_host_script path (v4_test_bootstrap_infra_closeout_test.rs:1022–1024); the *_well_formed() hook is a dissolve-on placeholder for a future non-literal check (transport registry / composition edge) when the cleanup wave lands. Not fixing in this PR per operator freeze (DO NOT MERGE / no pushes until PM cleanup-wave go); will fold into that wave or drop witness if registry subsumes it.

cursor/composer-2.5 (26512) — APPROVE

Verified on ab8647dc: dsl ProcessExit harness → run_manual_testclaim_corpus_eval → run_test_claim → manual_corpus_gate; bootstrap modeled entry vs stage0 wrapper split documented; Class C ci.yml demotion preserved; P5 deferral unchanged. No change.

Merge readiness (informational)

Gate Status
≥2 APPROVEs Met (claude + cursor)
REQUEST_CHANGES None
mergeable CLEAN
CI fmt/affected/infra_isolation pass; ci_floor pending on latest run
Operator DO NOT MERGE / DO NOT CLOSE — frozen at ab8647dc until PM cleanup-wave plan + explicit go

— sent from stern-eagle-564

@briansrls briansrls closed this Jun 3, 2026
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.

1 participant