55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# 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
|
|
- VectorDB search read wrong field (text vs content) - all results were empty strings
|
|
- VectorDB author/channel are top-level, not nested under metadata
|
|
- Missing API key showed cryptic HTTP 401 instead of helpful guidance
|
|
- Added friendly error messages for HTTP 429/403 during streaming
|
|
|
|
### Fixed (earlier)
|
|
- "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
|