Repository navigation
fix(box): helpers' permissions, self-started turns and crew in chat sessions report what the agent does - #148
Merged
sean-brydon merged 3 commits intoOct 18, 2026
Conversation
…ude in the folder doesn't end a session Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n's crew Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@tinhthanh is attempting to deploy a commit to the seanbrydonio's projects Team on Vercel. A member of the Team first needs to authorize it. |
sean-brydon
approved these changes
Oct 18, 2026
Collaborator
|
Thanks! |
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.
Summary
Four bugs in how a chat (structured) Claude session reports what its agent and helpers are doing. They show up when Claude Code starts helpers (subagents) in the background. Seen on a real box with Claude Code 2.1.299; each one is fixed with a test that fails without the fix.
claudedriver.go)can_use_toolwas announced as the one waiting, so the app showed the newest ask whilepickanswers the oldest. Saying Yes to a helper's command could allow the agent's.Startedalthough other asks still waited, so they never showed.resultclearedpending, dropping asks from helpers that were still working in the background.claudeRequestkeepsagent_id.control_cancel_request,afterAskshows the next waiting ask. If none is left, it says working while the turn runs, or finished.resultkeeps the helpers' asks and stays waiting.turns.go)claude -pa tool runs, names no session, soresolvematched its hooks by folder.agent.exitedmarked the session exited while its program was alive.enrichthen reads exited-but-alive asrunningfor good, and Stop does nothing.AgentSessionID) ignores events from a different conversation. Unnamed events from its own conversation still reach it.claudedriver.go)system init, then the main agent'smessage_start, with no replayed prompt. The session read as done while the agent worked, with no spinner and no Stop.message_startwhile not busy starts a turn (Started,signal: background). Itsresultends it as usual.transcript/host.go)<task-notification>. In the agent-host log, that notification is a stream line of its own,{"type":"system","subtype":"task_notification","tool_use_id":…,"status":…}, andunwrapHostdropped it. The helper stayed "working", its time running on.unwrapHostreads it as the transcript's enqueued<task-notification>, timed by its log entry, sohelperDonemarks the helper back.Tests
TestAHelpersPermissionWaitsUntilItIsAnswered: the stand-in Claude asks as the agent and as a helper.TestAnotherAgentInTheSameFolderIsNotTheSessions: another conversation's ready and exited events in the folder leave the session as it was. Its own unnamed events still reach it.TestATurnClaudeStartsByItselfShowsAsWorking: the states go running → finished → running → finished.TestAHelperIsBackWhenTheStreamSaysSo: the helper is running before the stream's notification and finished after it, withuntilset.go vet ./...passes.go test -race ./...passes exceptTestAttachPassesShiftEnter, the macOSodspacing issue in TestAttachPassesShiftEnter fails on macOS: BSD od spaces bytes two apart #123, which is unrelated. The docs build passes. There are changelog bullets under Unreleased.🤖 Generated with Claude Code