docs(18-03): create summary and update state for DecisionList/TaskDetailModal plan

This commit is contained in:
Lukas May
2026-02-04 21:34:41 +01:00
parent 2b6c58aae7
commit 630c36af5a
2 changed files with 51 additions and 5 deletions

View File

@@ -0,0 +1,44 @@
# Plan 18-03 Summary
## Result: COMPLETE
**Tasks:** 2/2 completed
**Duration:** ~3 min
## What was built
### DecisionList component
- Collapsible list of key decisions in a Card with "Key Decisions" header
- Each decision individually expandable with ChevronDown/ChevronRight indicators
- Internal state tracks expanded indices via `Set<number>`
- Show more/less button when decisions exceed `maxVisible` (default 3)
- Empty state placeholder: "No decisions recorded"
- File: `packages/web/src/components/DecisionList.tsx`
### TaskDetailModal component
- Controlled Dialog (open when `task !== null`) following CreateInitiativeDialog pattern
- Metadata grid: Status (StatusBadge), Priority, Phase, Type, Agent
- Description section with fallback to "No description"
- Dependencies section listing dependency names with status badges
- Blocks section listing dependent names with status badges
- Queue Task button: enabled only when status is 'pending' and all dependencies completed
- Stop Task button: enabled only when status is 'in_progress'
- SerializedTask interface for tRPC Date-to-string wire format
- File: `packages/web/src/components/TaskDetailModal.tsx`
## Decisions
- 18-03: SerializedTask type mirrors SerializedInitiative pattern (Date fields become string over JSON)
- 18-03: Both components are purely presentational with callback props (no tRPC calls inside)
## Commits
- `3baba49`: feat(18-03): create DecisionList component for initiative detail
- `5b17b7a`: feat(18-03): create TaskDetailModal component for initiative detail
## Verification
- [x] `npx tsc --noEmit -p packages/web/tsconfig.app.json` passes
- [x] `npx vite build` in packages/web succeeds
- [x] Both components export correctly
- [x] Dialog follows controlled pattern matching CreateInitiativeDialog