v0.10.0
Breaking risk
Breaking changes
- Default multimodal model switched from unspecified to zai-org/GLM-4.6V
- Default task model switched from unspecified to Llama-3.1-8B-Instruct
Security fixes
- DNS-level SSRF protection added to MCP endpoints (#2195)
Notable features
- Per-model reasoning toggle and configurable effort for capable models with streaming viewport
- Fullscreen lightbox image viewer with pinch‑zoom and pan gestures
- Per-model inference provider selection with icons in UI
Full changelog
v0.10.0 — Release notes draft
Range: v0.9.6 → main (201 commits, 2026-01-21 → today)
Highlights
- Reasoning UI: per-model reasoning toggle, configurable reasoning effort for capable models, streaming reasoning in a fixed-height fade viewport (#2252, #2259, #2262, #2263).
- Image viewer: fullscreen lightbox for chat images, with pinch-zoom and pan gestures (#2261).
- Per-model inference provider selection: pick the provider per model, with provider icons in the model list, settings nav, and next to the model name; powered by a
bits-uiSelect. - Mobile polish: larger header tap targets, no mobile-specific text shrinking, smarter haptic feedback (incl. a streaming haptic burst on first token), iOS Safari thinking-block fix.
- Conversation flow: ChatGPT-style scroll positioning for new messages, instant scroll on conversation switch, immediate stop on abort, copy button on user messages, inline title editing via double-click, nav item kebab dropdown.
- MCP & tools: configurable
MCP_TOOL_TIMEOUT_MS, DNS-level SSRF protection on MCP endpoints, MCP examples for any tools-enabled model (not just router), Exa crawling tool, timezone-aware tool prompts, refined search-tool prompt.
Features
- Reasoning effort configuration for capable models (#2252)
- Streaming reasoning in fixed-height fade viewport (#2262), mobile cap (#2263)
- Per-model reasoning toggle in model settings
- Fullscreen lightbox + pinch-zoom/pan for chat images (#2261)
- Per-model inference provider selection with icons (settings + model list + chat header)
- Copy button on user messages; inline title edit on double-click in sidebar
- Page title on model pages; link username to HF profile in sidebar (HuggingChat)
- Smooth/anchored scroll on new messages; instant scroll between conversations
- Kebab dropdown for nav item edit/delete (#2246)
- Per-model system-prompt enable/disable toggle (#2231)
- Timezone support in tool prompts (#2233)
- Configurable
MCP_TOOL_TIMEOUT_MS(#2063) - Exa crawling MCP tool enabled; MCP prompt guidance for HTML apps
- Iframe embedding restricted to huggingface.co (#2053)
- Haptic feedback for mobile web (incl. burst on first token)
- New router models: DeepSeek‑V4‑Pro, Kimi‑K2.6, MiniMax‑M2.7, Molmo‑8B, Qwen3‑Coder‑Next, plus descriptions for GLM‑5.1, Gemma 4, Qwen 3.5 medium, etc.
Bugfixes
- Respect
USE_USER_TOKENin OpenAI endpoint (#2187) sameSitecookie default now followssecureflag — fixes HTTP deployments (#2249)- Defer to router for model tool/multimodal capability on HuggingChat (#2251)
- DNS-level SSRF protection on MCP endpoints (#2195)
- Abort streaming immediately on stop; preserve partial output; treat
APIUserAbortErrorcorrectly - Re-apply interrupted flag after
invalidateAllon abort; fix stale UUID errors - Fix
</think>tag leaking in MCP tool flow for reasoning models - Skip empty prose wrapper before tool blocks; truncate long tool names on one line
- Off-by-one in spacer activation + tighter scroll threshold
- iOS Safari: collapsed thinking blocks no longer take full height
- Safari: line-clamp applied to reasoning toggle button
- Default value for
PUBLIC_APP_ASSETSprevents undefined asset paths - Tools/multimodal toggles fall back to model capability
Performance & infrastructure
- Optimize conversation stats aggregation (#2079)
- Add MongoDB missing indexes; MongoDB read preference support (#2090)
MONGODB-AWSauth (#2200)- Refactor: native SvelteKit API routes (replace Elysia)
- Extract conversation write path into service + projector (§2)
- Bump deps: svelte, kit, ajv, devalue, hono, qs, uuid, fast-uri, MCP SDK 1.25.2, undici, etc.
Other changes
- Dark-mode grays switched to high-contrast neutral palette; numerous style tweaks (nav, badge, tool chips, model settings header, mobile header)
- Theme button group replaced with a select dropdown in settings
- Markdown rendering refresh; shimmer on active labels; refined tool detail visuals
- Switch default multimodal model to
zai-org/GLM-4.6V; switch task model toLlama-3.1-8B-Instruct - Drop final streaming mode from settings; remove dead code & stale metrics
Generated locally — not committed, not tagged, not published. To publish:
gh release create v0.10.0 --title "v0.10.0" --notes-file release-notes-v0.10.0.md
# or, to use GitHub's auto-generated notes from .github/release.yml:
gh release create v0.10.0 --generate-notes