agentgui 1.0.849 → 1.0.851
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gm/prd.yml +784 -0
- package/package.json +1 -1
package/.gm/prd.yml
ADDED
|
@@ -0,0 +1,784 @@
|
|
|
1
|
+
# AgentGUI UI Redesign - Research & Implementation Plan
|
|
2
|
+
|
|
3
|
+
## Research Phase Complete
|
|
4
|
+
- Analyzed current design: sidebar-based chat with basic styling
|
|
5
|
+
- Researched competitors: ChatGPT, Claude.ai, GitHub Copilot, Cursor, Continue.dev
|
|
6
|
+
- Identified modern patterns and best practices
|
|
7
|
+
- Ready for implementation
|
|
8
|
+
|
|
9
|
+
## Design Goals
|
|
10
|
+
1. **Visual Polish**: Modern, professional appearance matching tier-1 AI tools
|
|
11
|
+
2. **Usability**: Clearer information hierarchy, better discoverability
|
|
12
|
+
3. **Performance**: Improved responsive design, smooth animations
|
|
13
|
+
4. **Accessibility**: Enhanced keyboard navigation and screen reader support
|
|
14
|
+
5. **Semantic Design**: Color and typography reflecting functionality
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## UI Redesign Items
|
|
19
|
+
|
|
20
|
+
- id: header-redesign
|
|
21
|
+
subject: Redesign main header with better visual hierarchy
|
|
22
|
+
status: pending
|
|
23
|
+
description: |
|
|
24
|
+
Current header is minimal. Redesign to include:
|
|
25
|
+
- Large, bold title with app icon/logo
|
|
26
|
+
- Agent/model selector dropdown in header
|
|
27
|
+
- Connection status indicator (green dot, animated pulse when connecting)
|
|
28
|
+
- Theme toggle button (sun/moon icon)
|
|
29
|
+
- Settings/help buttons in top-right
|
|
30
|
+
- Breadcrumb navigation for conversations
|
|
31
|
+
Currently at line 100-115 of index.html
|
|
32
|
+
effort: medium
|
|
33
|
+
category: feature
|
|
34
|
+
blocking: []
|
|
35
|
+
blockedBy: []
|
|
36
|
+
acceptance:
|
|
37
|
+
- Header includes all 6 elements
|
|
38
|
+
- Status indicator animates on reconnect
|
|
39
|
+
- Mobile responsive (collapses to hamburger)
|
|
40
|
+
edge_cases:
|
|
41
|
+
- Long conversation titles truncate with ellipsis
|
|
42
|
+
- Status indicator visible in both light/dark modes
|
|
43
|
+
|
|
44
|
+
- id: sidebar-redesign
|
|
45
|
+
subject: Modernize sidebar with better visual separation and interactions
|
|
46
|
+
status: pending
|
|
47
|
+
description: |
|
|
48
|
+
Current sidebar is functional but dated. Redesign to:
|
|
49
|
+
- Add conversation avatars (colored circles with initials or emoji)
|
|
50
|
+
- Show preview text of last message in each conversation
|
|
51
|
+
- Add timestamp (e.g., "2 hours ago")
|
|
52
|
+
- Better visual hover states (subtle background change)
|
|
53
|
+
- Conversation metadata badges (unread count, favorite star)
|
|
54
|
+
- Improved search with fuzzy matching and recent filtering
|
|
55
|
+
- Floating action buttons instead of text buttons
|
|
56
|
+
Currently at lines 49-85 of index.html
|
|
57
|
+
effort: large
|
|
58
|
+
category: feature
|
|
59
|
+
blocking: []
|
|
60
|
+
blockedBy: []
|
|
61
|
+
acceptance:
|
|
62
|
+
- Each conversation shows avatar, title, preview, timestamp
|
|
63
|
+
- Hover states provide clear feedback
|
|
64
|
+
- Search filters by title and preview text
|
|
65
|
+
- Mobile sidebar can be swiped away
|
|
66
|
+
edge_cases:
|
|
67
|
+
- New conversations show placeholder states
|
|
68
|
+
- Search results update in real-time
|
|
69
|
+
- Avatar generation consistent for same agent
|
|
70
|
+
|
|
71
|
+
- id: message-bubbles-upgrade
|
|
72
|
+
subject: Redesign message rendering with distinct visual styling
|
|
73
|
+
status: pending
|
|
74
|
+
description: |
|
|
75
|
+
Current messages are plain text. Redesign to:
|
|
76
|
+
- User messages: Right-aligned, blue bubble, rounded corners
|
|
77
|
+
- Agent messages: Left-aligned, gray bubble, rounded corners
|
|
78
|
+
- Add small agent avatar before agent messages
|
|
79
|
+
- Add timestamp and sender name above messages
|
|
80
|
+
- Better code block styling with language badges
|
|
81
|
+
- Streaming animation (blinking cursor, progressive reveal)
|
|
82
|
+
- Message actions (copy, regenerate, delete) on hover
|
|
83
|
+
- Thinking blocks styled with purple accent color
|
|
84
|
+
Currently in js/streaming-renderer.js and css/main.css
|
|
85
|
+
effort: large
|
|
86
|
+
category: feature
|
|
87
|
+
blocking: []
|
|
88
|
+
blockedBy: []
|
|
89
|
+
acceptance:
|
|
90
|
+
- User/agent messages visually distinct
|
|
91
|
+
- Avatars render with agent color
|
|
92
|
+
- Code blocks include language badge and copy button
|
|
93
|
+
- Thinking blocks clearly marked with purple
|
|
94
|
+
- Streaming text shows cursor animation
|
|
95
|
+
edge_cases:
|
|
96
|
+
- Very long messages have proper text wrapping
|
|
97
|
+
- Code blocks with large content have scrollable container
|
|
98
|
+
- Multiple images in message render as grid
|
|
99
|
+
|
|
100
|
+
- id: chat-input-redesign
|
|
101
|
+
subject: Upgrade chat input area with better controls
|
|
102
|
+
status: pending
|
|
103
|
+
description: |
|
|
104
|
+
Current input is basic textarea. Redesign to:
|
|
105
|
+
- Larger input area that grows with text (auto-resize)
|
|
106
|
+
- Placeholder text with tips (e.g., "Shift+Enter for new line")
|
|
107
|
+
- Send button with visual feedback (hover, active states)
|
|
108
|
+
- Formatting buttons (bold, italic, code, link)
|
|
109
|
+
- Emoji picker button
|
|
110
|
+
- Attachment/file upload button with drag-drop preview
|
|
111
|
+
- Quick actions (regenerate, steer, edit) buttons
|
|
112
|
+
- Character count indicator when approaching limit
|
|
113
|
+
- Voice input button with animated recording indicator
|
|
114
|
+
effort: large
|
|
115
|
+
category: feature
|
|
116
|
+
blocking: []
|
|
117
|
+
blockedBy: []
|
|
118
|
+
acceptance:
|
|
119
|
+
- Input auto-resizes up to max-height
|
|
120
|
+
- All buttons visible and responsive
|
|
121
|
+
- Drag-drop file preview shown before upload
|
|
122
|
+
- Voice recording shows animated waves
|
|
123
|
+
- Keyboard shortcuts work (Cmd+Enter to send)
|
|
124
|
+
edge_cases:
|
|
125
|
+
- Very long pastes handled smoothly
|
|
126
|
+
- Voice input fails gracefully with error message
|
|
127
|
+
- File uploads show progress indicator
|
|
128
|
+
|
|
129
|
+
- id: streaming-visual-feedback
|
|
130
|
+
subject: Add visual feedback during agent streaming
|
|
131
|
+
status: pending
|
|
132
|
+
description: |
|
|
133
|
+
Current streaming has minimal visual indicators. Add:
|
|
134
|
+
- Animated loading skeleton (shimmer effect) for new messages
|
|
135
|
+
- Pulsing dot indicator showing active streaming
|
|
136
|
+
- Token count / generation progress
|
|
137
|
+
- ETA estimation when available
|
|
138
|
+
- "Thinking..." indicator during planning phases
|
|
139
|
+
- Subtle background animation during streaming
|
|
140
|
+
- Stop generation button (prominent and red)
|
|
141
|
+
- Completion notification with sound option
|
|
142
|
+
effort: medium
|
|
143
|
+
category: feature
|
|
144
|
+
blocking: []
|
|
145
|
+
blockedBy: []
|
|
146
|
+
acceptance:
|
|
147
|
+
- Skeleton loading appears for new agent response
|
|
148
|
+
- Pulsing indicator shows streaming is active
|
|
149
|
+
- Token count updates in real-time
|
|
150
|
+
- Stop button cancels current generation
|
|
151
|
+
- Thinking phase clearly labeled
|
|
152
|
+
edge_cases:
|
|
153
|
+
- Long responses show multiple skeleton blocks
|
|
154
|
+
- Network errors interrupt gracefully
|
|
155
|
+
- Rapid re-streaming shows smooth transition
|
|
156
|
+
|
|
157
|
+
- id: code-block-enhancements
|
|
158
|
+
subject: Enhance code block rendering and interactions
|
|
159
|
+
status: pending
|
|
160
|
+
description: |
|
|
161
|
+
Current code blocks are functional but basic. Enhance with:
|
|
162
|
+
- Full language detection and syntax highlighting
|
|
163
|
+
- Copy button that changes to checkmark on success
|
|
164
|
+
- "Run in terminal" button for executable code
|
|
165
|
+
- Line numbers toggle
|
|
166
|
+
- Dark/light theme-aware colors
|
|
167
|
+
- Code diff visualization (red/green lines for changes)
|
|
168
|
+
- Filename/path display above code block
|
|
169
|
+
- Download code as file button
|
|
170
|
+
- Expand/collapse for long blocks
|
|
171
|
+
Currently in js/streaming-renderer.js
|
|
172
|
+
effort: medium
|
|
173
|
+
category: feature
|
|
174
|
+
blocking: []
|
|
175
|
+
blockedBy: []
|
|
176
|
+
acceptance:
|
|
177
|
+
- All code blocks have language badge
|
|
178
|
+
- Copy button shows success state
|
|
179
|
+
- Diffs show red/green highlighting
|
|
180
|
+
- Long blocks (>30 lines) expandable
|
|
181
|
+
- Dark mode colors contrast properly
|
|
182
|
+
edge_cases:
|
|
183
|
+
- Unknown language defaults to plaintext
|
|
184
|
+
- Very large files truncate with expand link
|
|
185
|
+
- Copy works in all browsers
|
|
186
|
+
|
|
187
|
+
- id: color-palette-modernization
|
|
188
|
+
subject: Update color palette to modern, professional design system
|
|
189
|
+
status: pending
|
|
190
|
+
description: |
|
|
191
|
+
Current palette is basic blue + gray. Modernize to:
|
|
192
|
+
- Primary: Modern blue (#0066cc or #0080ff)
|
|
193
|
+
- Secondary: Vibrant accent (purple, green, or orange)
|
|
194
|
+
- Success: Emerald green (#10b981 → #059669)
|
|
195
|
+
- Error: Modern red (#ef4444 → #dc2626)
|
|
196
|
+
- Warning: Amber (#f59e0b → #d97706)
|
|
197
|
+
- Neutral: Better grayscale (5-7 shades for depth)
|
|
198
|
+
- Background: Subtle gradient or texture option
|
|
199
|
+
- Code blocks: Dark theme by default, matching VS Code
|
|
200
|
+
Dark mode: Ensure sufficient contrast (WCAG AA minimum)
|
|
201
|
+
Currently in static/css/main.css lines 3-36
|
|
202
|
+
effort: small
|
|
203
|
+
category: refactor
|
|
204
|
+
blocking: []
|
|
205
|
+
blockedBy: []
|
|
206
|
+
acceptance:
|
|
207
|
+
- All 8 colors defined in CSS vars
|
|
208
|
+
- Dark mode has separate palette
|
|
209
|
+
- Contrast ratios meet WCAG AA standard
|
|
210
|
+
- Code block colors match VS Code Dark+
|
|
211
|
+
edge_cases:
|
|
212
|
+
- Ensure colorblind-friendly palette (no red/green only)
|
|
213
|
+
- Animations don't cause motion sickness
|
|
214
|
+
- Print stylesheet still readable
|
|
215
|
+
|
|
216
|
+
- id: typography-hierarchy
|
|
217
|
+
subject: Improve typography system with better hierarchy
|
|
218
|
+
status: pending
|
|
219
|
+
description: |
|
|
220
|
+
Current typography is basic system fonts. Improve with:
|
|
221
|
+
- Consider font pairing (e.g., Inter + JetBrains Mono)
|
|
222
|
+
- Define explicit size scale (8px, 10px, 12px, 14px, 16px, 18px, 20px, 24px, 32px)
|
|
223
|
+
- Improve line-height for readability (1.5-1.6 for body, 1.2 for headers)
|
|
224
|
+
- Better letter-spacing for headers (0.5px to 1px)
|
|
225
|
+
- Font weight scale (400 regular, 500 medium, 600 semibold, 700 bold)
|
|
226
|
+
- Message headers (sender name + timestamp): 12px gray
|
|
227
|
+
- Message body: 14px primary, line-height 1.6
|
|
228
|
+
- Code: JetBrains Mono 12px, line-height 1.5
|
|
229
|
+
- Improved link styling with underlines on hover
|
|
230
|
+
Currently in static/css/main.css and index.html
|
|
231
|
+
effort: small
|
|
232
|
+
category: refactor
|
|
233
|
+
blocking: []
|
|
234
|
+
blockedBy: []
|
|
235
|
+
acceptance:
|
|
236
|
+
- 9-point size scale applied
|
|
237
|
+
- Headers use font-weight 600-700
|
|
238
|
+
- Body text uses line-height 1.6
|
|
239
|
+
- Code uses monospace, 12px
|
|
240
|
+
- All text readable at 16px zoom
|
|
241
|
+
edge_cases:
|
|
242
|
+
- Very long words don't break layout
|
|
243
|
+
- Ligatures work in code
|
|
244
|
+
- CJK text renders properly
|
|
245
|
+
|
|
246
|
+
- id: responsive-mobile-design
|
|
247
|
+
subject: Optimize responsive design for mobile and tablet
|
|
248
|
+
status: pending
|
|
249
|
+
description: |
|
|
250
|
+
Current responsive is basic. Enhance with:
|
|
251
|
+
- Mobile-first breakpoints (320px, 640px, 1024px, 1280px)
|
|
252
|
+
- Hamburger menu for sidebar on mobile
|
|
253
|
+
- Full-width chat input on mobile
|
|
254
|
+
- Bottom navigation bar for quick actions on mobile
|
|
255
|
+
- Gesture support (swipe for sidebar, pinch for zoom)
|
|
256
|
+
- Keyboard support for virtual keyboard display
|
|
257
|
+
- Better touch targets (min 44x44px for buttons)
|
|
258
|
+
- Optimize layouts for portrait/landscape orientation
|
|
259
|
+
Test on: iPhone, iPad, Android devices, iPad Pro
|
|
260
|
+
effort: medium
|
|
261
|
+
category: feature
|
|
262
|
+
blocking: []
|
|
263
|
+
blockedBy: []
|
|
264
|
+
acceptance:
|
|
265
|
+
- Mobile view has hamburger menu
|
|
266
|
+
- Chat input full-width on mobile
|
|
267
|
+
- All buttons at least 44x44px
|
|
268
|
+
- Bottom nav visible on mobile
|
|
269
|
+
- Swipe left opens/closes sidebar
|
|
270
|
+
- Tested on 3+ device sizes
|
|
271
|
+
edge_cases:
|
|
272
|
+
- Notch and safe area handling (iPhone)
|
|
273
|
+
- Landscape mode optimized
|
|
274
|
+
- Virtual keyboard doesn't break layout
|
|
275
|
+
|
|
276
|
+
- id: animations-transitions
|
|
277
|
+
subject: Add smooth animations and transitions throughout UI
|
|
278
|
+
status: pending
|
|
279
|
+
description: |
|
|
280
|
+
Current design has minimal animations. Add:
|
|
281
|
+
- Page transitions: Subtle fade or slide
|
|
282
|
+
- Button interactions: Scale on click, color fade on hover
|
|
283
|
+
- Message entry: Slide-in from bottom with fade
|
|
284
|
+
- Sidebar toggle: Smooth width transition
|
|
285
|
+
- Skeleton loading: Shimmer animation
|
|
286
|
+
- Streaming cursor: Blinking animation
|
|
287
|
+
- Modal dialogs: Fade-in with slide
|
|
288
|
+
- Hover states: All interactive elements have smooth color/scale transitions
|
|
289
|
+
- Use 200-300ms for most transitions, 500ms for longer animations
|
|
290
|
+
- GPU-accelerated (use transform, opacity, not width/height)
|
|
291
|
+
effort: small
|
|
292
|
+
category: feature
|
|
293
|
+
blocking: []
|
|
294
|
+
blockedBy: []
|
|
295
|
+
acceptance:
|
|
296
|
+
- All major interactions have smooth transitions
|
|
297
|
+
- Animations use GPU acceleration (transform/opacity)
|
|
298
|
+
- No janky scrolling or animation stutter
|
|
299
|
+
- Animations complete in 200-500ms
|
|
300
|
+
- Reduced-motion respects user preference
|
|
301
|
+
edge_cases:
|
|
302
|
+
- Low-end devices don't stutter
|
|
303
|
+
- Animations don't interfere with scrolling
|
|
304
|
+
- Prefers-reduced-motion disables animations
|
|
305
|
+
|
|
306
|
+
- id: accessibility-improvements
|
|
307
|
+
subject: Enhance accessibility for keyboard and screen reader users
|
|
308
|
+
status: pending
|
|
309
|
+
description: |
|
|
310
|
+
Current accessibility is basic. Enhance with:
|
|
311
|
+
- Keyboard navigation for all interactive elements
|
|
312
|
+
- Tab order is logical and visible (focus ring clearly visible)
|
|
313
|
+
- Skip link to jump to main content
|
|
314
|
+
- ARIA labels for all buttons and form inputs
|
|
315
|
+
- Role attributes for custom components
|
|
316
|
+
- Alt text for all images and avatars
|
|
317
|
+
- Announce streaming/loading state to screen readers
|
|
318
|
+
- Focus management for modals (trap focus, restore on close)
|
|
319
|
+
- Test with NVDA/JAWS screen readers
|
|
320
|
+
- Color contrast minimum WCAG AA (4.5:1 for text, 3:1 for UI)
|
|
321
|
+
- Readable font sizes (minimum 14px for body, 16px on mobile)
|
|
322
|
+
effort: medium
|
|
323
|
+
category: feature
|
|
324
|
+
blocking: []
|
|
325
|
+
blockedBy: []
|
|
326
|
+
acceptance:
|
|
327
|
+
- All buttons keyboard-accessible with visible focus
|
|
328
|
+
- Screen reader announces message sources
|
|
329
|
+
- Tab order is logical and documented
|
|
330
|
+
- Color contrast meets WCAG AA standard
|
|
331
|
+
- Focus ring clearly visible on all elements
|
|
332
|
+
- Tested with screen reader (NVDA/JAWS)
|
|
333
|
+
edge_cases:
|
|
334
|
+
- Dynamic content announced to screen readers
|
|
335
|
+
- Focus restored after modal closes
|
|
336
|
+
- Skip links don't cause layout issues
|
|
337
|
+
|
|
338
|
+
- id: dark-mode-refinement
|
|
339
|
+
subject: Improve dark mode design and theme switching
|
|
340
|
+
status: pending
|
|
341
|
+
description: |
|
|
342
|
+
Current dark mode is basic CSS var swap. Refine to:
|
|
343
|
+
- Add system dark mode detection (prefers-color-scheme)
|
|
344
|
+
- Add manual theme toggle button
|
|
345
|
+
- Persist theme preference in localStorage
|
|
346
|
+
- Add intermediate "system" option
|
|
347
|
+
- Refine dark color palette for better contrast
|
|
348
|
+
- Code blocks in dark mode use better theme (VS Code Dark+)
|
|
349
|
+
- Add optional "high contrast" mode for accessibility
|
|
350
|
+
- Add subtle background texture/noise in dark mode
|
|
351
|
+
- Test for eye strain and readability
|
|
352
|
+
effort: small
|
|
353
|
+
category: feature
|
|
354
|
+
blocking: []
|
|
355
|
+
blockedBy: []
|
|
356
|
+
acceptance:
|
|
357
|
+
- Theme toggle button in header
|
|
358
|
+
- Preference saved and restored
|
|
359
|
+
- Dark mode has good contrast
|
|
360
|
+
- Code blocks use proper dark syntax highlighting
|
|
361
|
+
- System preference detected on first load
|
|
362
|
+
- No flickering on page reload
|
|
363
|
+
edge_cases:
|
|
364
|
+
- Very bright code on dark background readable
|
|
365
|
+
- Images rendered with appropriate borders/backgrounds
|
|
366
|
+
- Links still visible in dark mode
|
|
367
|
+
|
|
368
|
+
- id: settings-panel
|
|
369
|
+
subject: Create comprehensive settings panel
|
|
370
|
+
status: pending
|
|
371
|
+
description: |
|
|
372
|
+
No current settings UI. Create panel with:
|
|
373
|
+
- Theme selection (light/dark/system)
|
|
374
|
+
- Font size adjustment (10px-20px range)
|
|
375
|
+
- Message density (compact/normal/spacious)
|
|
376
|
+
- Code block language auto-detection on/off
|
|
377
|
+
- Sound effects on/off
|
|
378
|
+
- Notification preferences
|
|
379
|
+
- Export conversation as JSON/markdown
|
|
380
|
+
- Dangerous actions: clear cache, reset all, export data
|
|
381
|
+
- Keyboard shortcuts reference
|
|
382
|
+
- About/version information
|
|
383
|
+
- Link to GitHub/documentation
|
|
384
|
+
effort: medium
|
|
385
|
+
category: feature
|
|
386
|
+
blocking: []
|
|
387
|
+
blockedBy: []
|
|
388
|
+
acceptance:
|
|
389
|
+
- Settings accessible from header menu
|
|
390
|
+
- All preferences persisted in localStorage
|
|
391
|
+
- Theme changes apply immediately
|
|
392
|
+
- Font size changes apply to all text
|
|
393
|
+
- Message density adjusts spacing
|
|
394
|
+
edge_cases:
|
|
395
|
+
- Settings panel works on mobile (full-screen modal)
|
|
396
|
+
- Reset confirmation prevents accidental deletion
|
|
397
|
+
- Export includes full conversation with metadata
|
|
398
|
+
|
|
399
|
+
- id: search-enhancement
|
|
400
|
+
subject: Improve conversation search with advanced filters
|
|
401
|
+
status: pending
|
|
402
|
+
description: |
|
|
403
|
+
Current search is basic text match. Enhance with:
|
|
404
|
+
- Fuzzy matching for typo tolerance
|
|
405
|
+
- Filter by agent/model used
|
|
406
|
+
- Filter by date range
|
|
407
|
+
- Filter by conversation status (completed/ongoing)
|
|
408
|
+
- Search in message content (not just titles)
|
|
409
|
+
- Show search result preview with highlighting
|
|
410
|
+
- Remember recent searches
|
|
411
|
+
- Search result count display
|
|
412
|
+
- Keyboard shortcut (Cmd+K or Cmd+F) for search
|
|
413
|
+
- Clear search button with visual feedback
|
|
414
|
+
effort: medium
|
|
415
|
+
category: feature
|
|
416
|
+
blocking: []
|
|
417
|
+
blockedBy: []
|
|
418
|
+
acceptance:
|
|
419
|
+
- Search works across all conversation data
|
|
420
|
+
- Fuzzy matching tolerates typos
|
|
421
|
+
- Filters work in combination
|
|
422
|
+
- Keyboard shortcut opens search
|
|
423
|
+
- Results show within 100ms
|
|
424
|
+
edge_cases:
|
|
425
|
+
- Search with special characters works
|
|
426
|
+
- Very large conversation lists search quickly
|
|
427
|
+
- Search in different languages supported
|
|
428
|
+
|
|
429
|
+
- id: visual-error-handling
|
|
430
|
+
subject: Improve error states and visual feedback
|
|
431
|
+
status: pending
|
|
432
|
+
description: |
|
|
433
|
+
Current error handling is basic. Improve with:
|
|
434
|
+
- Prominent error banners (red background, white text)
|
|
435
|
+
- Error icons/symbols (⚠️, ❌)
|
|
436
|
+
- Suggested actions (retry, contact support, etc.)
|
|
437
|
+
- Toast notifications for temporary issues
|
|
438
|
+
- Detailed error messages (not just "error")
|
|
439
|
+
- Connection error specific feedback
|
|
440
|
+
- Network retry with exponential backoff UI
|
|
441
|
+
- Rate limit warnings with countdown timer
|
|
442
|
+
- Clear error recovery path
|
|
443
|
+
- Error logging for debugging (show in devtools)
|
|
444
|
+
effort: small
|
|
445
|
+
category: feature
|
|
446
|
+
blocking: []
|
|
447
|
+
blockedBy: []
|
|
448
|
+
acceptance:
|
|
449
|
+
- Errors display in prominent red banner
|
|
450
|
+
- Error messages are specific and helpful
|
|
451
|
+
- Retry buttons work and show progress
|
|
452
|
+
- Toast notifications disappear after 5 seconds
|
|
453
|
+
- Connection status shown in header
|
|
454
|
+
edge_cases:
|
|
455
|
+
- Multiple errors queue properly
|
|
456
|
+
- Rate limit shows time remaining
|
|
457
|
+
- Network errors resolve automatically when online
|
|
458
|
+
|
|
459
|
+
- id: conversation-threading
|
|
460
|
+
subject: Add visual conversation threading and organization
|
|
461
|
+
status: pending
|
|
462
|
+
description: |
|
|
463
|
+
Current conversations are linear. Add threading features:
|
|
464
|
+
- Show message count in conversation header
|
|
465
|
+
- Add breadcrumb showing conversation context
|
|
466
|
+
- Option to view conversation tree/structure
|
|
467
|
+
- Expand/collapse sub-conversations
|
|
468
|
+
- Thread tagging system (research, bug-fix, feature, etc.)
|
|
469
|
+
- Pin important messages or threads
|
|
470
|
+
- Add message reactions (thumbs up/down)
|
|
471
|
+
- Quote/reply to specific messages
|
|
472
|
+
- Edit sent messages
|
|
473
|
+
- Message deletion with confirmation
|
|
474
|
+
effort: large
|
|
475
|
+
category: feature
|
|
476
|
+
blocking: []
|
|
477
|
+
blockedBy: []
|
|
478
|
+
acceptance:
|
|
479
|
+
- Message count displays in header
|
|
480
|
+
- Quote replies show as indented with border
|
|
481
|
+
- Pinned messages visible at top of conversation
|
|
482
|
+
- Edit timestamp shows "(edited)" label
|
|
483
|
+
- Delete requires confirmation
|
|
484
|
+
edge_cases:
|
|
485
|
+
- Quoted message deleted shows "message removed"
|
|
486
|
+
- Thread expansion loads historical data
|
|
487
|
+
- Very long threads lazy-load older messages
|
|
488
|
+
|
|
489
|
+
- id: visual-performance-metrics
|
|
490
|
+
subject: Display performance metrics and model information
|
|
491
|
+
status: pending
|
|
492
|
+
description: |
|
|
493
|
+
Add real-time metrics display:
|
|
494
|
+
- Token count (input + output)
|
|
495
|
+
- Generation time for last message
|
|
496
|
+
- Cost estimation (if available)
|
|
497
|
+
- Model name and version
|
|
498
|
+
- Temperature and top-p settings used
|
|
499
|
+
- Stop reason (max_tokens, end_turn, etc.)
|
|
500
|
+
- Can be toggled on/off in settings
|
|
501
|
+
- Small, unobtrusive display (top-right corner or expandable)
|
|
502
|
+
- Helpful tooltips explaining each metric
|
|
503
|
+
effort: small
|
|
504
|
+
category: feature
|
|
505
|
+
blocking: []
|
|
506
|
+
blockedBy: []
|
|
507
|
+
acceptance:
|
|
508
|
+
- Token count displayed for each message
|
|
509
|
+
- Generation time shown (e.g., "3.2s")
|
|
510
|
+
- Model name visible in header
|
|
511
|
+
- Metrics can be hidden via toggle
|
|
512
|
+
- Tooltips explain each metric
|
|
513
|
+
edge_cases:
|
|
514
|
+
- Streaming responses show running token count
|
|
515
|
+
- Partial tokens displayed as estimate
|
|
516
|
+
- Cost display only if configured
|
|
517
|
+
|
|
518
|
+
- id: quick-actions-toolbar
|
|
519
|
+
subject: Add toolbar with common actions
|
|
520
|
+
status: pending
|
|
521
|
+
description: |
|
|
522
|
+
Add floating toolbar below chat input with quick actions:
|
|
523
|
+
- Copy entire conversation
|
|
524
|
+
- Export as markdown/JSON
|
|
525
|
+
- Share conversation (create shareable link)
|
|
526
|
+
- Start new conversation based on this thread
|
|
527
|
+
- Archive conversation
|
|
528
|
+
- Change model/agent for same conversation
|
|
529
|
+
- View conversation metadata (created date, duration, etc.)
|
|
530
|
+
- Collapse/expand toolbar with chevron icon
|
|
531
|
+
effort: medium
|
|
532
|
+
category: feature
|
|
533
|
+
blocking: []
|
|
534
|
+
blockedBy: []
|
|
535
|
+
acceptance:
|
|
536
|
+
- Toolbar visible below input area
|
|
537
|
+
- All actions have icons and tooltips
|
|
538
|
+
- Toolbar collapses to single chevron icon
|
|
539
|
+
- Keyboard shortcuts work for common actions
|
|
540
|
+
- Copy shows success toast
|
|
541
|
+
edge_cases:
|
|
542
|
+
- Toolbar doesn't cover input on mobile
|
|
543
|
+
- Share generates unique URL correctly
|
|
544
|
+
- Export includes all messages with formatting
|
|
545
|
+
|
|
546
|
+
- id: visual-loading-states
|
|
547
|
+
subject: Add skeleton loading and progressive disclosure
|
|
548
|
+
status: pending
|
|
549
|
+
description: |
|
|
550
|
+
Improve loading state visuals:
|
|
551
|
+
- Skeleton loading screens for initial page load
|
|
552
|
+
- Skeleton message blocks while streaming
|
|
553
|
+
- Progressive image loading (blur-up effect)
|
|
554
|
+
- Loading spinner animations (custom SVG, not just "Loading...")
|
|
555
|
+
- Loading state for conversation list
|
|
556
|
+
- Empty state illustrations (rather than just text)
|
|
557
|
+
- Placeholder content that feels intentional
|
|
558
|
+
- Shimmer animation on skeleton screens
|
|
559
|
+
- Loading bar/progress for large operations
|
|
560
|
+
effort: small
|
|
561
|
+
category: feature
|
|
562
|
+
blocking: []
|
|
563
|
+
blockedBy: []
|
|
564
|
+
acceptance:
|
|
565
|
+
- Skeleton screens appear while loading
|
|
566
|
+
- Shimmer animation runs smoothly
|
|
567
|
+
- Empty states show helpful illustrations
|
|
568
|
+
- Loading spinner visible and animated
|
|
569
|
+
- Progressive image loading blur-up works
|
|
570
|
+
edge_cases:
|
|
571
|
+
- Skeleton screens match final layout exactly
|
|
572
|
+
- Loading states never feel stuck
|
|
573
|
+
- Animations work on low-end devices
|
|
574
|
+
|
|
575
|
+
- id: agent-model-selector
|
|
576
|
+
subject: Create prominent agent and model selector UI
|
|
577
|
+
status: pending
|
|
578
|
+
description: |
|
|
579
|
+
Current model selection is buried. Create prominent selector:
|
|
580
|
+
- Dropdown in header or sidebar
|
|
581
|
+
- Shows current agent/model with icon
|
|
582
|
+
- Lists available agents (Claude, OpenCode, Gemini, Kilo, etc.)
|
|
583
|
+
- For each agent, shows available models
|
|
584
|
+
- Quick preview of model capabilities/stats
|
|
585
|
+
- Change model mid-conversation
|
|
586
|
+
- Show model context window size
|
|
587
|
+
- Show estimated cost per query (if available)
|
|
588
|
+
- Favorite/star frequently used models
|
|
589
|
+
- Search models by name
|
|
590
|
+
effort: medium
|
|
591
|
+
category: feature
|
|
592
|
+
blocking: []
|
|
593
|
+
blockedBy: []
|
|
594
|
+
acceptance:
|
|
595
|
+
- Selector visible in header
|
|
596
|
+
- Agent/model change is instant
|
|
597
|
+
- Lists all available models
|
|
598
|
+
- Shows model context window
|
|
599
|
+
- Change mid-conversation works
|
|
600
|
+
edge_cases:
|
|
601
|
+
- Model list updates on startup
|
|
602
|
+
- Unsupported models show as disabled
|
|
603
|
+
- Model change shows confirmation toast
|
|
604
|
+
|
|
605
|
+
- id: conversation-metadata-display
|
|
606
|
+
subject: Show conversation metadata and history info
|
|
607
|
+
status: pending
|
|
608
|
+
description: |
|
|
609
|
+
Add visible metadata display:
|
|
610
|
+
- Created date/time
|
|
611
|
+
- Last updated timestamp
|
|
612
|
+
- Total messages count
|
|
613
|
+
- Total tokens used
|
|
614
|
+
- Duration of conversation
|
|
615
|
+
- List of agents/models used
|
|
616
|
+
- Summary/description of conversation
|
|
617
|
+
- Can be viewed in modal or sidebar info panel
|
|
618
|
+
- Shows editing capability
|
|
619
|
+
effort: small
|
|
620
|
+
category: feature
|
|
621
|
+
blocking: []
|
|
622
|
+
blockedBy: []
|
|
623
|
+
acceptance:
|
|
624
|
+
- Metadata viewable in modal or sidebar
|
|
625
|
+
- All fields display correctly
|
|
626
|
+
- Editable description field
|
|
627
|
+
- Timestamps human-readable
|
|
628
|
+
edge_cases:
|
|
629
|
+
- Very old conversations show proper date format
|
|
630
|
+
- Very long conversations show total duration
|
|
631
|
+
- Multiple agents show all used
|
|
632
|
+
|
|
633
|
+
- id: visual-focus-states
|
|
634
|
+
subject: Improve keyboard focus indicators and tab order
|
|
635
|
+
status: pending
|
|
636
|
+
description: |
|
|
637
|
+
Current focus states are subtle. Improve with:
|
|
638
|
+
- High-contrast focus ring (2px, matches primary color)
|
|
639
|
+
- Focus ring on all interactive elements
|
|
640
|
+
- Visible tab order (1-2-3 indicators optional)
|
|
641
|
+
- Logical tab order documented
|
|
642
|
+
- Focus state also affects hover state for consistency
|
|
643
|
+
- Focus shadow (subtle box-shadow alongside ring)
|
|
644
|
+
- Focus visible only on keyboard, not mouse
|
|
645
|
+
- Clear visual feedback for radio/checkbox focus
|
|
646
|
+
effort: small
|
|
647
|
+
category: refactor
|
|
648
|
+
blocking: []
|
|
649
|
+
blockedBy: []
|
|
650
|
+
acceptance:
|
|
651
|
+
- Focus ring visible on all buttons
|
|
652
|
+
- Focus ring 2px width
|
|
653
|
+
- Tab order is logical
|
|
654
|
+
- Focus works with keyboard only
|
|
655
|
+
- Contrast meets WCAG AAA (7:1) if possible
|
|
656
|
+
edge_cases:
|
|
657
|
+
- Focus visible in dark mode
|
|
658
|
+
- Focus ring doesn't cover content
|
|
659
|
+
- Custom focus styles don't break accessibility
|
|
660
|
+
|
|
661
|
+
- id: create-design-tokens
|
|
662
|
+
subject: Create design tokens system (spacing, sizing, shadows)
|
|
663
|
+
status: pending
|
|
664
|
+
description: |
|
|
665
|
+
Formalize design system with tokens:
|
|
666
|
+
- Spacing scale: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px
|
|
667
|
+
- Border radius: 2px, 4px, 8px, 12px, 16px
|
|
668
|
+
- Shadow scale: small (subtle), medium (cards), large (modals)
|
|
669
|
+
- Z-index scale: base(0), dropdown(1000), modal(2000), tooltip(3000)
|
|
670
|
+
- Breakpoints: mobile(320px), tablet(640px), desktop(1024px), wide(1280px)
|
|
671
|
+
- Transition durations: fast(100ms), normal(200ms), slow(500ms)
|
|
672
|
+
- Define in root CSS vars for consistency
|
|
673
|
+
- Document in style guide
|
|
674
|
+
- Use consistently throughout UI
|
|
675
|
+
effort: small
|
|
676
|
+
category: refactor
|
|
677
|
+
blocking: []
|
|
678
|
+
blockedBy: []
|
|
679
|
+
acceptance:
|
|
680
|
+
- All spacing uses token scale
|
|
681
|
+
- All shadows use shadow scale
|
|
682
|
+
- All transitions use duration scale
|
|
683
|
+
- Z-index documented and consistent
|
|
684
|
+
- Tokens applied to all components
|
|
685
|
+
edge_cases:
|
|
686
|
+
- No magic numbers in CSS
|
|
687
|
+
- Tokens work in light and dark modes
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
## Non-UI Items (Infrastructure)
|
|
692
|
+
|
|
693
|
+
- id: performance-audit
|
|
694
|
+
subject: Conduct performance audit and optimize rendering
|
|
695
|
+
status: pending
|
|
696
|
+
description: |
|
|
697
|
+
Audit and improve performance:
|
|
698
|
+
- Measure First Contentful Paint (FCP), Largest Contentful Paint (LCP)
|
|
699
|
+
- Check Core Web Vitals (CLS, FID, TTFB)
|
|
700
|
+
- Profile JS execution on slow device (throttle to 4x slowdown)
|
|
701
|
+
- Optimize image sizes and formats (WebP)
|
|
702
|
+
- Lazy-load below-fold content
|
|
703
|
+
- Code-split large chunks
|
|
704
|
+
- Use Web Workers for heavy computations
|
|
705
|
+
- Optimize CSS (remove unused, minify)
|
|
706
|
+
- Monitor memory usage (check for leaks)
|
|
707
|
+
effort: large
|
|
708
|
+
category: infra
|
|
709
|
+
blocking: []
|
|
710
|
+
blockedBy: []
|
|
711
|
+
acceptance:
|
|
712
|
+
- FCP < 1.5s, LCP < 2.5s
|
|
713
|
+
- No CLS (Cumulative Layout Shift)
|
|
714
|
+
- Lighthouse score > 90 for performance
|
|
715
|
+
- Memory stable under 100MB
|
|
716
|
+
edge_cases:
|
|
717
|
+
- Slow network (3G) still responsive
|
|
718
|
+
- Large conversations don't cause memory leaks
|
|
719
|
+
- Mobile performance optimized
|
|
720
|
+
|
|
721
|
+
- id: test-coverage-expansion
|
|
722
|
+
subject: Expand test coverage for UI components
|
|
723
|
+
status: pending
|
|
724
|
+
description: |
|
|
725
|
+
Expand tests to cover new features:
|
|
726
|
+
- Component render tests
|
|
727
|
+
- User interaction tests
|
|
728
|
+
- Message streaming tests
|
|
729
|
+
- Search functionality tests
|
|
730
|
+
- Theme switching tests
|
|
731
|
+
- Mobile responsiveness tests
|
|
732
|
+
- Error handling tests
|
|
733
|
+
- Performance regression tests
|
|
734
|
+
effort: large
|
|
735
|
+
category: infra
|
|
736
|
+
blocking: []
|
|
737
|
+
blockedBy: []
|
|
738
|
+
acceptance:
|
|
739
|
+
- >90% code coverage
|
|
740
|
+
- All major user flows tested
|
|
741
|
+
- Mobile responsive tests pass
|
|
742
|
+
- Performance benchmarks pass
|
|
743
|
+
edge_cases:
|
|
744
|
+
- Streaming responses tested
|
|
745
|
+
- Error scenarios covered
|
|
746
|
+
- WebSocket reconnection tested
|
|
747
|
+
|
|
748
|
+
---
|
|
749
|
+
|
|
750
|
+
## Summary
|
|
751
|
+
|
|
752
|
+
**Total Items**: 28 items (24 features, 4 infrastructure)
|
|
753
|
+
**Large Effort**: 7 items (20 hours estimated)
|
|
754
|
+
**Medium Effort**: 11 items (15 hours estimated)
|
|
755
|
+
**Small Effort**: 10 items (10 hours estimated)
|
|
756
|
+
**Total Estimated**: ~45 hours
|
|
757
|
+
|
|
758
|
+
## Implementation Priority
|
|
759
|
+
|
|
760
|
+
Phase 1 (Critical Path - Week 1):
|
|
761
|
+
1. Color palette modernization
|
|
762
|
+
2. Header redesign
|
|
763
|
+
3. Message bubble redesign
|
|
764
|
+
4. Chat input redesign
|
|
765
|
+
5. Sidebar redesign
|
|
766
|
+
6. Typography improvements
|
|
767
|
+
|
|
768
|
+
Phase 2 (High Value - Week 2):
|
|
769
|
+
7. Animations and transitions
|
|
770
|
+
8. Code block enhancements
|
|
771
|
+
9. Streaming visual feedback
|
|
772
|
+
10. Dark mode refinement
|
|
773
|
+
11. Responsive mobile design
|
|
774
|
+
|
|
775
|
+
Phase 3 (Polish & Features - Week 3):
|
|
776
|
+
12. Settings panel
|
|
777
|
+
13. Agent/model selector
|
|
778
|
+
14. Accessibility improvements
|
|
779
|
+
15. Error handling
|
|
780
|
+
16. Quick actions toolbar
|
|
781
|
+
17. Visual loading states
|
|
782
|
+
|
|
783
|
+
Phase 4 (Nice-to-Have - Week 4):
|
|
784
|
+
18-28. Remaining features and infrastructure items
|