- Increase light mode text contrast in app.css (slate.600→700, slate.500→600)
- Add light/dark mode prose styles in MessageContent.svelte for proper markdown rendering
- Convert hardcoded slate-* classes to theme utilities across 37 components
- Fix code block copy button and scrollbar theming for both modes
- Update all route pages (models, tools, knowledge, prompts) with theme classes
- Ensure consistent theming in modals, dialogs, and form inputs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Context Window Management:
- Add ContextFullModal with recovery options (summarize, new chat, dismiss)
- Show toast notifications at 85% and 95% context thresholds
- Block sending when context exceeds 100% until user takes action
Conversation Summarization:
- Add isSummarized/isSummary flags to Message type
- Implement markAsSummarized() and insertSummaryMessage() in ChatState
- Add messagesForContext derived state (excludes summarized, includes summaries)
- Complete handleSummarize flow with LLM summary generation
- Add amber-styled summary message UI with archive icon
Auto-scroll Fixes:
- Fix Svelte 5 reactivity issues by using plain variables instead of $state
- Add continuous scroll during streaming via streamBuffer tracking
- Properly handle user scroll override (re-enable at bottom)
Drag & Drop Improvements:
- Add full-screen drag overlay with document-level event listeners
- Use dragCounter pattern for reliable nested element detection
- Add hideDropZone prop to FileUpload/ImageUpload components
Additional Features:
- Add SystemPromptSelector for per-conversation prompts
- Add SearchModal for full-text message search
- Add ShortcutsModal for keyboard shortcuts help
- Add theme toggle to TopNav
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete Ollama Web UI implementation featuring:
Frontend (SvelteKit + Svelte 5 + Tailwind CSS + Skeleton UI):
- Chat interface with streaming responses and markdown rendering
- Message tree with branching support (edit creates branches)
- Vision model support with image upload/paste
- Code syntax highlighting with Shiki
- Built-in tools: get_current_time, calculate, fetch_url
- Function model middleware (functiongemma) for tool routing
- IndexedDB storage with Dexie.js
- Context window tracking with token estimation
- Knowledge base with embeddings (RAG support)
- Keyboard shortcuts and responsive design
- Export conversations as Markdown/JSON
Backend (Go + Gin + SQLite):
- RESTful API for conversations and messages
- SQLite persistence with branching message tree
- Sync endpoints for IndexedDB ↔ SQLite synchronization
- URL proxy endpoint for CORS-bypassed web fetching
- Health check endpoint
- Docker support with host network mode
Infrastructure:
- Docker Compose for development and production
- Vite proxy configuration for Ollama and backend APIs
- Hot reload development setup
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>