nexus/.planning/phases/22-agent-streaming/22-04-PLAN.md
Mikkel Georgsen 1b64970e90 [nexus] docs(22-agent-streaming): create phase plan
4 plans across 3 waves for SSE streaming, agent selector, edit/retry,
slash commands, @mentions, and virtualized message list.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:34:00 +02:00

128 lines
4.7 KiB
Markdown

---
phase: 22-agent-streaming
plan: 04
type: execute
wave: 3
depends_on: [22-03]
files_modified: []
autonomous: false
requirements: [CHAT-01, CHAT-08, CHAT-10, CHAT-11, CHAT-12, INPUT-05, INPUT-06, AGENT-04, THEME-03, PERF-02, PERF-03]
must_haves:
truths:
- "Full streaming chat flow works end-to-end"
- "All three themes render agent colors correctly"
- "All six success criteria from ROADMAP are met"
artifacts: []
key_links: []
---
<objective>
Full test suite verification and visual/functional checkpoint for the complete Phase 22 agent streaming feature.
Purpose: Ensures all automated tests pass and gives the user a chance to verify the streaming experience, agent selector, theme colors, and interaction flows visually.
Output: Verified, working Phase 22.
</objective>
<execution_context>
@$HOME/.claude/get-shit-done/workflows/execute-plan.md
@$HOME/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/phases/22-agent-streaming/22-01-SUMMARY.md
@.planning/phases/22-agent-streaming/22-02-SUMMARY.md
@.planning/phases/22-agent-streaming/22-03-SUMMARY.md
</context>
<tasks>
<task type="auto">
<name>Task 1: Full test suite verification and build check</name>
<files></files>
<read_first>
server/src/__tests__/chat-stream-routes.test.ts,
server/src/__tests__/chat-routes.test.ts,
ui/src/lib/parseMessageIntent.test.ts,
ui/src/components/ChatAgentBadge.test.tsx
</read_first>
<action>
Run the full test suite and verify all tests pass:
```bash
pnpm test run
```
If any tests fail:
1. Read the failing test file and the source file it tests
2. Fix the issue (prefer fixing source code over weakening tests)
3. Re-run until all tests pass
Then verify the build:
```bash
pnpm --filter @paperclipai/ui build
pnpm --filter @paperclipai/server build
```
Report the total test count and pass rate.
</action>
<verify>
<automated>pnpm test run && pnpm --filter @paperclipai/ui build && pnpm --filter @paperclipai/server build</automated>
</verify>
<acceptance_criteria>
- pnpm test run exits 0
- pnpm --filter @paperclipai/ui build exits 0
- pnpm --filter @paperclipai/server build exits 0
</acceptance_criteria>
<done>All tests pass and both UI and server build cleanly</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<name>Task 2: Visual and functional verification of streaming chat</name>
<files></files>
<action>
Present the verification checklist to the user. The user will manually test the streaming chat experience across all features built in Phase 22:
1. Start the dev server: `pnpm dev`
2. Open the chat panel (MessageSquare icon in sidebar)
3. Create a new conversation and send a message — verify tokens stream in word-by-word
4. While streaming: verify the Stop button (red square) appears; click it to cancel
5. Hover over an assistant message — verify Retry button (rotate icon) appears; click it
6. Hover over a user message — verify Edit button (pencil icon) appears; click to enter edit mode, modify text, click Regenerate
7. Open the Agent Selector dropdown in the header — verify agents appear with colored avatars
8. Select a different agent — verify it persists (reload page, re-open conversation)
9. Type `/ask-pm ` — verify slash command popover appears with matching commands
10. Type `@` followed by an agent name — verify mention popover appears
11. Switch between all three themes (Catppuccin Mocha, Tokyo Night, Catppuccin Latte) — verify agent badge colors are distinguishable
12. (Optional) If you have a conversation with many messages, scroll rapidly to check smoothness
</action>
<verify>User types "approved" or describes issues to fix</verify>
<acceptance_criteria>
- User confirms streaming tokens appear as they are generated
- User confirms Stop button cancels in-progress stream
- User confirms agent badge shows on assistant messages with colored avatar
- User confirms agent selector changes the conversation's agent
- User confirms slash command and @mention popovers appear
- User confirms agent colors are distinguishable across all three themes
</acceptance_criteria>
<done>User has approved the complete Phase 22 streaming chat experience</done>
</task>
</tasks>
<verification>
- Full test suite green
- Build succeeds for both UI and server
- User has visually verified the streaming experience
</verification>
<success_criteria>
1. All automated tests pass
2. Build succeeds
3. User approves the streaming experience
</success_criteria>
<output>
After completion, create `.planning/phases/22-agent-streaming/22-04-SUMMARY.md`
</output>