forked from anomalyco/opencode
-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Context
Port the Desktop Tasks Sidebar feature from upstream PR anomalyco/opencode#7223 by @dbpolito.
This feature adds a Tasks sidebar tab to the desktop app, addressing a commonly requested feature - the ability to view and track task progress (todos) directly in the sidebar panel.
Problem
Currently, the TUI has visibility into tasks/todos, but the desktop web app lacks this feature. Users have no way to see pending or in-progress tasks without switching context.
Solution from Upstream PR
The PR introduces:
- Tasks tab in sidebar - Shows when there are incomplete tasks
- Task indicator in header - Displays task progress (e.g., "2/5 Tasks") with status indicator
- Renamed toggle - "Toggle Review" → "Toggle Sidebar" (more accurate)
- Smart sidebar behavior:
- Shows toggle if files changed OR tasks pending
- Auto-opens to Tasks tab when no file changes exist
- Clicking task indicator in header opens sidebar to Tasks tab
Files to Merge
| File | Status | Changes |
|---|---|---|
packages/app/src/components/session-task-indicator.tsx |
New | Task progress indicator for header |
packages/app/src/components/session-task-panel.tsx |
New | Full task list panel component |
packages/app/src/components/session/session-header.tsx |
Modified | Add indicator, rename toggle, add showSidebarToggle logic |
packages/app/src/context/layout.tsx |
Modified | Minor formatting (whitespace only) |
packages/app/src/pages/session.tsx |
Modified | Add tasks tab, hasIncompleteTasks logic, tab filtering |
Implementation Notes
Dependencies Verified ✓
checklisticon - exists atpackages/ui/src/components/icon.tsx:L~300circle-check,dot-grid,close,checkicons - all existTodotype from SDK - available
Potential Conflicts
Our fork has modifications to session.tsx (AskQuestion wizard integration) and may have minor differences in session-header.tsx. Manual conflict resolution may be needed.
Reference Code Locations
- Current toggle button:
packages/app/src/components/session/session-header.tsx:171 - Current tabs logic:
packages/app/src/pages/session.tsx:741-769
Acceptance Criteria
- New
session-task-indicator.tsxcomponent created - New
session-task-panel.tsxcomponent created - Task indicator shows in header when incomplete tasks exist
- Tasks tab appears in sidebar when tasks are pending
- "Toggle review" renamed to "Toggle sidebar"
- Sidebar toggle visible when tasks OR file changes exist
- Clicking task indicator opens sidebar to Tasks tab
- Task status styling correct (pending/in_progress/completed/cancelled)
- TypeScript passes (
bun turbo check) - Tests pass (
bun turbo test)
Tasks
- Cherry-pick or manually apply changes from upstream PR
- Resolve any merge conflicts with fork-specific code
- Verify all icons render correctly
- Test task panel with various task states
- Ensure mobile responsiveness is maintained
- Run type checking and tests
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request