2.2 KiB
2.2 KiB
id, title, status, wave, depends_on, plan, spec, system_design
| id | title | status | wave | depends_on | plan | spec | system_design | |
|---|---|---|---|---|---|---|---|---|
| 03-stabilize-sidebar-rows | Stabilize sidebar row inputs | done | 3 |
|
plan.md | ../../specs/ui/requirements/sidebar-task-row-presentation.md | ../../specs/ui/system-design/task-surface-render-isolation.md |
Task 03: Stabilize sidebar row inputs
Acceptance
onBulkMovekeeps its identity during unrelated sidebar owner renders.TaskSwitcherskips an unrelated owner render when its semantic props remain equal.- A task-row update rerenders the affected row and preserves current selection behavior.
- Fine-pointer trailing content and the mobile primary row action remain unchanged.
This task preserves AC-UI-SIDEBAR-TASK-ROW-PRESENTATION-001.8 and .12. It also preserves
AC-UI-MOBILE-TASK-NAVIGATION-001.1, .2, .3, and .7.
TDD sequence
- Add a failing identity test for
onBulkMove. - Add a failing render-count test for an unrelated sidebar owner update.
- Derive the callback from stable action functions and current selection data.
- Add or refine memoized boundaries only where the failing test requires them.
- Run the focused selection and task-switcher tests.
Verification
cd apps
rtk pnpm --filter @kandev/web test components/task/task-session-sidebar-selection.test.ts components/task/task-switcher.test.tsx components/task/task-switcher-context-menu.test.tsx
rtk pnpm --filter @kandev/web typecheck
Files likely touched
apps/web/components/task/task-session-sidebar-selection.tsxapps/web/components/task/task-switcher.tsxapps/web/components/task/task-switcher-row.tsxapps/web/components/task/task-session-sidebar-selection.test.tsapps/web/components/task/task-switcher.test.tsx
Dependencies
- Task 02 completes the higher-impact file-tree path before this sidebar refinement.
Inputs
REQ-UI-SIDEBAR-TASK-ROW-PRESENTATION-001REQ-UI-MOBILE-TASK-NAVIGATION-001- Sidebar Task Row Presentation system design
- Trace evidence for
onBulkMoveand repeated task-row renders
Output contract
Report the callback dependency change, memoized boundary, render-count result, changed files, focused test results, and remaining risks.