Skip to content

fix(wait): surface runner restart timeout evidence - #2113

Merged
thymikee merged 1 commit into
callstack:mainfrom
kkkhs:agent/wait-restart-diagnostic
Aug 28, 2026
Merged

fix(wait): surface runner restart timeout evidence#2113
thymikee merged 1 commit into
callstack:mainfrom
kkkhs:agent/wait-restart-diagnostic

Conversation

@kkkhs

@kkkhs kkkhs commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #2103. Keep the caller-supplied wait deadline hard, but preserve an iOS runner restart cause when the capture is cancelled after the restart consumes the wait budget. The wait timeout now reports wait_runner_restart_exhausted with restart/session/log evidence instead of wait_capture_stalled.

Validation

Added a daemon wait regression for the typed restart-exhaustion error and an Apple runner recovery wiring regression for marking failed restart paths. PR-head CI is green, including iOS runner smoke.

@kkkhs
kkkhs force-pushed the agent/wait-restart-diagnostic branch from bfbd74a to 50de77b Compare August 28, 2026 02:47
@kkkhs
kkkhs marked this pull request as ready for review August 28, 2026 02:59
Copilot AI lite review requested due to automatic review settings August 28, 2026 02:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@thymikee

Copy link
Copy Markdown
Member

Code review is clean at 50de77b. The typed reason is preserved at the runner ownership boundary, the two regression tests fail if their respective implementation seam is reverted, and exact-head CI is green (the two skipped matrix/size entries are not failures).

This is not merge-ready yet under docs/agents/pull-requests.md: attach an exact-head iOS Simulator run that deliberately invalidates/restarts the runner during wait and observes wait_runner_restart_exhausted with diagnosticId/logPath. The fake-runner and daemon tests prove the two sides independently, while the iOS smoke job does not exercise the changed failure path.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Aug 28, 2026
@thymikee
thymikee merged commit 2e87347 into callstack:main Aug 28, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

wait: a runner restart inside the wait is reported as a capture stall, and outlives the whole budget

3 participants