FlowChat Interaction Improvements & Subagent Timeout Control#529
Merged
limityan merged 4 commits intoGCWing:mainfrom Apr 25, 2026
Merged
FlowChat Interaction Improvements & Subagent Timeout Control#529limityan merged 4 commits intoGCWing:mainfrom
limityan merged 4 commits intoGCWing:mainfrom
Conversation
…current tasks When multiple tasks execute concurrently, each TodoWrite tool call produces an independent snapshot in toolResult.result.todos. The TodoWriteDisplay component previously only read from this snapshot, so expanding an older card showed stale status while newer tasks were still running. Fix by subscribing TodoWriteDisplay to DialogTurn.todos via a new useDialogTurnTodos hook. This data source is maintained by FlowChatManager.handleTodoWriteResult and always reflects the latest merged todo state across all concurrent TodoWrite calls. Changes: - Add useDialogTurnTodos hook (shallow-diff subscription to store) - Add turnId to ToolCardProps and FlowToolCard - Update TodoWriteDisplay to prefer turnTodos over toolResult snapshot - Pass turnId through ModelRoundItem and ExploreGroupRenderer Generated with BitFun Co-Authored-By: BitFun
…ion and terminal tool cards Split single preview max-height constants into streaming vs expanded variants: FileOperationToolCard: - FILE_OPERATION_STREAMING_MAX_HEIGHT (88px) for compact streaming preview - FILE_OPERATION_DIFF_MAX_HEIGHT (330px) for comfortable diff reading when manually expanded after completion TerminalToolCard: - TERMINAL_OUTPUT_STREAMING_MAX_HEIGHT (88px) for compact live output during execution - TERMINAL_OUTPUT_EXPANDED_MAX_HEIGHT (286px) for comfortable output reading when manually expanded after completion/cancellation Both use max-height (not fixed height) so content shorter than the limit shrinks naturally without blank space.
- Add useLiveElapsedTime hook for real-time elapsed/remaining tracking - Add useSubagentTimeoutControl hook for disable/restore/extend logic - Add ToolTimeoutIndicator shared component with [∞] toggle and extend popover - Integrate into TaskToolDisplay (with controls) and TerminalToolCard (display only) - Integrate into TaskDetailPanel - Add set_subagent_timeout Tauri command with dynamic deadline via watch channel - Add SubagentTimeoutHandle/SubagentTimeoutAction in coordinator for runtime timeout adjustment - Add i18n keys for timeout tooltips and restore option Generated with BitFun Co-Authored-By: BitFun
- FlowChatHeader center message area is now clickable to jump to current turn top - Add StickyTaskIndicator component showing nearest Task above viewport - Add useVisibleTaskInfo hook to detect visible Task via scroll + DOM - Add data-tool-name attribute to tool items for DOM querying - Fix FlowChatHeader __git-branch padding cutting descenders (y/g/p) - Add cursor: pointer to clickable areas - Add i18n keys for new UI elements Generated with BitFun Co-Authored-By: BitFun
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.
FlowChat Interaction Improvements & Subagent Timeout Control
FlowChat UI enhancements, dynamic subagent timeout controls, and concurrent task status sync fix.
Changes
feat(flow-chat): clickable turn header + sticky task indicator
StickyTaskIndicatorcomponent +useVisibleTaskInfohook for viewport-aware task navigationcursor: pointer, git-branch descender padding)feat: subagent live elapsed time with adjustable timeout
useLiveElapsedTime/useSubagentTimeoutControlhooks for real-time timeout tracking and controlToolTimeoutIndicatorcomponent with[∞]toggle and extend popoverset_subagent_timeoutTauri command + coordinatorSubagentTimeoutHandlefor dynamic deadline adjustmentTaskToolDisplay,TerminalToolCard, andTaskDetailPanelfeat(flow-chat): increase expanded preview max height
max-heightso shorter content shrinks naturallyDEEP_REVIEW_USAGE_GUIDE.mdandPHASE2_DYNAMIC_CONCURRENCY_PLAN.mdfix(web-ui): sync TodoWrite card status with DialogTurn.todos
useDialogTurnTodoshook subscribing to merged todo state fromFlowChatManagerturnIdthrough component tree (FlowToolCard,ModelRoundItem,ExploreGroupRenderer)Impact
src/web-ui/src/flow_chat/— UI components, hooks, tool cardssrc/apps/desktop/src/api/— Tauri commandssrc/crates/core/src/agentic/coordination/— Timeout control logicVerification
pnpm run lint:web && pnpm run type-check:web && pnpm --dir src/web-ui run test:runcargo check --workspace && cargo test --workspace