| 23-brainstormer-flow |
02 |
ui |
| components |
| hooks |
| brainstormer |
| chat |
| spec-card |
| handoff |
| task-badge |
| status-badge |
|
| requires |
provides |
affects |
|
|
| ChatSpecCard |
| ChatHandoffIndicator |
| ChatTaskCreatedBadge |
| ChatStatusUpdateBadge |
| useBrainstormerDefault |
|
| ui/src/components/ChatMessage.tsx |
|
|
| added |
patterns |
|
|
| React local state for edit/draft/submitting mode in ChatSpecCard |
| React Query cache deduplication via shared queryKey in useBrainstormerDefault |
| Tailwind motion-safe: prefix for reduced-motion accessibility |
| CSS variable tokens (bg-card, border-border, text-muted-foreground) for theme compatibility |
|
|
| created |
modified |
| ui/src/components/ChatSpecCard.tsx |
| ui/src/components/ChatHandoffIndicator.tsx |
| ui/src/components/ChatTaskCreatedBadge.tsx |
| ui/src/components/ChatStatusUpdateBadge.tsx |
| ui/src/hooks/useBrainstormerDefault.ts |
|
| ui/src/components/ChatMessageList.tsx |
|
|
| Used @/lib/router Link (not react-router-dom) — consistent with project router abstraction pattern |
| useBrainstormerDefault uses Agent type from @paperclipai/shared for type-safe sort comparator |
| ChatSpecCardInner extracted as inner component to avoid conditional hook calls after JSON.parse error path |
|
| duration |
completed_date |
tasks |
files_created |
files_modified |
| 5 minutes |
2026-04-01 |
2 |
5 |
1 |
|