Release v0.19.10
Highlights
- Multi-workspace support now spans ACP transport, daemon workers, split-view sessions, and workspace-aware actions. (#6621, #6635, #6746, #6724)
- Web Shell gains an artifact panel, a modernized sidebar and settings experience, and editable user-level model configuration. (#6591, #6804, #6817, #6768)
- Session and model recovery is more resilient to malformed streams, leaked protocol turns, OAuth expiry, and daemon restarts. (#6794, #6683, #6732, #6680)
- Subagents are easier to follow with richer live command context, transcript paths, a chronological timeline, and inherited Explore models. (#6580, #6772, #6807)
- CLI workflows gain project-scoped prompt stashes, visible Git branches, configurable shell timeouts, and safer memory-pressure handling. (#6709, #6725, #6628, #6682)
- SDK and daemon integrations can now control effort, models, usage, context, transport options, and runtime channels. (#6492, #6491, #6741)
Breaking Changes
No known breaking changes.
Complete Change List
Features
- SDK-hosted agents now forward user answers from ask_user_question tool approvals back to the model, enabling interactive question flows in TypeScript and Python SDK integrations. (#6655) by @TianYuan1024
- DingTalk channels can now optionally mention group message senders in bot replies using visible @ tokens, with Markdown rendering preserved for replies without mentions. (#6679) by @qqqys
- Web shell now includes a right-side review panel for inspecting edited files, artifacts, and scheduled tasks with diffs, file navigation, and session-scoped tabs. (#6591) by @ytahdn
- Daemon now supports workspace-qualified ACP endpoints, allowing SDK and web shell clients to open sessions scoped to specific workspaces in multi-workspace deployments. (#6621) by @doudouOUC
- Adds a composer header render slot and an opt-in mobile welcome footer placement so embedders can show custom content above the composer on small screens. (#6584) by @yuanyuanAli
- Adds SDK methods to control reasoning effort, list available models, and query account and context usage statistics at runtime. (#6492) by @juhuan
- Expanding thinking blocks with Alt+T during streaming now displays the full reasoning content in real-time instead of a truncated preview. (#6678) by @huww98
- Scheduled task prompts now support inline extension, skill, and MCP reference tags via floating pickers that serialize cleanly into the saved prompt text. (#6589) by @BZ-D
- Pressing Ctrl+S with a non-empty prompt now stashes it for the current project and restores it on the next launch, clearing the stash upon submission. (#6709) by @destire-mio
- Session recovery now uses a unified plan across all entrypoints, consistently handling interrupted prompts, dangling tool calls, and degraded history. (#6731) by @water-in-stone
- Subagent views now show untruncated live commands, deeper progress history, execution transcript paths, and recent tool context on inline approvals. (#6580) by @TianYuan1024
- The qwen serve daemon can now host channel workers for multiple trusted workspaces, binding each worker to its respective workspace directory. (#6635) by @doudouOUC
- A new MessageDisplay hook fires incrementally during assistant streaming, allowing observers to track reply text before the turn completes. (#6489) by @yanchenko
- Double-clicking a cell in a rendered Markdown table now opens a dialog with the full cell value for easy reading and copying. (#6530) by @jifeng
- The daemon now exposes read-only session catalogs for untrusted workspaces, letting clients browse sessions without write access. (#6717) by @doudouOUC
- Workspace registrations added at runtime are now persisted so they survive daemon restarts without manual reconfiguration. (#6716) by @doudouOUC
- User messages in the web shell now render extension, skill, and MCP reference tags inline, matching the composer preview. (#6537) by @ever-o
- Channel workers now reconnect automatically when the daemon restarts, restoring DingTalk and Feishu sessions without manual intervention. (#6680) by @qqqys
- The composer toolbar now displays the current Git branch as a chip so you always know which branch you're working on. (#6725) by @han-dreamer
- Foreground shell commands now respect a configurable default timeout, preventing long-running commands from blocking indefinitely. (#6628) by @Nas01010101
- Both the TypeScript and Python SDKs now expose transport selection and query options for finer control over daemon communication. (#6491) by @juhuan
- The web shell session sidebar is now configurable, letting embedders choose which session metadata and actions to display. (#6750) by @dreamWB
- Workspace transcript reader now provides persisted conversation history per workspace for server-side session browsing. (#6740) by @doudouOUC
- Session groups in the web shell now support custom Hex color codes for easier visual organization. (#6752) by @samuelhsin
- The composer model selector has been redesigned with clearer model metadata and faster switching. (#6758) by @dreamWB
- Code review now includes procedural correctness checks, adjustable effort levels, and guardrails that verify findings before posting. (#6711) by @wenshao
- Multi-workspace split view now supports cross-workspace sessions, workspace labels, and a responsive layout for side-by-side editing. (#6746) by @wenshao
- Scheduled tasks from all workspaces are now aggregated into a single view in the web shell for easier monitoring. (#6759) by @wenshao
- The composer now accepts custom placeholder text, allowing embedders to show context-specific prompts to users. (#6765) by @dreamWB
- Release notes are now drafted with AI assistance, summarizing changes from the full commit range into categorized, user-facing bullets. (#6756) by @yiliang114
- Web shell now ships a shadcn-based UI foundation with consistent design tokens and accessible component primitives. (#6760) by @ytahdn
- Sub-agent activity is now shown as a chronological transcript with a parallel-agent timeline for easier multi-task inspection. (#6772) by @wenshao
- The CLI can now start, stop, and list daemon channel workers at runtime without restarting the daemon process. (#6741) by @doudouOUC
- Persisted conversation transcripts are now bounded to prevent unbounded disk growth. (#6769) by @doudouOUC
- Web shell fires a callback when a new session is created, enabling custom integrations. (#6703) by @ytahdn
- Skill installation paths are now exposed so users can see where skills are stored. (#6811) by @callmeYe
- Multi-workspace sidebar redesigned with a cleaner, more modern layout. (#6804) by @ytahdn
- Settings page refreshed with a modern component library for a polished look and feel. (#6817) by @ytahdn
- User-scope settings can now be edited directly in the panel, with in-panel model management. (#6768) by @wenshao
- Rewind and shell actions now work across multiple workspaces. (#6826) by @doudouOUC
- Workspaces can now be removed at runtime without restarting the server. (#6745) by @doudouOUC
- Code review now captures untracked files, resolves anchors from snippets, and gates posting in code. (#6771) by @wenshao
- PR triage comments now include a confidence score, sequence diagram, files overview, and review footer. (#6789) by @wenshao
- Explore subagent now inherits the main model by default instead of using a fixed smaller model. (#6807) by @tanzhenxin
- Daemon status now reports model API error counts and retry metrics. (#6837) by @wenshao
- New API endpoint lets you toggle workspace skills programmatically. (#6816) by @callmeYe
- Added xAI Grok as a built-in model provider preset. (#6805) by @TianYuan1024
- Extension management upgraded to v2 with improved install, update, and removal flows. (#6825) by @doudouOUC
- Voice input is now qualified per workspace for better multi-workspace support. (#6839) by @doudouOUC
- Session export is now workspace-qualified so exports stay organized across workspaces. (#6844) by @doudouOUC
- Markdown tables in web shell now show row, column, and cell selection statistics. (#6838) by @jifeng
Bug Fixes
- YOLO approval mode is no longer silently disabled when the model enters plan mode. (#6630) by @Nas01010101
- Approval mode UI labels and notices are now localized, preventing mixed-language output when cycling modes with Shift+Tab in non-English interfaces. (#6592) by @han-dreamer
- Channel delivery now filters out nested subagent output, preventing intermediate research reports from being sent to messaging platforms before the root agent's final answer. (#6696) by @qqqys
- Raised prepared npm package size limit from 80 MB to 96 MB to accommodate natural growth and unblock Docker sandbox builds. (#6691) by @qwen-code-dev-bot
- Fixed Docker sandbox networking for protocol tag retry tests, enabling CLI to reach test servers via host.docker.internal when running in container sandbox mode. (#6692) by @qwen-code-dev-bot
- Fixed cursor position being incorrectly overridden when set to the start of a line in VS Code. (#2971) by @chinesepowered
- Fixes out-of-memory crashes on exit during long interactive sessions by running periodic memory-pressure checks even when no tool calls occur. (#6682) by @yiliang114
- Reduces token usage in mobile UI dumps by stripping bounds attributes with negative coordinates for partially off-screen elements. (#6624) by @chinesepowered
- Fixes leaked protocol tags in responses by discarding and retrying invalid assistant turns during max-token escalation and continuation recovery. (#6683) by @yiliang114
- Updates test expectations to match the new automated PR review workflow timeout values, resolving continuous integration failures. (#6720) by @yiliang114
- Improves plan mode reliability by returning a clear error response when non-read-only tools are blocked, preventing the model from attempting workarounds. (#6667) by @Alex-ai-future
- Adds an Approve button to the /mcp server detail view, allowing users to approve pending or previously rejected workspace servers. (#6518) by @LaZzyMan
- Fixes remote MCP connection failures by preserving URL query parameters and fragments that end with a trailing slash during normalization. (#6587) by @VectorPeak
- Fixes subagent startup failures by restricting template placeholders to valid identifiers, treating numeric patterns like ${0} as literal text. (#6672) by @ksws00684315
- When running as an ACP agent, the user's typed instruction is now placed after attached file content so models prioritize the actual request. (#6607) by @kaymeer
- The ACP readTextFile fallback now rejects fractional line and limit values, returning consistent invalid parameter errors for malformed read windows. (#6704) by @VectorPeak
- The Add Workspace dialog now respects light and dark themes, and multi-workspace session lists restore full row features and per-session actions. (#6705) by @wenshao
- DingTalk Stream connections are now treated as ready when the socket is open, preventing healthy sessions from being disconnected due to missing registration frames. (#6715) by @qqqys
- Trusted non-primary workspaces can now update session pin, group, and color state via a new workspace-scoped organization endpoint. (#6724) by @doudouOUC
- Claude Opus 4.6, 4.7, and 4.8 models now default to a 1M context window and 128K output limit, preventing premature compaction. (#6718) by @yiliang114
- Clipboard image pasting now works correctly in standalone desktop builds. (#6708) by @zjunothing
- Saved memory instructions are now refreshed immediately after using the remember command. (#6497) by @han-dreamer
- Goal evaluation is now lifecycle-safe, preventing errors during session teardown. (#6681) by @qqqys
- Managed memory entries are now preserved during microcompaction instead of being dropped. (#6714) by @yiliang114
- Claude output token limits now use decimal values for more accurate context budgeting. (#6735) by @yiliang114
- Model and approval-mode changes now apply correctly to non-primary workspace sessions in the web shell. (#6737) by @wenshao
- The agent no longer crashes when receiving repeated invalid model streams and recovers gracefully. (#6712) by @yiliang114
- OAuth authentication for MCP servers now recovers automatically after an HTTP 401 response. (#6732) by @yiliang114
- Inline tag tooltips in the web shell no longer appear as duplicates. (#6729) by @dreamWB
- Goal judge verdicts now ignore reasoning content and evaluate only the final answer. (#6738) by @qqqys
- The Scheduled Tasks dialog now shows correct tag icons instead of stale references. (#6748) by @wenshao
- The Git branch chip in the composer no longer pushes toolbar controls off-screen on narrow windows. (#6753) by @wenshao
- Chat recording failures are now persisted and surfaced to the user instead of failing silently. (#6743) by @doudouOUC
- Malformed streamed responses from the model are now retried automatically. (#6754) by @yiliang114
- When plan mode blocks write actions the agent is guided to use read-only tools instead of stopping. (#6764) by @Alex-ai-future
- Feishu credentials are now validated before starting the WebSocket connection, preventing silent failures. (#6780) by @BenGuanRan
- Desktop release notes are now truncated to avoid oversized payloads in CI. (#6792) by @DragonnZhang
- Session actions are now routed to the correct owning workspace in multi-workspace setups. (#6798) by @doudouOUC
- The web UI now links to the workspace-local SDK package, unblocking SDK publishing. (#6823) by @qwen-code-dev-bot
- Code review no longer drops live blockers and now verifies that new tests actually gate the changed code. (#6790) by @wenshao
- Slash-command output in channels is now visually distinguished from regular messages. (#6818) by @qqqys
- Packaged dialog styles are restored under React 18 in the web shell. (#6827) by @ytahdn
- Reasoning duration displays now show more accurate and refined timing information. (#6793) by @tanzhenxin
- Session continue, language selection, and artifact actions are now routed to the correct workspace owner. (#6833) by @doudouOUC
- LRU cache entries are now correctly reordered on access even when the stored value is falsy. (#6787) by @chinesepowered
- The latest-active timestamp for sessions is now computed from the real activity time, not the current wall clock. (#6834) by @chinesepowered
- Rewrites queued while waiting for pending rewrites to finish are now fully drained before proceeding. (#6800) by @chinesepowered
- The LLM rewriter now limits its output history to the configured context turn window. (#6799) by @chinesepowered
- Only a trailing .git suffix is stripped from GitHub repo names, preserving internal .git segments. (#6797) by @chinesepowered
- Dotfiles such as .eslintrc are now detected and assigned the correct language from their file path. (#6785) by @chinesepowered
- Fixed a security issue where angle brackets in insight report data could break out of script contexts. (#6802) by @chinesepowered
- Review chunk agents now receive properly constructed prompts so they no longer run without context. (#6840) by @wenshao
- Reintroduced retry logic for malformed streaming responses with more precise detection to avoid false positives. (#6794) by @yiliang114
- Review coverage is now verified using the test harness's own records for accurate results. (#6843) by @wenshao
- Increased the browser daemon bundle size limit to 156 KB to accommodate larger builds. (#6852) by @qwen-code-dev-bot
Performance
- Improved startup performance by lazy-loading the tree-sitter parser runtime. (#6747) by @dexhunter
- Reduced the number of Git snapshot processes spawned during sessions for better performance. (#6784) by @dexhunter
Documentation
- Development workflow now includes a bounded self-audit step between build and review, requiring authors to verify changes with full context before declaring work complete. (#6685) by @wenshao
- Corrected inaccurate token limit comment and fixed typos in core package code comments with no behavior changes. (#6698) by @chinesepowered
Internal Changes
- Increases the default automated PR review timeout to 180 minutes and allows overrides up to 240 minutes to prevent timeouts on large pull requests. (#6706) by @wenshao
- Removed obsolete DingTalk planning integration artifacts. (#6722) by @qqqys
- Reverted the malformed streamed response retry logic due to issues. (#6783) by @wenshao
- Stabilized end-to-end test cases for tool control and subagent scenarios. (#6803) by @yiliang114
- Removed a flaky headless child-process recording test. (#6830) by @yiliang114
- Review test-efficacy probes now run in isolated disposable worktrees. (#6836) by @wenshao
- Shared a common worktree path helper across review probes and improved stale worktree cleanup. (#6841) by @wenshao
New Contributors
- @juhuan made their first contribution in #6492
- @ksws00684315 made their first contribution in #6672
- @kaymeer made their first contribution in #6607
- @destire-mio made their first contribution in #6709
- @yanchenko made their first contribution in #6489
- @ever-o made their first contribution in #6537
Full Changelog: v0.19.9...v0.19.10