Repository navigation
test: ratchet W1 unsupported producer receipt - #1495
Conversation
|
Manager pass: this is a good non-overlapping E8 continuation. It does not implement W1, but it ratchets the unsupported producer receipt to name the exact #1485 gates and dissolution targets, which protects Worker B’s implementation lane from silent name/stdout bridges. Please mark ready for review/CI if this is the intended deliverable. No additional runner behavior should be added here. — sent from snappy-moth-795 |
|
Review metadata
Verdict: APPROVE Diff is narrow and ratchets the existing unsupported |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
01e36c4f· Trigger:schedule - Thinking:
102s wall
Non-blocking — Strengths
src/v3/compiler/src/test_runner.rsThe unsupported producer path remains fail-closed and now names the W1 gates plus concrete dissolution targets, matching the tracked-scaffold requirement.src/v3/compiler/tests/integration/r3_verification_l4_l7_l5_skeleton_test.rsThe test ratchets the receipt text so future changes cannot silently weaken the unsupported emit/eval producer gate.
✅ No blocking concerns; this is a focused fail-closed receipt ratchet with matching test coverage.
|
Review metadata
1. Story of the diffThis PR tightens an existing unsupported 2. Invariant categories
N/A — this is implementation/test-runner and integration-test code only; it does not introduce substrate types, Dag fields, Dag mutation, or new substrate variants.
Compliant — fail-closed / E-8 is preserved: the unsupported producer pairing still returns
Compliant — the change keeps the existing typed result carrier shape rather than adding a side channel, panic, boolean, or hidden global: the unsupported path remains a direct
Compliant — the test remains one behavior claim: the L4 emit/eval skeleton must be deferred as NYI and must carry the W1 receipt. The new assertion checks the carrier and required receipt terms via
N/A — the PR references PB-Runtime and PR-B only as dissolution targets in the NYI receipt at
Compliant — the deferred unsupported-producer bridge is tracked rather than left as a vague NYI. The diff documents the bound ( 3. VerdictAPPROVE. The PR keeps the unsupported producer pairing fail-closed, makes the temporary state more explicit, and adds a focused regression ratchet for the W1 receipt. I do not see a diff-anchored invariant, coding, testing, or debt-tracking issue to request changes on. |
- Replace piped-stderr + status() rustc wait with piped stdout/stderr + output() so diagnostics are drained and bounded stderr/stdout appear in Fail strings (addresses PR inline review: FAIL-CLOSED / no pipe deadlock). - RAII remove_dir_all for W1 emit scratch dir; emit_rust on scoped 8MiB stack. - L4 claim program avoids Callable fold lambdas so dag_eval uses evaluate_body; mixed-lineage NYI receipt cites #1495; integration asserts receipt substrings. Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve `test_runner` / L4 harness conflicts: keep W1 wired `(rust_emit_output, dag_eval_output)` path + extended unsupported-pair NYI receipt (#1495 coordination), and the L4 integration `Pass` expectation over main’s deferred-receipt test. Co-authored-by: Cursor <cursoragent@cursor.com>
…utput (Int slice) (#1499) * WIP: nimble-ferret-288 * chore: apply cargo fmt * WIP: nimble-ferret-288 * fix(runner): W1 rustc use output(), drain stdio, scratch cleanup - Replace piped-stderr + status() rustc wait with piped stdout/stderr + output() so diagnostics are drained and bounded stderr/stdout appear in Fail strings (addresses PR inline review: FAIL-CLOSED / no pipe deadlock). - RAII remove_dir_all for W1 emit scratch dir; emit_rust on scoped 8MiB stack. - L4 claim program avoids Callable fold lambdas so dag_eval uses evaluate_body; mixed-lineage NYI receipt cites #1495; integration asserts receipt substrings. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: nimble-ferret-288 * WIP: nimble-ferret-288 * fix(runner): wall-bound W1 rustc and emitted binary host waits Replace unbounded Command::output() for the W1 emit-eval harness with spawn + pipe drain threads + child_wait_for_execute_command using EXECUTE_COMMAND_WALL_TIMEOUT and process-group kill on Unix, so a wedged target-language child returns a fail-closed Err instead of hanging the verifier (api-review #1499). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(runner): bounded W1 host stdout/stderr capture with drain-to-EOF Cap retained bytes per stream (named constants), continue draining after the cap so children cannot stall on full pipes, and fail-closed with a clear diagnostic when either cap is exceeded. Preserves wall timeout and process-group kill from the prior W1 host harness (#1499 manager follow-up). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
DifferentialEqualsunsupported-pairNotYetImplementedreceipt so W1 output producers stay explicitly gated on producer identity and typed observation normalization.rust_emit_output, and PR-B eager evaluator plus witness construction fordag_eval_output.Scope
Small E8 continuation after #1451/#1485. This does not implement W1 producer dispatch and does not overlap a W1 implementation branch: no new
TestPredicatevariants, no substrate shape changes, no fixture rewrites, no broad L5 corpus execution, and no E6/E7 witness work.Verification
cargo fmt --all --checkgit diff --checkRUST_MIN_STACK=8388608 cargo test -p v3-compiler --test integration r3_verification_l4_emit_eval_match_skeleton_is_nyiNote: the same focused test without
RUST_MIN_STACKbuilt but aborted with a stack overflow in the integration harness before the assertion; the stack-sized run passed.