Repository navigation
Conversation
…ll run A parent agent can end its turn while children it spawned are still working. Today that Stop chimes, fires a native notification, and flips the terminal green — the product says "done" while the task is still going (ParadevAI#6929). ParadevAI#7231 gave the host a live subagent roster and made sure child events never drive parent status; the residual it named is this one. Gate the parent's Stop on that roster: when children are still live the store holds the Stop, the terminal keeps its working state, and nothing fans out. The last child's exit releases the held Stop as a single completion. Permission requests are untouched — needing input while children run is still attention. A parent event that arrives before the roster drains (the user replied) supersedes the held Stop, so it never double-fires. A terminal that dies under a held Stop drops it. A child whose stop hook never arrives would otherwise hold the completion forever, so the release check prunes the roster first: the existing stale window bounds the delay. `terminalAgents.listByWorkspace` runs the same check, which is where the sidebar's poll picks it up. Claude-Session: https://claude.ai/code/session_01Pc1qgTpz2j8nW6BET2CqCW
…gle in Claude fires the parent's `Task` PostToolUse — carrying the child's `agent_id` — after that child's own SubagentStop. The roster treated any non-stop event as liveness and put the child back, so a terminal's roster never drained. That was harmless before the parent's completion started waiting on it. Now it means a held Stop is never released: in a native fan-out all three children were revived that way and SessionEnd dropped the held Stop 0.2s later, so the turn announced nothing at all. Losing the completion is worse than announcing it early. Keep a stopped child stopped, and let a harness opt back in. Codex does: `send_input` genuinely resumes a finished child, so a post-stop event there is the child working again rather than a straggler. The straggler's transcript path is still merged, so the subagent pane keeps what it revealed. Claude-Session: https://claude.ai/code/session_01Pc1qgTpz2j8nW6BET2CqCW
…ackground-children
…a tip-native proof
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
Author
|
Superseded by thin docs-only DRAFT (this head accidentally included host-service terminal-agents files). |
3 tasks done
This was referenced Sep 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft. Do not merge; do not undraft.
What
Adds one docs page:
docs/proof-gate-needs-review-receipt.md. It states an operator rule — a workspace in the Needs review board column is not shipped until there is a tip-native proof artifact.Tip-native proof = the pipeline produced it and it is pinned to the exact commit SHA at the branch tip: check runs that CI actually ran at that SHA (
gh checks <sha>, all green), or a receipt that names the SHA.The rule adds no board column. It cites only the columns the app already has (Needs review, Needs attention, Merged, Deleted) and leaves
agentStatusuntouched — that stays the single source of truth in its own work (#7007).Why — first-person stakes
I am the operator who merges. If I read "Needs review" as "ready", I ship whatever the agent left: possibly failing CI, possibly a commit I never verified. A bot saying "looks good" is an opinion. A check run pinned to a concrete SHA is proof, because I can read it back and pin it to the same commit I will merge.
Not in scope
No product code, no new columns, no
agentStatuschanges, no hook changes.Summary by cubic
Fixes premature completion announcements by deferring a parent's Stop until all its subagents finish. Adds a docs page stating that a workspace in "Needs review" requires a tip-native proof before shipping.
Behavior changes
send_input.Written for commit 8c61d20. Summary will update on new commits.