🤖 feat: allow unlimited bash_output timeout with queued message interruption #1053
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
Allow
bash_outputto wait for any amount of time (removing the previous 15-second limit), while ensuring the chat stays responsive by detecting when users queue new messages.Changes
1. Remove timeout limit
.max(15)constraint from the schema2. Add abort signal support
getOutput()accepts optionalabortSignalparameterstatus: "interrupted"when stream is cancelled3. Add queued message detection
setMessageQueued()/hasQueuedMessage()toBackgroundProcessManagerqueueMessage()sets the flag;sendQueuedMessages()/clearQueue()clears itgetOutput()checks for queued messages in polling loop and returns earlyFlow when user sends message during
bash_outputwait:queueMessage()→setMessageQueued(workspaceId, true)bash_output'sgetOutput()polling loop detectshasQueuedMessage() = true{ status: "interrupted", output: "(waiting interrupted)" }tool-call-endfires →sendQueuedMessages()processes queued message4. UI update
ProcessStatusBadgenow supports "interrupted" status with warning colorTesting
bash_outputtests passGenerated with
mux