- Move code editor to standalone page; remove from main index/app mode switcher
- Add diff-active tab highlight and diff bar CSS to styles
- Add markdown table styles for chat messages
- PubMed: try NCBI FTP link before Unpaywall for PDF download
- Login: also persist token to localStorage for cross-tab auth
- Update skills state and config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- All skill toggles are now per-user (except multi-agent-orchestrator
which remains global). Admin toggle without a target username defaults
to their own per-user state instead of the global file.
- GET /api/skills defaults to the requesting user's own state (previously
returned global state when no ?username= param was given).
- Add SkillsManager.initUserSkillsState(): creates per-user
skills_state.json from global defaults if missing — called on user
creation and on every login as a safety net for existing accounts.
- Create initial per-user skills_state.json for cherry and jasmine.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Korean search keywords to WEB category (뉴스, 검색해, etc.) so
Korean news queries trigger web_search instead of ollama_web_search
- Show ✓ SearXNG in startup banner when searxng_url is configured
- Update dental dict databases scripts and DB
- Clean up stale sessions and workspace runtime files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>