fix(tui): propagate error messages when subagent tasks crash#292
Merged
fix(tui): propagate error messages when subagent tasks crash#292
Conversation
When a subagent (Task tool) terminates unexpectedly due to a panic or cancellation, the main agent now receives a proper error message instead of no response at all. Added check_crashed_tasks() method that: - Periodically checks for finished JoinHandles in running_tool_tasks - Detects tasks that ended without sending Completed/Failed events - Extracts panic messages or cancellation status from the JoinHandle - Sends ToolEvent::Failed with descriptive error back to main agent This fixes the issue where the todo list disappears and no message is received by the main agent when a subagent encounters an unexpected error.
Blacksmith Account SuspendedThis Blacksmith account requires additional verification. Jobs targeting Blacksmith runners will not be picked up and will remain queued until they timeout. Please contact Blacksmith Support for assistance. |
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
When a subagent (Task tool) terminates unexpectedly due to a panic or cancellation, the main agent now receives a proper error message instead of no response at all.
Problem
When a subagent is launched (e.g., 'task research'), it creates a todo list and starts working. However, if the subagent task crashes unexpectedly (panic, timeout, cancellation), the todo list disappears and no message is received by the main agent. This made it impossible to understand what went wrong.
Solution
Added
check_crashed_tasks()method that:running_tool_tasks(called on every tick)Completed/FailedeventsToolEvent::Failedwith descriptive error message back to main agentExample Error Messages
Subagent panicked: <panic payload>Subagent task was cancelledSubagent task failed: <error>Testing
cargo check -p cortex-tuipassescargo fmt -p cortex-tui -- --checkpasses