Files
kandev/docs/plans/sidebar-task-row-presentation/task-02-render-configured-task-rows.md
T
2026-08-24 23:33:49 +00:00

4.0 KiB

id, title, status, wave, depends_on, plan, spec
id title status wave depends_on plan spec
02-render-configured-task-rows Render configured task rows complete 2
01-persist-task-row-presentation
plan.md ../../specs/ui/requirements/sidebar-task-row-presentation.md

Task 02: Render Configured Task Rows

Acceptance

  • Sidebar rows apply the effective view's detail visibility, order, details toggle, and right-side choice without changing Kanban cards or the rich task list.
  • Relative time and repository suppression follow the spec, and missing values reserve no space.
  • A moved provider status remains the single interactive indicator and coexists with the task menu.

Verification

cd apps && pnpm install --frozen-lockfile
cd apps && pnpm --filter @kandev/web test -- --run components/task/task-item.test.tsx components/task/task-item-repository.test.tsx components/task/task-item.mr-guard.test.tsx components/task/task-row-presentation.test.ts
cd apps/web && pnpm run typecheck
cd apps && pnpm --filter @kandev/web lint -- components/task/task-item.tsx components/task/task-item-stats-row.tsx components/task/task-item-leading-badges.tsx components/task/task-contribution-icons.tsx components/task/task-row-presentation.ts

Files Likely Touched

  • apps/web/components/task/task-item.tsx
  • apps/web/components/task/task-item-stats-row.tsx
  • apps/web/components/task/task-item-leading-badges.tsx
  • apps/web/components/task/task-contribution-icons.tsx
  • apps/web/components/task/task-row-presentation.ts
  • apps/web/components/task/task-switcher-row.tsx
  • apps/web/components/task/task-switcher.tsx
  • Focused tests beside these files

Dependencies

Task 01.

Parallelism

parallel-safe with Task 03 after Task 01. This task owns task-row rendering and contribution-icon placement. Task 03 owns the settings surface.

Inputs

  • The display rules in the sidebar task-row presentation spec.
  • The normalized effective presentation from Task 01.
  • Existing time selection, repository grouping suppression, contribution indicators, TaskRowMetadata, queue indicators, and task-menu behavior.

TDD Sequence

  1. Add pure resolver tests for ordered visible details, relative-time deduplication, repository grouping, and missing trailing data. Record the expected failures.
  2. Add render tests for details enabled and disabled, queue and plugin metadata, each trailing choice, and one moved contribution indicator.
  3. Add a keyboard test that opens the provider summary and the task menu as separate targets.
  4. Implement presentation plumbing and the pure resolver.
  5. Split configurable details from appended queue and debug indicators and gate the full metadata block with details_enabled.
  6. Generalize the trailing slot and move, rather than duplicate, the change-request indicator.
  7. Run focused tests, typecheck, and changed-file lint. Record exact results.

Risks

  • Moving the icon can mount two tooltip state owners or remove the focused node. Render one location from one resolved placement.
  • Hiding metadata can leave vertical gaps if title-container spacing remains unconditional.
  • The row menu can cover an interactive provider indicator if it reuses the passive-value overlay.
  • Subtask toggles also occupy the trailing area and must remain reachable.

Output Contract

Report RED failures, rendering and focus changes, files changed, exact unit, typecheck, and lint results, mobile-impact notes, blockers, risks, and synchronized task and plan status.

Results

RED rendering tests covered ordered details, grouping suppression, details hiding, trailing choices, provider-status placement, missing values, and menu coexistence. The effective presentation is now threaded through sidebar rows, with plugin and queue/debug metadata gated by the details master toggle and one provider indicator rendered in its selected location. Task-row coverage passed with 78 tests across 5 files; the final focused cleanup set passed with 60 tests across 5 files; typecheck and changed-file ESLint passed.