What's Changed
✨ Added
Console
- Models Page Overhaul: Provider Aggregation, Unified Card UI & Layout Redesign (#5203)
- Simple Mode: Add simple mode with flat nav and sorted session list by updated time (#5222)
- Wide Mode Toggle: Add wide mode toggle for expanded chat layout (#5212)
- Per-Turn Token Usage: Add per-turn token and context usage popover (#5130)
- User Input Queue: Add user input queue (#5158)
- Session Filter by Title: Add session filter by title (#5178)
- Syntax Highlighting: Add syntax highlighting for code blocks across all views (#5219)
- Vietnamese Language: Add complete Vietnamese (vi) interface language support (#5186)
- Fallback Message: Show fallback message when response output is empty (#5232)
Skills
- Skill Market Update: Update skill-market, include QwenPaw platform, improve UI (#5123)
- Skill Slash Inject: Improve skill-slash-inject and display (#5146)
Channels
- Yuanbao Quoted Messages: Support quoted messages and unify media download pipeline (#5160)
- Yuanbao Bot Filtering: Add bot message filtering and environment variable support (#5150)
- Non-blocking Flush: Non-blocking flush with adaptive throttling for all channels (#5215)
- DingTalk Liveness Watchdog: Add liveness watchdog to recover stream after system sleep (#5224)
Desktop
- Port Persistence: Persist backend port across restarts to preserve localStorage (#5051)
- Port Config: Desktop port configuration support (#5272)
Files
- File Preview: Improve file preview error handling and use FileResponse (#5115)
CI
- Release Verification Gate: Add release verification gate between build and publish (#5121)
Observability
- Langfuse Agent Loop: Group langfuse observations by agent loop (#5128)
🔄 Changed
- Request Payload Transforms: Request payload transforms (#5188)
- Memory Search Style: Refactor the result style of the memory search tool (#5154)
- Xiaoyi Dual WebSocket: Refactor connection to dual WebSocket & fix unusable channel (#5274)
- Calendar Date Grouping: Use calendar dates for session list date grouping (#5257)
🐛 Fixed
Security
- Keychain Master Key: Isolate keychain master key per install (#5028)
Desktop
- Windows Console Crash: Guard against Windows console crash and self-kill commands (#5192)
- Tauri Windows CI: Harden Tauri Windows CI against crates.io fetch failures (#5125)
- Plugin Dependency: Repair plugin dependency installs in Tauri sidecar (#5260)
- Session Filename: Resolve session filename duplication and Desktop inter-agent call failures (#5036)
Console
- Session Redirection: Fixed session redirection when switching code mode (#5147)
- Collapse Panel Render: Force render Collapse panels to prevent memory config loss (#5144)
- Approval Command Overflow: Wrap approval command text with word-break to prevent horizontal overflow (#5176)
- Tool Card Loading: Tool card loading spinner for shell commands and unregistered tools (#5141)
- Browser Autocomplete: Disable browser autocomplete on provider search input (#5112)
- Dream Cron: Keep empty dream_cron empty to disable dream job (#5256)
Providers & Config
- Local Providers in PRO Tab: Show local providers (ollama/lmstudio) in PRO tab of ModelSelector (#5113)
- Deep Copy Cache: Ensure deep copy of cached agent configurations (#5229)
Context & Agent
- Empty Msg Guard: Guard empty msg list in LightContextManager.pre_reply (#5038)
- Mission Crash: Prevent agent crash on corrupted loop_config.json / prd.json (#5000)
Local Models
- Llama.cpp Version: Parse llama.cpp server version without fixed-width slice (#5035)
MCP
- OAuth IndexError: Avoid IndexError on empty authorization_servers in OAuth discovery (#5194)
Memory
- Chromadb Async Probe: Add async runtime probe for chromadb Rust bindings (#5271)
Gemini
- Tool Schema Sanitize: Sanitize tool schemas to prevent 400 INVALID_ARGUMENT on function calling (#5226)
Tools
- Raw Decode: Use raw_decode to silence spurious "Extra data" warnings on no-param tool calls (#5220)
- Title Generation: Use formatter for title generation and skill optimization to support all model providers (#5228)
Install
- Stable PyPI Default: Default to stable PyPI releases only (#5269)
Pack
- OpenSSL Pin: Pin openssl<3.5.7 to fix desktop startup failure (#5100)
⚡ Performance
- Remove Unnecessary Copy: Remove unnecessary deep copy operations in agent config (#5240)
🏗️ Infrastructure
- Release Duty Checklist: Chore release duty checklist (#5105)
- Tool Card Title Truncate: Truncate tool card titles to single line with ellipsis (#5119)
- Datapaw Agent Menu: Refresh Datapaw agent menu on agent switch (#5114)
🧪 Testing
- Sprint 2.4 Tests: Add Sprint 2.4 cron execution and tool API tests (#5201)
📖 Docs
- Vietnamese README: Add Vietnamese README (README_vi.md) (#5245)
- Roadmap Update: Update roadmap (#5277)
New Contributors
- @ly-wang19 made their first contribution in #5038
- @biencuong made their first contribution in #5186
- @nguyenthanhthe made their first contribution in #5178
- @totoyang made their first contribution in #5128
Full Changelog: v1.1.11...v1.1.12