feat: Phase 6b/6c - Tab/Panel Switching & Real-time Progress Streaming for Background Tasks#12346
feat: Phase 6b/6c - Tab/Panel Switching & Real-time Progress Streaming for Background Tasks#12346roomote-v0[bot] wants to merge 6 commits into
Conversation
Addresses Issue #12330 Phase 6 planning discussion. Covers: - Conversation replay (6a) - Tab/panel switching (6b) - Real-time progress streaming (6c) Includes feasibility analysis, priority recommendations, and detailed design with message types, component structure, and testing strategy.
- Add requestBackgroundTaskMessages/backgroundTaskMessages message types - Add extension handler to load task messages from disk via readTaskMessages - Create BackgroundTaskReplayView component (read-only ChatRow wrapper) - Wire up bgTaskReplay tab in App.tsx with switchTab support - Add extension handler tests (3 tests) - Add component tests (7 tests)
Add a dedicated BackgroundTaskView as a full tab in the webview, with a new tab bar icon entry point. Users can navigate between BackgroundTasksList (showing all subtasks with status badges, mode, and timestamps) and BackgroundTaskReplayView (from Phase 6a) without disrupting the foreground task state. Changes: - Add backgroundTasksButtonClicked command type and registration - Add BackgroundTaskView container component with list/replay sub-views - Add BackgroundTasksList component showing subtasks from task history - Add bgTask tab type to App.tsx routing - Register command in package.json with sidebar and editor menu entries - 30 tests across 5 test files (all passing) Issue #12330 Phase 6b
|
@roomote-v0[bot] Thanks for opening PR #12346 for Phase 6b. From the description, it looks like it follows the confirmed design (full Next step proposal: Please proceed with Phase 6c: Real-time Progress Streaming next, following the minimal viable scope we confirmed earlier (tool name + status only, last-N rolling window, 500ms throttle, only for the currently viewed background task). You can open a new PR for 6c when ready. After 6c is done, we can mark 6a and 6b as ready for review together. Let me know if you see any blockers or need to adjust the scope of 6c before starting. |
Implemented Phase 6c: Real-time Progress Streaming for background tasks. All local checks (lint, type-check, 43 tests) passed. |
…tasks Add BackgroundTaskLiveView component with compact tool-name + status display, backgroundTaskProgress message type, emitBackgroundProgress in Task.ts with 500ms throttle and last-20 rolling window, scoped to currently viewed task only. Changes: - Add BackgroundTaskUpdate interface and backgroundTaskProgress message type - Add subscribeToBackgroundTask/unsubscribeFromBackgroundTask webview messages - Add viewedBackgroundTaskId tracking to ClineProvider - Add emitBackgroundProgress method to Task.ts with 500ms throttle, 5-per-batch cap - Hook progress emission into presentAssistantMessage.ts (tool start, complete, error) - Create BackgroundTaskLiveView webview component with rolling update window - Update BackgroundTaskView to route active tasks to live view, completed to replay - 10 new tests across 3 test files (all passing) Issue #12330 Phase 6c
|
@roomote please update the pr title, 6b and 6c is in same pr. |
Updated PR title to |
|
Closing as part of PR restructuring per issue #12330. This work will be combined into the new Remaining Phases (4+5+6) PR with proper stacked branching. |
This PR attempts to address Issue #12330 (Phase 6b: Tab/Panel Switching). Feedback and guidance are welcome.
Summary
Implements Phase 6b of the parallel agent execution enhancement, building on top of Phase 6a (conversation replay). This adds a dedicated BackgroundTaskView as a full tab in the webview, with navigation between a task list and the replay view.
What's included
New components:
BackgroundTaskView-- Full-tab container managing navigation between sub-views (list and replay)BackgroundTasksList-- Displays subtasks from task history with status badges (Running/Completed/Delegated), mode labels, timestamps, and cost infoTab infrastructure:
bgTasktab type inApp.tsxwith routingbackgroundTasksButtonClickedcommand registered inpackage.json(sidebar overflow menu + editor title menu)registerCommands.tsthat sends action to webview@roo-code/typesfor the new action and tab valuesNavigation flow:
tab === "bgTask"showingBackgroundTaskViewBackgroundTaskViewstarts onBackgroundTasksList(task list with status indicators)BackgroundTaskReplayView(from Phase 6a)Key design decisions:
isHidden)taskHistorybyparentTaskIdpresenceTests
30 tests across 5 test files (all passing):
BackgroundTasksList.spec.tsx(8 tests) -- empty state, filtering, click handling, status badges, truncationBackgroundTaskView.spec.tsx(5 tests) -- list/replay navigation, header visibility, close behaviorApp.spec.tsx(2 new tests) -- bgTask tab switching and return to chatWhat's deferred to Phase 6c+
Interactively review PR in Roo Code Cloud