Skip to content

Record child Runs and Spec runs in Command status - #781

Merged
JacobStephens2 merged 6 commits into
issue-711from
issue-769
Oct 18, 2026
Merged

JacobStephens2 merged 6 commits into
issue-711from
issue-769

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Summary

Command records and text/JSON status now cover the whole Command tree. Each process atomically replaces only its own record; the README documents the added fields.

Pickup run
└─ Spec run: Tickets → Spec review → Delivery
   ├─ Ticket: running → Run stage + age
   │  └─ Base fix → Run stage + age
   ├─ Ticket: waiting on named blockers
   ├─ Ticket: merged into the Spec branch
   ├─ Ticket: failed
   └─ Ticket: not started

Closes #769.

Evidence

  • Before: status_nests_a_pickups_spec_with_running_waiting_merged_and_not_started_tickets failed because commands was empty during the Pickup run.
    After: the same test passes, showing Pickup → Spec → concurrent-capable child Runs and the complete Ticket roster. Tests also cover failed Tickets, Spec review, completed child stages, and a SIGKILL child reported as died at implement.
  • Before: status_shows_a_base_fix_under_the_run_that_started_it found the child labeled Run.
    After: it passes with Base fix nested under its starting Run.
  • Before: the Spec review's exact regression, cargo test --test status status_names_a_foreign_blocker_without_making_a_ticket_look_self_blocked -- --exact --nocapture, failed with Ticket #21 · waiting on #21 for a foreign blocker.
    After: that exact command passes; foreign blockers keep their full URL. The regression is retained.
  • Recorder tests cover simultaneous child writes without overwriting either sibling or the parent, reused process IDs, and write failures.
  • Final validation: formatting, all-target typechecking and Clippy pass. All 46 Cargo test targets were exercised: 1,888 passed, two pre-existing tests ignored. The full run resumed after correcting the Command log inventory assertions; the complete continuation and status targets were rerun after restoring Claim ordering, followed by the four Spec tree regressions and Base fix nesting test.

Test seams

  • The thirdshift binary with the existing fake GitHub and Harness: Pickup dispatch, Spec Ticket states and concurrent Runs, Base fix nesting, killed child liveness, and text/JSON status.
  • The owned log recorder with its existing effects adapter: concurrent child writes and unchanged parent ownership.

Review coverage

Independent Standards and Spec reviews used issue-711, pinned to origin/issue-711 at dc99a350f295d12ecee683f0e183bc1bddde7d63. Both reviewers inspected the 14 files changed through 9e8ba5b, including the finding fixes and regression. The final diff has 15 changed files. No generated-output exclusions.

Unread under both Standards and Spec: tests/command_logs.rs, and the later title-lookup ordering correction in src/run.rs (earlier hunks were reviewed). After the bounded follow-ups, the full suite exposed older log inventory assertions and two continuation regressions. The test helper now excludes metadata files while preserving all log assertions; top-level Runs again fetch their title after Claim creation, with the new early lookup restricted to child Runs. The implementing agent inspected both corrections.

Standards: one P3 duplication finding, addressed by sharing completion accounting in CommandRecord::finish. Spec: one P2 foreign-blocker naming finding, reproduced with the reviewer's exact test and fixed. Both follow-up reviews found no additional findings.

Unaddressed findings

Standards

None.

Spec

None.

Merge Danger

Door: two-way

Additive record fields default when reading earlier records; no record migration or deletion.

Blast Radius: status

Changes record creation and status rendering for Runs, Spec runs, Pickup dispatches and Base fixes. Factory scheduling and Delivery decisions retain their existing behavior.

Built with codex · gpt-6.1-sol · high

Combine Pass stages, dispatch records and idle status with independently written child Run records. Keep same-process dispatches in dispatched and child processes in children, preserving each child's dispatch context.
Preserve child Run and Spec Ticket trees in recent and complete Command history. Retain completion times and history provenance, and cover completed child trees alongside historical filtering.

Validation: cargo check --all-targets; cargo fmt --check; cargo clippy --all-targets -- -D warnings; cargo test (1,902 passed, two ignored).
@JacobStephens2
JacobStephens2 merged commit 6f2cf77 into issue-711 Oct 18, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-769 branch October 18, 2026 18:47
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