## Summary - Closes [#97](#97) — message action row: copy (raw markdown + code-block copy), thumbs up/down with optimistic updates + down-reason popover, and export menu (PDF / DOCX / CSV / XLSX / TXT) for a single message plus conversation-level export in the chat toolbar. - Closes [#98](#98) — versioned WS `citations` frame parsing, Sources list under assistant bubbles, clickable `[n]` markers, and history hydrate from `Prompt.citations`. - Backend companion for ratings: [chat_backend#67](ai_ml_operations/chat_backend#67). Thumbs UI posts to `prompt_feedback` once that lands; votes rehydrate from `conversation_details.feedback`. - Export libs (`pdfmake`, `docx`, `papaparse`, `xlsx`) are dynamically imported so they stay out of the main path until used. ## Test plan - [ ] Stream a grounded answer → Sources appear after stream; inline `[n]` highlights the matching source; reload keeps Sources. - [ ] Non-grounded turn → no Sources header. - [ ] Copy message + code block; confirm checkmark ~2s; failure path shows toast. - [ ] Thumbs up/down optimistic UI; clear by re-click; down opens reason popover without blocking the vote (needs chat_backend#67). - [ ] Export one message and whole conversation in all five formats; check searchable PDF text and DOCX structure. - [ ] Action row: hover reveal on desktop, always visible on last/touch; hidden while streaming. - [ ] `npm test -- --testPathPattern='wsFrames|clipboard|exportChat|promptFeedback|ConversationDetailCard'`Reviewed-on: #101
This commit was merged in pull request #101.
This commit is contained in:
Generated
+555
-30
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user