# Changelog ## v2.0.0 (2026-06-03) — Odysseus UI + Multi-Provider + RAG ### Added - Complete Odysseus-style UI with Tokyo Night color palette - Multi-provider LLM support (OpenAI, Anthropic, Ollama, OpenRouter, Groq, custom) - RAG pipeline: dual-source context from Wiki KB (:8097) + VectorDB (:8099) - Per-session RAG toggles (Wiki KB / VectorDB enable/disable) - Chat modes: Chat, Code, Brainstorm with mode-specific system prompts - Session history with localStorage persistence (up to 50 sessions) - Save AI answers as new Q&A entries to Wiki KB - Message action buttons: Copy, Redo, Save-to-Wiki on AI responses - Markdown rendering in AI replies (bold, italic, code blocks, lists) - Provider management: CRUD for custom providers, preset forking with API keys - SSE streaming with format detection (OpenAI vs Anthropic) - Model picker dropdown in input bar - Manage Providers modal with select/edit/delete - Quick action chips on welcome screen - Mobile responsive layout with sidebar drawer ### Backend (wiki-vector-chat.py) - FastAPI service on port 8770 - Shared API token auth from `/opt/blog/.wiki-api-token` - `build_rag_context()` with per-source toggle support - `call_llm_stream()` with format auto-detection - Anthropic SSE parsing (content_block_delta, message_stop) - `POST /chat/save-to-wiki` writes directly to wiki-kb.json - `ChatMessage` model extended with rag_wiki, rag_vector, mode fields ### Fixed - "Save failed: fetch().json is not a function" — double await - RAG chevron toggle checked CSS class instead of state - addMessage wrong arguments (empty objects vs string roles) - SSE done not breaking outer loop — streamDone flag - Welcome screen never hidden — .hidden CSS class + toggle - Preset providers not editable — forking with custom- prefix - RAG not working — auth tokens for wiki-api and vector-db - Anthropic message format — {role, content} not {type, text} - Anthropic SSE parsing missing — added content_block_delta handler - LLM ignoring RAG context — improved system prompt instructions - Markdown showing raw tags in AI replies — renderMd() conversion ## v1.0.0 (2026-05-28) — Initial - Basic chat UI embedded in wiki - Single-provider Z.ai GLM-4 proxy (wiki-chat-server.js on :8098) - Wiki KB search integration