Skip to content

Own child Run execution for Spec runs and Base fixes - #464

Merged
JacobStephens2 merged 2 commits into
mainfrom
issue-463
Oct 6, 2026
Merged

JacobStephens2 merged 2 commits into
mainfrom
issue-463

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

Malformed Harness diagnostics now preserve a child Run's actual ending. Child Run execution owns its process and readers through completion; Spec runs poll owned handles, and Base fixes keep their synchronous wait and Running mark.

 child Run
- start → wait → relay stderr → read stdout after exit
+ spawn → own process → start stdout capture and byte-tolerant stderr relay
+ try_wait / wait / drop → graceful stop when needed → reap and join → ending

 Spec run
- waiter threads → completion channel
+ owned child handles → poll every active Ticket

Closes #463

Evidence

  • Before: malformed_stderr_preserves_a_successful_ending_and_base_fix_account failed with could not read the Run for #248: stream did not contain valid UTF-8.
    After: It passes and relays the replacement character while retaining the PR URL and Base fix account.
  • Before: The finite stdout-pressure fixture blocked until its eight-second deadline killed it.
    After: It drains over 1 MiB before the caller waits and returns the last stdout line as the PR URL.
  • The new concurrent parent-only interruption integration test makes each Ticket's failure push wait for its sibling's push. Both children save unfinished work before the Spec run finishes; no dependent Ticket starts.
  • Review against main: Standards found one minor duplicated fixture setup, addressed with Fixture::start_with_fault; Spec found no issues.
  • Validation: cargo fmt --check, cargo clippy --all-targets -- -D warnings, and cargo test passed (1,252 tests; zero failures). The full suite includes all 58 Spec run and 13 Base fix integration tests.

Seams under test: child Run execution through start/try_wait/wait/drop with finite local executable fixtures and private fault injection; Spec run and Base fix command interfaces through their integration fixtures. Existing hidden-argument and Run ending tests remain separate.

Merge Danger

Door: two-way

Reversible execution refactor; no persistent-format changes. Child Runs retain their existing unbounded graceful shutdown and shared process groups.

Blast Radius: execution

Child Ticket Runs and Base fixes, including output relay and interruption cleanup.

Unaddressed findings

Standards

None. The single finding was addressed.

Spec

None. No findings were reported.

Built with codex · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit 1fbb06b into main Oct 6, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-463 branch October 6, 2026 23:50
This was referenced Oct 7, 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.

Deepen child Run execution ownership for Spec runs and Base fixes

1 participant