T23a: AI chat, messages

- messages: yours in a quiet bubble, the assistant's as prose beside its mark,
  system notes, errors; avatars, headers with model and time, footers
- MessageList over gpui's bottom-aligned list: drawn near the view, held at the
  newest, counting arrivals while away; a way back down; day separators
- streaming text and markdown reveal toward the text as it grows, with a caret;
  a blinking cursor before the first words
- CodeBlock with language, copy, run, apply, download and folding;
  MarkdownRenderer::code lets messages draw fences with it
- pictures, grids, files, voice notes, video over host frames, link previews
- quotes, actions, an editor that takes focus, versions, regenerate, stop and
  continue
- errors with retry, a rate limit counting down, feedback, thinking blocks
- gallery: the AI Chat page with scripted states
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 05:35:09 -04:00
1 parent 03f6ceb583
commit c0afce2507
21 files changed
+3376 -34

No files matched your search

+33 -33
View File
@@ -76,39 +76,39 @@
## T23a AI Chat · Messages — `src/chat`
- [ ] ChatContainer
- [ ] MessageList — virtualized, stick to bottom, new-message hint
- [ ] MessageBubble — user, assistant, system, error
- [ ] MessageAvatar
- [ ] MessageHeader
- [ ] MessageFooter
- [ ] StreamingText
- [ ] StreamingMarkdown
- [ ] StreamingCursor
- [ ] CodeBlock — language, copy, download, run, fold, apply
- [ ] MathBlock → `typography::Latex`
- [ ] TableBlock → `documents::MarkdownRenderer`
- [ ] MermaidRenderer → `documents::MermaidBlock`
- [ ] ImageMessage / ImageGrid
- [ ] FileMessage
- [ ] AudioMessage
- [ ] VideoMessage — host frames
- [ ] LinkPreviewCard
- [ ] QuoteReply
- [ ] MessageActions
- [ ] MessageEditor
- [ ] BranchNavigator
- [ ] RegenerateButton
- [ ] StopGeneratingButton
- [ ] ContinueButton
- [ ] ErrorMessage / RetryMessage
- [ ] RateLimitNotice
- [ ] FeedbackForm
- [ ] ScrollToBottomButton
- [ ] DateSeparator
- [ ] ThinkingBlock / ReasoningPanel
- [ ] ThinkingIndicator
- [ ] ThinkingDuration
- [x] ChatContainer
- [x] MessageList — virtualized, stick to bottom, new-message hint
- [x] MessageBubble — user, assistant, system, error
- [x] MessageAvatar
- [x] MessageHeader
- [x] MessageFooter
- [x] StreamingText
- [x] StreamingMarkdown
- [x] StreamingCursor
- [x] CodeBlock — language, copy, download, run, fold, apply
- [x] MathBlock → `typography::Latex`
- [x] TableBlock → `documents::MarkdownRenderer`
- [x] MermaidRenderer → the host draws the SVG; `chat::ImageMessage` shows it
- [x] ImageMessage / ImageGrid
- [x] FileMessage
- [x] AudioMessage
- [x] VideoMessage — host frames
- [x] LinkPreviewCard
- [x] QuoteReply
- [x] MessageActions
- [x] MessageEditor
- [x] BranchNavigator
- [x] RegenerateButton → `chat::regenerate_button`
- [x] StopGeneratingButton → `chat::stop_button`
- [x] ContinueButton → `chat::continue_button`
- [x] ErrorMessage / RetryMessage → `chat::ErrorMessage`, over `feedback::Alert`
- [x] RateLimitNotice
- [x] FeedbackForm
- [x] ScrollToBottomButton
- [x] DateSeparator
- [x] ThinkingBlock / ReasoningPanel → `chat::ThinkingBlock`
- [x] ThinkingIndicator
- [x] ThinkingDuration
## T23b AI Chat · Citations