| 22-agent-streaming |
04 |
ui |
| react |
| slash-commands |
| mention |
| popover |
| shadcn |
| routing |
|
| phase |
provides |
| 22-00 |
agent-role-colors, AgentRole type, Wave 0 test stubs |
|
| phase |
provides |
| 22-02 |
AgentIcon component from AgentIconPicker |
|
|
| ChatSlashCommandPopover component (260px, opens upward, 5 slash commands) |
| ChatMentionPopover component (200px, opens upward, agent autocomplete) |
| slash-commands.ts utility with SLASH_COMMANDS and resolveAgentFromContent |
|
| 22-05 |
| ChatInput wiring plan |
|
| added |
patterns |
|
|
| Popover with side=top opens popovers upward anchored to textarea |
| onOpenAutoFocus prevented to preserve textarea focus during popover interaction |
| resolveAgentFromContent: slash command priority > @mention priority > active agent fallback |
| Disabled commands shown with opacity-50 and (Coming soon) suffix |
|
|
| created |
modified |
| ui/src/lib/slash-commands.ts |
| ui/src/components/ChatSlashCommandPopover.tsx |
| ui/src/components/ChatSlashCommandPopover.test.tsx |
| ui/src/components/ChatMentionPopover.tsx |
| ui/src/components/ChatMentionPopover.test.tsx |
|
|
|
| /search command defined with routesTo: null and disabled: true — displayed greyed with Coming soon suffix per UI spec |
| resolveAgentFromContent prioritizes slash commands over @mentions, falls back to activeAgentId |
| ChatMentionPopover limits display to 5 agents (slice(0,5)) with scroll container |
| // @vitest-environment jsdom pragma added to component tests for JSX dynamic import support |
|
| Slash command routing: SLASH_COMMANDS array + resolveAgentFromContent function for agent routing from message content |
| Popover autocomplete pattern: Popover > PopoverTrigger asChild > PopoverContent (side=top, onOpenAutoFocus prevented) |
|
|
4min |
2026-04-01 |