Files
vessel/frontend/src/lib/components/chat/index.ts
vikingowl 463067d2ae feat: add context management, summarization, and UI improvements
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>
2026-01-01 04:36:18 +01:00

41 lines
1.4 KiB
TypeScript

/**
* Chat components for Ollama Web UI
*
* This module exports all chat-related components for building
* the conversational interface.
*/
// Main container
export { default as ChatWindow } from './ChatWindow.svelte';
// Message display
export { default as MessageList } from './MessageList.svelte';
export { default as MessageItem } from './MessageItem.svelte';
export { default as MessageContent } from './MessageContent.svelte';
export { default as MessageActions } from './MessageActions.svelte';
// Branch navigation
export { default as BranchNavigator } from './BranchNavigator.svelte';
// Input
export { default as ChatInput } from './ChatInput.svelte';
// Image handling (for vision models)
export { default as ImageUpload } from './ImageUpload.svelte';
export { default as ImagePreview } from './ImagePreview.svelte';
// Code display
export { default as CodeBlock } from './CodeBlock.svelte';
// Indicators and states
export { default as StreamingIndicator } from './StreamingIndicator.svelte';
export { default as EmptyState } from './EmptyState.svelte';
// Context management
export { default as ContextUsageBar } from './ContextUsageBar.svelte';
export { default as ContextFullModal } from './ContextFullModal.svelte';
export { default as SummaryBanner } from './SummaryBanner.svelte';
// Prompt selection
export { default as SystemPromptSelector } from './SystemPromptSelector.svelte';