docs(23-02): complete UI components plan summary, update state and roadmap
- 5 new files: ChatSpecCard, ChatHandoffIndicator, ChatTaskCreatedBadge, ChatStatusUpdateBadge, useBrainstormerDefault - Fix ChatMessageList synthetic streaming entry missing messageType field - Progress: 15/17 plans complete (88%)
This commit is contained in:
parent
df83f6e43c
commit
9796bee2b3
3 changed files with 86 additions and 9 deletions
|
|
@ -76,12 +76,12 @@ Plans:
|
||||||
3. When the user clicks "Send to PM," a handoff indicator appears in the chat showing "Brainstormer → PM" with the spec content
|
3. When the user clicks "Send to PM," a handoff indicator appears in the chat showing "Brainstormer → PM" with the spec content
|
||||||
4. The PM agent creates one or more Nexus issues from the spec; the user can see task IDs referenced in the PM's reply
|
4. The PM agent creates one or more Nexus issues from the spec; the user can see task IDs referenced in the PM's reply
|
||||||
5. When an Engineer or Generalist completes a task, a status update message appears in the relevant chat conversation
|
5. When an Engineer or Generalist completes a task, a status update message appears in the relevant chat conversation
|
||||||
**Plans:** 1/4 plans executed
|
**Plans:** 2/4 plans executed
|
||||||
|
|
||||||
Plans:
|
Plans:
|
||||||
- [x] 23-00-PLAN.md — DB migration (message_type column), shared types/validators, Wave 0 test stubs
|
- [x] 23-00-PLAN.md — DB migration (message_type column), shared types/validators, Wave 0 test stubs
|
||||||
- [ ] 23-01-PLAN.md — Server: addSystemMessage helper, handoff route, status-update route
|
- [ ] 23-01-PLAN.md — Server: addSystemMessage helper, handoff route, status-update route
|
||||||
- [ ] 23-02-PLAN.md — UI: ChatSpecCard, ChatHandoffIndicator, ChatTaskCreatedBadge, ChatStatusUpdateBadge, useBrainstormerDefault
|
- [x] 23-02-PLAN.md — UI: ChatSpecCard, ChatHandoffIndicator, ChatTaskCreatedBadge, ChatStatusUpdateBadge, useBrainstormerDefault
|
||||||
- [ ] 23-03-PLAN.md — Wiring: ChatMessage dispatch, ChatMessageList propagation, ChatPanel brainstormer default, chatApi handoff
|
- [ ] 23-03-PLAN.md — Wiring: ChatMessage dispatch, ChatMessageList propagation, ChatPanel brainstormer default, chatApi handoff
|
||||||
**UI hint**: yes
|
**UI hint**: yes
|
||||||
|
|
||||||
|
|
@ -206,7 +206,7 @@ All 65 v1 requirements are mapped to exactly one phase. No orphans.
|
||||||
|-------|-----------|----------------|--------|-----------|
|
|-------|-----------|----------------|--------|-----------|
|
||||||
| 21. Chat Foundation | v1.3 | 7/7 | Complete | 2026-04-01 |
|
| 21. Chat Foundation | v1.3 | 7/7 | Complete | 2026-04-01 |
|
||||||
| 22. Agent Streaming | v1.3 | 6/6 | Complete | 2026-04-01 |
|
| 22. Agent Streaming | v1.3 | 6/6 | Complete | 2026-04-01 |
|
||||||
| 23. Brainstormer Flow | v1.3 | 1/4 | In Progress| |
|
| 23. Brainstormer Flow | v1.3 | 2/4 | In Progress| |
|
||||||
| 24. Search, History & Branching | v1.3 | 0/? | Not started | - |
|
| 24. Search, History & Branching | v1.3 | 0/? | Not started | - |
|
||||||
| 25. File System | v1.3 | 0/? | Not started | - |
|
| 25. File System | v1.3 | 0/? | Not started | - |
|
||||||
| 26. PWA & Performance | v1.3 | 0/? | Not started | - |
|
| 26. PWA & Performance | v1.3 | 0/? | Not started | - |
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@ gsd_state_version: 1.0
|
||||||
milestone: v1.3
|
milestone: v1.3
|
||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
status: executing
|
status: executing
|
||||||
stopped_at: Completed 23-brainstormer-flow-23-00-PLAN.md
|
stopped_at: Completed 23-brainstormer-flow-23-02-PLAN.md
|
||||||
last_updated: "2026-04-01T21:43:19.033Z"
|
last_updated: "2026-04-01T21:44:52.218Z"
|
||||||
last_activity: 2026-04-01
|
last_activity: 2026-04-01
|
||||||
progress:
|
progress:
|
||||||
total_phases: 6
|
total_phases: 6
|
||||||
completed_phases: 2
|
completed_phases: 2
|
||||||
total_plans: 17
|
total_plans: 17
|
||||||
completed_plans: 14
|
completed_plans: 15
|
||||||
percent: 100
|
percent: 100
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ See: .planning/PROJECT.md (updated 2026-03-30)
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 23 (brainstormer-flow) — EXECUTING
|
Phase: 23 (brainstormer-flow) — EXECUTING
|
||||||
Plan: 2 of 4
|
Plan: 3 of 4
|
||||||
Status: Ready to execute
|
Status: Ready to execute
|
||||||
Last activity: 2026-04-01
|
Last activity: 2026-04-01
|
||||||
|
|
||||||
|
|
@ -71,6 +71,7 @@ Progress: [██████████] 100%
|
||||||
| Phase 22-agent-streaming P04 | 4min | 2 tasks | 5 files |
|
| Phase 22-agent-streaming P04 | 4min | 2 tasks | 5 files |
|
||||||
| Phase 22-agent-streaming P05 | 20min | 3 tasks | 6 files |
|
| Phase 22-agent-streaming P05 | 20min | 3 tasks | 6 files |
|
||||||
| Phase 23-brainstormer-flow P00 | 3min | 2 tasks | 11 files |
|
| Phase 23-brainstormer-flow P00 | 3min | 2 tasks | 11 files |
|
||||||
|
| Phase 23-brainstormer-flow P02 | 5min | 2 tasks | 6 files |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
|
|
@ -110,6 +111,8 @@ Recent decisions affecting current work:
|
||||||
- [Phase 22-agent-streaming]: [Phase 22-05]: virtualizer.measure() on streamingContent change handles dynamic height re-measurement for growing streaming message (Pitfall 3)
|
- [Phase 22-agent-streaming]: [Phase 22-05]: virtualizer.measure() on streamingContent change handles dynamic height re-measurement for growing streaming message (Pitfall 3)
|
||||||
- [Phase 22-agent-streaming]: [Phase 22-05]: handleRetry truncates from user message (not assistant), removing assistant + all subsequent messages before re-streaming
|
- [Phase 22-agent-streaming]: [Phase 22-05]: handleRetry truncates from user message (not assistant), removing assistant + all subsequent messages before re-streaming
|
||||||
- [Phase 23-brainstormer-flow]: Added journal entries for idx 47 (nebulous_klaw) and 48 (add_chat_messages_updated_at) retroactively to keep journal consistent with files on disk
|
- [Phase 23-brainstormer-flow]: Added journal entries for idx 47 (nebulous_klaw) and 48 (add_chat_messages_updated_at) retroactively to keep journal consistent with files on disk
|
||||||
|
- [Phase 23-brainstormer-flow]: Used @/lib/router Link abstraction (not react-router-dom) for ChatTaskCreatedBadge and ChatStatusUpdateBadge — consistent with all other link components in the codebase
|
||||||
|
- [Phase 23-brainstormer-flow]: ChatSpecCardInner extracted as inner component to avoid conditional hook calls after JSON.parse error path in ChatSpecCard
|
||||||
|
|
||||||
### Pending Todos
|
### Pending Todos
|
||||||
|
|
||||||
|
|
@ -122,6 +125,6 @@ None yet.
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-04-01T21:43:19.029Z
|
Last session: 2026-04-01T21:44:52.215Z
|
||||||
Stopped at: Completed 23-brainstormer-flow-23-00-PLAN.md
|
Stopped at: Completed 23-brainstormer-flow-23-02-PLAN.md
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|
|
||||||
74
.planning/phases/23-brainstormer-flow/23-02-SUMMARY.md
Normal file
74
.planning/phases/23-brainstormer-flow/23-02-SUMMARY.md
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
phase: 23-brainstormer-flow
|
||||||
|
plan: "02"
|
||||||
|
subsystem: ui
|
||||||
|
tags: [components, hooks, brainstormer, chat, spec-card, handoff, task-badge, status-badge]
|
||||||
|
dependency_graph:
|
||||||
|
requires: ["23-00"]
|
||||||
|
provides: ["ChatSpecCard", "ChatHandoffIndicator", "ChatTaskCreatedBadge", "ChatStatusUpdateBadge", "useBrainstormerDefault"]
|
||||||
|
affects: ["ui/src/components/ChatMessage.tsx"]
|
||||||
|
tech_stack:
|
||||||
|
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"
|
||||||
|
key_files:
|
||||||
|
created:
|
||||||
|
- 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
|
||||||
|
modified:
|
||||||
|
- ui/src/components/ChatMessageList.tsx
|
||||||
|
decisions:
|
||||||
|
- "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"
|
||||||
|
metrics:
|
||||||
|
duration: "5 minutes"
|
||||||
|
completed_date: "2026-04-01"
|
||||||
|
tasks: 2
|
||||||
|
files_created: 5
|
||||||
|
files_modified: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 23 Plan 02: UI Components for Brainstormer Flow Summary
|
||||||
|
|
||||||
|
**One-liner:** Five new UI components — spec card with edit mode, handoff separator, task badge, status badge, and general-agent selector hook — using CSS variables and motion-safe animations.
|
||||||
|
|
||||||
|
## Tasks Completed
|
||||||
|
|
||||||
|
| Task | Name | Commit | Files |
|
||||||
|
|------|------|--------|-------|
|
||||||
|
| 1 | ChatSpecCard and ChatHandoffIndicator components | 1489e499 | ChatSpecCard.tsx, ChatHandoffIndicator.tsx |
|
||||||
|
| 2 | ChatTaskCreatedBadge, ChatStatusUpdateBadge, useBrainstormerDefault | 651864ba | ChatTaskCreatedBadge.tsx, ChatStatusUpdateBadge.tsx, useBrainstormerDefault.ts, ChatMessageList.tsx (fix) |
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- `pnpm exec tsc --noEmit -p ui/tsconfig.json` — PASS (clean, no errors)
|
||||||
|
- Existing test suite — pre-existing failures in server tests (skill-registry-routes, app-hmr-port, plugin-worker-manager, company-import-export-e2e) are unrelated to UI changes introduced here
|
||||||
|
|
||||||
|
## Deviations from Plan
|
||||||
|
|
||||||
|
### Auto-fixed Issues
|
||||||
|
|
||||||
|
**1. [Rule 3 - Blocking] Fixed missing messageType in ChatMessageList synthetic streaming entry**
|
||||||
|
- **Found during:** Task 2 TypeScript check
|
||||||
|
- **Issue:** `ChatMessage` shared type now requires `messageType: string | null` (added in Plan 23-00 DB migration), but the synthetic streaming entry object in `ChatMessageList.tsx` was missing this field, causing TS2322 type error
|
||||||
|
- **Fix:** Added `messageType: null` to the synthetic streaming entry object
|
||||||
|
- **Files modified:** `ui/src/components/ChatMessageList.tsx`
|
||||||
|
- **Commit:** 651864ba
|
||||||
|
|
||||||
|
**2. [Rule 2 - Pattern] Used project router abstraction instead of react-router-dom**
|
||||||
|
- **Found during:** Task 2 — plan said `import { Link } from "react-router-dom"` but project uses `@/lib/router` wrapper
|
||||||
|
- **Fix:** Used `import { Link } from "@/lib/router"` consistent with all other components in the codebase
|
||||||
|
- **Files modified:** `ui/src/components/ChatTaskCreatedBadge.tsx`, `ui/src/components/ChatStatusUpdateBadge.tsx`
|
||||||
|
|
||||||
|
## Known Stubs
|
||||||
|
|
||||||
|
None — all components have complete implementations. No data stubbed or hardcoded placeholder content that blocks plan goals.
|
||||||
|
|
||||||
|
## Self-Check: PASSED
|
||||||
Loading…
Add table
Reference in a new issue