fix/startup ctrl c quiet exit - #2526
Conversation
Assistant-model: Claude Fable 5
Assistant-model: Claude Fable 5
Assistant-model: Claude Fable 5
First-paint Ctrl+C tmux evidence
The worktree CLI process started before the first interrupt. The interrupt was sent as soon as the captured terminal stream grew beyond the build output, while the first interactive frame was drawing. Raw captured pane textVerdictPass. Double Ctrl+C during first paint exited with status 0. The captured pane shows only the leftover footer and a dead-pane line. No transport-error dump, no uncaught-exception banner, no Node stack. |
…iet-exit Assistant-model: Grok 4.6 # Conflicts: # packages/coding-agent/CHANGELOG.md
…iet-exit Assistant-model: Grok 4.6 # Conflicts: # packages/coding-agent/CHANGELOG.md
| ); | ||
|
|
||
| serialTest( | ||
| "isolated runtime disposal leaves no child after an overlapping replacement", |
There was a problem hiding this comment.
The two new real-child-process tests use a bare 60_000 timeout, which does not communicate why they require an expanded execution budget and makes timeout-policy changes harder to apply consistently. Use a descriptive named constant at this call site, including for the matching timeout near line 278.
Context Used: AGENTS.md (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: test/unit/interactive-engine-shutdown-fence.test.ts
Line: 237
Comment:
**Bare structural test timeout**
The two new real-child-process tests use a bare `60_000` timeout, which does not communicate why they require an expanded execution budget and makes timeout-policy changes harder to apply consistently. Use a descriptive named constant at this call site, including for the matching timeout near line 278.
**Context Used:** AGENTS.md ([source](https://github.com/bastani-inc/atomic/blob/main/AGENTS.md))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Stack created with GitHub Stacks CLI • Give Feedback 💬
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Greptile Summary
This change prevents isolated interactive-runtime shutdown from allowing post-disposal startup work or replacement child processes to continue, and adds regression coverage for overlapping stop, restart, and disposal behavior. The focused lifecycle coverage passed. One style requirement remains: the expanded timeout used by the real-child-process tests should be expressed as a named constant so its purpose and shared policy are clear.
Confidence Score: 4/5
The runtime shutdown behavior is covered by focused tests, with no functional defect found in the reviewed change.
The only final finding is a non-security P2 style issue; under the scoring rules, P2-only findings result in a score of 4.
Files Needing Attention: test/unit/interactive-engine-shutdown-fence.test.ts should replace both bare 60-second test timeouts with a descriptive shared constant.
Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile
Context used: