Commit Graph

2 Commits

Author SHA1 Message Date
066272e6b1 feat(web): polish master chat overlay with model selector, params, empty state, and keyboard shortcuts
All checks were successful
ci/woodpecker/push/web Pipeline was successful
- Add model selector chip/dropdown in ChatInput with 4 models (llama3.2, claude-3.5-sonnet, gpt-4o, deepseek-r1)
- Add temperature slider (0.0–2.0) and max tokens input (100–32000) via settings popover
- Persist model, temperature, and max tokens in localStorage across sessions
- Wire model/temperature/maxTokens state up through Chat.tsx to useChat hook
- Add ChatEmptyState component with greeting and 4 clickable suggested prompts
- Clicking a suggestion pre-fills the ChatInput textarea via externalValue prop
- Add Cmd/Ctrl+N and Cmd/Ctrl+L keyboard shortcuts to start new conversation
- Add "New conversation" button in ChatOverlay header with Cmd+N tooltip
- Show ChatEmptyState when conversation has only the welcome message
- Write 63 tests covering model selector, params config, empty state, and keyboard shortcuts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 21:15:39 -06:00
0669c7cb77 feat(#42): Implement persistent Jarvis chat overlay
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
Add a persistent chat overlay accessible from any authenticated view.
The overlay wraps the existing Chat component and adds state management,
keyboard shortcuts, and responsive design.

Features:
- Three states: Closed (floating button), Open (full panel), Minimized (header)
- Keyboard shortcuts:
  - Cmd/Ctrl + K: Open chat (when closed)
  - Escape: Minimize chat (when open)
  - Cmd/Ctrl + Shift + J: Toggle chat panel
- State persistence via localStorage
- Responsive design (full-width mobile, sidebar desktop)
- PDA-friendly design with calm colors
- 32 comprehensive tests (14 hook tests + 18 component tests)

Files added:
- apps/web/src/hooks/useChatOverlay.ts
- apps/web/src/hooks/useChatOverlay.test.ts
- apps/web/src/components/chat/ChatOverlay.tsx
- apps/web/src/components/chat/ChatOverlay.test.tsx

Files modified:
- apps/web/src/components/chat/index.ts (added export)
- apps/web/src/app/(authenticated)/layout.tsx (integrated overlay)

All tests passing (490 tests, 50 test files)
All lint checks passing
Build succeeds

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 20:24:41 -06:00