Implement full chat functionality with persistent sessions and messages stored in MongoDB, LLM completion via Ollama (with multi-provider dispatch support), markdown rendering, and a model selector. - Add ChatSession/ChatMessage models with serde attributes for MongoDB ObjectId handling (skip_serializing_if empty, alias _id) - Add CRUD server functions: list/create/rename/delete sessions, list/save messages, non-streaming chat completion - Add raw Document collection accessor for BSON ObjectId -> String conversion in read paths - Add SSE streaming endpoint (Axum handler) for future streaming support - Add provider dispatch client (Ollama, OpenAI, Anthropic, HuggingFace) - Add frontend components: ChatSidebar with namespace grouping, ChatModelSelector, ChatMessageList, ChatInputBar, ChatBubble with pulldown-cmark markdown rendering and StreamingBubble thinking indicator - Rewrite ChatPage with full signal-based state management - Add comprehensive CSS for chat UI, markdown prose, animations Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 KiB
52 KiB