Description
Implement conversation threading, cross-conversation referencing, and text highlighting capabilities for richer user interactions.
User Stories
- As a user, I want to reply to specific messages to create threaded conversations
- As a user, I want to reference previous conversations in new chats for context
- As a user, I want to highlight important text in AI responses with notes
- As a user, I want to export my highlights for external use
Tasks
Conversation Threading
Reference System
Text Highlighting
Acceptance Criteria
Threading
Referencing
Highlighting
Dependencies
- v0.2.0 and v0.3.0 features
ChatView.vue from src/pages/ChatView.vue
parseMarkdown from src/utils/markdown.ts
- Existing message store structure
Design Notes
Threading
- Use subtle connecting lines between thread levels
- Indent 20px per thread level, max 60px
- Collapse icon: chevron down/right
- Highlight active thread with subtle background
Referencing
- Use "@" symbol or dedicated button to trigger
- Reference chips similar to labels (but distinct styling)
- Show "Referenced from [Session Title]" in message
- Use subtle background for messages with references
Highlighting Colors
- Yellow:
#FEF3C7 (default)
- Green:
#D1FAE5
- Blue:
#DBEAFE
- Pink:
#FCE7F3
- Orange:
#FFEDD5
Technical Considerations
- Use
window.getSelection() for text highlighting
- Store highlight offsets relative to plain text
- Handle highlights across markdown formatting
- Limit thread depth to prevent UI issues
- Use virtual scrolling for large thread trees
- Debounce text selection events
- Maximum 50 highlights per message
- Maximum 3 referenced conversations per message
Testing Checklist
Related Issues
Milestone
v0.4.0 Release
Description
Implement conversation threading, cross-conversation referencing, and text highlighting capabilities for richer user interactions.
User Stories
Tasks
Conversation Threading
Update
src/store/types.tsCreate
src/components/ThreadedMessage.vueUpdate
src/pages/ChatView.vueUpdate store logic
Reference System
Create reference data structure
Create
src/components/ReferenceSelector.vueImplement reference UI in chat
Context inheritance
Text Highlighting
Update
src/store/types.tsCreate
src/components/HighlightEditor.vueImplement highlighting in messages
ChatView.vueCreate
src/components/HighlightPanel.vueHighlight export
Acceptance Criteria
Threading
Referencing
Highlighting
Dependencies
ChatView.vuefromsrc/pages/ChatView.vueparseMarkdownfromsrc/utils/markdown.tsDesign Notes
Threading
Referencing
Highlighting Colors
#FEF3C7(default)#D1FAE5#DBEAFE#FCE7F3#FFEDD5Technical Considerations
window.getSelection()for text highlightingTesting Checklist
Related Issues
Milestone
v0.4.0 Release