What's Changed
- fix(serve): preserve session creation failure diagnostics by @callmeYe in #12331
- feat(sdk-java): Add managed runtime attestation client by @doudouOUC in #12522
- feat(web-shell): select a time range on the trajectory overview to narrow the table by @qqqys in #12543
- feat(serve,web-shell): set the Qwen Live endpoint and model from settings by @qqqys in #12529
- feat(channels): separate private and group access policies by @qqqys in #12547
- fix(core): bound oversized images returned by MCP tools by @yiliang114 in #10835
- feat(serve): run Qwen Live through the Web Shell, native macOS Host opt-in by @qqqys in #12534
- feat(web-shell): search within the current conversation by @samuelhsin in #12234
- perf(serve): use catalog for workspace extension activation projection by @callmeYe in #12541
- fix(core): decide MCP media handling from the bytes, not the label by @yiliang114 in #12567
- fix(core): read a backslash inside single quotes as literal when splitting by @TianYuan1024 in #11765
- perf(web-shell): derive the session workflow projection once and share it across surfaces (#10865) by @now-ing in #11237
- fix(skills): reload changed content after refresh by @jkxiao in #12182
- feat(web-shell): add host controls for model management by @Lilian0122 in #12345
- fix(cli): keep CoreToolScheduler stable across callback identity changes by @kabishou11 in #12069
- fix(web-shell): make mobile access opt-in and simplify split composer by @ytahdn in #12537
- test(cli): yield the event loop between base-tree tests by @wenshao in #12573
- feat(browser-use): make the bundled runtime self-contained by @tanzhenxin in #12548
- fix(cli): keep 64-bit file ids exact in the two identity comparators by @yiliang114 in #12568
- fix(cli): keep plan-identity guards exact for 64-bit file ids by @yiliang114 in #12577
- fix(java): Deliver broker cancellation after a dispatch lease lapses by @wenshao in #12583
- feat(web-shell): zoom and pan the trajectory overview by @qqqys in #12557
- fix(core): label each reattached image so older ones are not read as current by @yiliang114 in #12549
- feat(review): audit the applied --fix for unpinned new assumptions by @wenshao in #10169
- feat(channels): route messages to prefix-specific sessions by @qqqys in #12595
- fix(java): Fence lapsed tool executions by the repository clock by @wenshao in #12608
- feat(web-shell): show the trajectory over real time, idle included by @qqqys in #12607
- fix(review): correct what the fix audit tells its reader by @wenshao in #12610
- fix(serve): report serve.channels restore failures in channel status by @qqqys in #12542
- test(review): drive the fix-audit build through the yargs command by @wenshao in #12614
- feat(sdk-java): Adopt a Managed Runtime only after attestation by @doudouOUC in #12552
- feat(web-shell): inspect session tool calls by prompt by @ytahdn in #12466
- feat(web-shell): support selective host artifact integration by @dreamWB in #12588
- fix(web-shell): stop rendering empty args and input JSON in tool cards by @yiliang114 in #12601
- feat(live): stream shared screens into browser voice calls by @qqqys in #12623
- docs(extensions): cover workflow reload and add Chinese design by @BlackishGreen33 in #12625
- fix(core): cover every commit spelling and the promoted path in session-commit registration by @yiliang114 in #12556
- feat(desktop): add QWEN_DESKTOP_DISABLE_UPDATES opt-out for the startup update check by @yiliang114 in #12587
- perf(cli): stop one-shot runs from booting the CLI twice by @yiliang114 in #12602
- perf(cli): skip interactive-only probes on headless startup by @yiliang114 in #12603
- docs: fix /clear description, .qwen note, and outdated CLI name by @yc2bgr8 in #12555
- docs(conversations-recovery): document non-graceful ACP writer recovery by @dvd233 in #12268
- docs: fix comments and JSDoc that contradict the actual code by @sxh313 in #11950
- fix(cli): honor the usage-statistics opt-out under --bare by @yiliang114 in #12604
- fix(ci): trust the job workspace as a git safe.directory before checkout by @yiliang114 in #12648
- test(review): add hard-link witness test to save-artifact overwrite guard (#12578) by @holny in #12581
- test(java): make the local-process provisioner tests deterministic by @wenshao in #12639
- feat(review): record per-file content verdicts that survive a rebase by @wenshao in #9661
- feat(web-shell): manage the repository's worktrees from the git dialog by @wenshao in #12154
- docs(tools): add Firecrawl to the web search MCP services by @JuampiHernandez in #12646
- feat(sdk-java): Add the Hosted Harness private client by @doudouOUC in #12654
- test(java): pin runtime-broker guards left open in earlier reviews by @wenshao in #12632
- feat(java): Reconcile UNKNOWN tool executions from Runtime evidence by @wenshao in #12655
- test(cli): pin the managed-runtime worker's boot, bind and shutdown guards by @wenshao in #12633
- fix(review): persist the local findings ledger when a round cannot anchor by @wenshao in #12660
- fix(core): Preserve Claude thinking across tool turns by @pomelo-nwu in #12621
- feat(cli): Declare the v2 execute/status/cancel Managed Runtime contract by @doudouOUC in #12630
- fix(cli): keep one-shot system-reminder prefixes out of shell mode by @yiliang114 in #12605
- feat(sdk-java): Reconcile and adopt restored Runtime bindings by @doudouOUC in #12627
- fix(standalone): pin @lydell/node-pty-linux-arm64 and fail release on missing prebuilds by @yiliang114 in #12649
- feat(cli): list managed Agent View sessions in qwen sessions ps by @yiliang114 in #10942
- fix(web-shell): fall back to a plain draft for New task in a Live chat without a draft target by @yiliang114 in #12626
- chore(desktop): rename packages/desktop-shell to packages/desktop by @yiliang114 in #12653
- test(java): wait for a renewal at the advanced time in lease renewal tests by @wenshao in #12656
- fix(cli): resolve npm's global config when npm refuses to print it by @tanzhenxin in #12675
- feat(scripts): check in the startup benchmark harness by @tanzhenxin in #12674
- fix(web-shell): allow deleting the current session from sidebar and picker by @yiliang114 in #12636
- fix(core): keep the deferred-tool bridge halves on the same tool by @yiliang114 in #12539
- feat(sdk-java): Add the v2 tool operations to the runtime transport by @doudouOUC in #12637
- feat: add native advisor tool by @ZijianZhang989 in #9636
- feat(sdk-java): Add the W0a Managed Workspace binding contract by @wenshao in #12681
- perf(cli): keep running in place when env files only hold model credentials by @tanzhenxin in #12680
- feat(cli): Mount the v2 tool operations on the Managed Runtime worker by @doudouOUC in #12671
- perf(cli): halve fresh-startup time to typeable and cut RSS by 60% by @tanzhenxin in #12622
- fix(cli): make the Agent Team teammate tab transcript scrollable in VP mode by @yiliang114 in #9531
- fix(cli): restore ripgrep exec bit on managed npm update activation by @yiliang114 in #12673
- fix(cli): notify when the Linux clipboard tool is found but its query fails by @yiliang114 in #12666
- fix(core): rank PreToolUse permissionDecision most-restrictive in hook aggregation by @yiliang114 in #12689
- perf(serve): coalesce in-flight extension status loads by @callmeYe in #12638
- feat(cli): Define the managed-context/1 envelope contract by @wenshao in #12700
- feat(serve): add guarded Hosted Runtime foundations by @doudouOUC in #12691
- feat(managed-agent): Spring control plane and dual-path WebShell by @doudouOUC in #12692
- feat(serve): support model and reasoning selection at session creation by @callmeYe in #12308
- feat(core): Durable Managed Session journal and failover by @doudouOUC in #12693
- fix(cli): close the deferred /context accounting follow-ups by @yiliang114 in #12540
- fix(core): deduplicate system prompt guidance in a second pass by @doudouOUC in #12546
- feat(cli): agent-prepared Batch API workflow (/batch-api) by @yiliang114 in #12492
- feat: complete Advisor consultation behavior and usage limits by @yiliang114 in #12688
- test(cli): Close the fixture gaps deferred from managed-context/1 by @wenshao in #12712
- fix(mcp): preserve registration URL from header discovery by @dvd233 in #12205
- feat(managed-agent): admit workspace-bound sessions without execution by @doudouOUC in #12709
- feat(cli): Run Managed Runtime tools in the Session's Workspace directory by @wenshao in #12732
- feat(acp-bridge): route sessions across legacy and managed engines by @wenshao in #12698
- feat(serve): Enable private Hosted Harness no-tool text turns by @doudouOUC in #12713
- fix(core): consult system code page before chardet for non-UTF-8 output by @yiliang114 in #12731
- fix(core): treat EHOSTUNREACH/ENETUNREACH as connection-level in web_fetch https-upgrade fallback by @yiliang114 in #12705
- feat(managed-agent): Define the managed-tool-result/1 contract (O1a) by @wenshao in #12729
- fix(cli): pass the post-update relaunch command line to cmd verbatim by @yiliang114 in #12694
- fix(core): tolerate the win32 directory-sync refusal in managed session resources by @yiliang114 in #12718
- fix(core): prioritize registered prefixes in tool suggestions by @yc2bgr8 in #12743
- test(managed-agent): add Hosted no-tool process gates by @wenshao in #12733
- feat(acp-bridge): back paired engine selection with session owners and typed rejections by @wenshao in #12746
- fix(cli): Close the W0c-1 worker follow-ups before boot v2 is enabled by @wenshao in #12747
- fix(serve): Restore transcript reads for standalone sessions by @qqqys in #12615
- fix(serve): close review follow-ups for paired engine owners by @wenshao in #12750
- fix(serve): Settle hosted turns after transient read failures by @doudouOUC in #12742
- feat(runtime-broker): install managed Workspace contexts (W0c-2) by @doudouOUC in #12730
- feat(web-shell): prepare updates and restart from sidebar by @wenshao in #12734
- fix(serve): keep ACP child error messages and standalone conflicts intact by @wenshao in #12753
- test(core): Close the compile-cache test and doc gaps deferred from #12747 by @wenshao in #12759
- test(runtime-broker): Add Stage F multi-process fault gates for the tool path by @wenshao in #12752
- fix(extensions): reject http archive URLs with an actionable error instead of attempting a git clone by @liwenjie200543 in #12697
- fix(cli): report batch task records that list cannot read by @yiliang114 in #12741
- fix(web-shell): clear scrollbar-gutter in collapsed sidebar rail (#12453) by @holny in #12652
- feat(memory): extract structured scan and bounded retrieval by @yiliang114 in #12726
- fix(core,cli): stop stale-worktree sweep from destroying git-ignored content by @yiliang114 in #12763
- fix(serve): stop validating load-only restore fields on resume by @yiliang114 in #12768
- fix(core): keep stale-worktree sweep from deleting untracked files by @yiliang114 in #12739
- fix(ci): gate the E2E pool leg on a disk floor (#12764) by @qwen-code-dev-bot in #12769
- fix(cli): surface real /update errors and self-heal stale pending swap by @yiliang114 in #12755
- fix(desktop): identify missing node-pty pin by @barry166 in #12684
- fix(vscode-ide-companion): hold the edit send until the rewind lands in the transcript by @yar3333 in #12711
- fix(core): Log a failing schema's own error and close the compile-cache gaps by @wenshao in #12777
- feat(acp-bridge): give each paired channel its own workspace runtime identity by @wenshao in #12776
- feat(managed-agent): wire private Workspace execution (W0c-3) by @doudouOUC in #12754
- feat(web-shell): expose BTW in the composer add menu by @wenshao in #12775
- test(integration): Name the request in hosted session store failures by @wenshao in #12786
- fix(runtime-broker): read attestation integers exactly by @wenshao in #12774
- fix(core): deduplicate todo guidance and compress comment rule in a third prompt pass by @doudouOUC in #12784
- fix(core): preserve MCP status for optional -32601 responses by @dvd233 in #12500
- fix(core): recognize sed quiet aliases as read-only by @dvd233 in #12221
- fix(acp-bridge): drop oversized notifications instead of tearing down the channel by @kabishou11 in #11925
- fix(web-shell): complete zh-CN translations for the settings panel by @doudouOUC in #12783
- fix(hooks): key enabled state by name, not identity by @PratikWayase in #11965
- feat(mobile): support scoped native document selection (Phase 2) by @jabrailkhalil in #12126
- feat(core): add local managed tool-result segment store by @doudouOUC in #12767
- feat(acp-bridge): recover quarantined paired channels and operate per engine by @wenshao in #12795
- test(managed-agent): gate tool-driven failover E2E modes on Hosted no-tool slice by @yiliang114 in #12801
- fix(core): classify multi-address connect failures by any attempt, not the first by @yiliang114 in #12794
- fix(sdk-java): reject unreadable decimal scales by @yc2bgr8 in #12798
- test(runtime-broker): Add Stage F fault gates for W0c context installation by @wenshao in #12804
- fix(cli): preserve source identity in session exports by @banned2054 in #12118
- test(serve): tolerate workspace_runtime_stop envelope skew in capabilities baseline (#12490) by @qwen-code-dev-bot in #12494
- test(cli): Split the W0c-3 release test so Windows skips only the rename by @wenshao in #12815
- feat(acp-bridge): deliver workspace changes to every paired engine by @wenshao in #12807
- fix(ci): retry the helper-tests step once against pool contention (#12772) by @qwen-code-dev-bot in #12780
- fix(cli): report completion for saved workflow slash commands by @destire-mio in #12415
- docs(design): specify paired engine host wiring for B2d by @wenshao in #12771
- feat(managed-agent): Add the public API contract and contract tests by @wenshao in #12808
- fix(mcp): Support larger Apps, scoped tool calls and isolated origins by @samuelhsin in #12258
- fix(managed-agent): Align Flyway Runtime tables with the Broker schema by @wenshao in #12816
- test(managed-agent): Make the Hosted no-tool gate assertions falsifiable by @wenshao in #12819
- test(cli): Run the W0c-3 directory-loss test under Git Bash on Windows by @wenshao in #12818
- fix(cli): let an aged .deferred marker escape the update-still-applying block by @yiliang114 in #12810
- feat(cli): add /commit slash command with AI-drafted commit messages by @yiliang114 in #10586
- feat(web-shell): support optional worktrees for branch sessions by @water-in-stone in #11816
- fix(acp-bridge): close review follow-ups for paired quarantine recovery by @wenshao in #12811
- test(sdk-java): close the connection on Hosted Harness no-content responses by @wenshao in #12824
- fix(cli): require proof of death before deleting a staged swap by @yiliang114 in #12787
- feat(web-shell): Select and bind managed Workspaces by @doudouOUC in #12797
- feat(core): Capture foreground Managed Shell results with local receipts by @doudouOUC in #12821
- fix(sdk-java): preserve configured JDBC lease duration by @yc2bgr8 in #12788
- chore(sdk-java): align fastjson2 version to 2.0.65 by @wenshao in #12836
- perf(core): trim restated tool guidance and budget the resident tool surface by @yiliang114 in #12532
- feat(managed-agent): Implement the Session query contract (Stage D2) by @wenshao in #12822
- test(acp-bridge): pin the background drain ownership middle term and the backgroundTurn busy guards by @Oscar-Williams in #12250
- feat(memory): extract metadata migration and writer compatibility by @yiliang114 in #12757
- fix(cli): restore sessions in selected workspace runtime by @XIQIXIQIXIQI in #9050
- feat(managed-agent): Define the managed-extension-record/1 contract (H0b) by @wenshao in #12837
- feat(serve): wire paired execution engines into ordinary hosts behind an opt-in by @wenshao in #12828
- feat(managed-agent): Add the planned Stage H task contract (H0a) by @wenshao in #12830
- docs(tools): sync shell.md with the shipped run_shell_command contract by @yiliang114 in #12841
- fix(web-shell): complete skill toggle feedback and controls by @BlackishGreen33 in #12641
- feat(managed-agent): Implement event replay (Stage D3) by @wenshao in #12840
- feat(serve): add gated Hosted Workspace file tool turns by @doudouOUC in #12831
- fix(web-shell): defer React root unmount in chip destroy out of the CodeMirror update cycle by @yiliang114 in #12834
- feat(managed-agent): Design the ordinary-host Managed engine and close its preconditions (M1) by @wenshao in #12861
- test(managed-agent): Close deferred H0b record contract follow-ups by @wenshao in #12863
- test(managed-agent): Close the deferred Hosted no-tool gate follow-ups by @wenshao in #12864
- feat(desktop): add a linux-aarch64 leg to the Desktop release matrix by @yiliang114 in #12833
- fix(node-repl): widen the bounded-cancellation test margin under runner load by @yiliang114 in #12884
- test(managed-agent): Add FG6a Hosted Broker reply-loss gates by @wenshao in #12873
- test(integration): give the ACP model round trip its own request budget by @yiliang114 in #12885
- fix(acp): disable LSP for MCP discovery config by @dvd233 in #12256
- feat(managed-agent): Add the strict configuration snapshot and Managed compatibility evaluation (M3) by @wenshao in #12883
- test(managed-agent): add FG6b Session Store failure gates by @wenshao in #12888
- feat(managed-agent): Add W0e terminal recovery fences by @doudouOUC in #12839
- feat(managed-agent): Make Session close, archive and delete durable operations (Stage D4) by @wenshao in #12881
- fix(core): preserve memory read-limit signal on replay by @yc2bgr8 in #12893
- fix(web-shell): inset docked right panel below the macOS titlebar drag region by @yiliang114 in #12876
- fix(core): restore the vendored ripgrep exec bit at resolution time by @yiliang114 in #12892
- fix(runtime-broker): reject BigDecimal scales beyond ±2048 by @yiliang114 in #12870
- feat(computer-use): let a remote session use your desktop through a node_repl relay by @yiliang114 in #11799
- docs: fix dead links in GitHub Action, extensions, and privacy pages by @pratikgx in #12717
- docs: correct CSP invalid-source comments by @sherxlg-gif in #12163
- fix(managed-agent): Move the Session operation migration to V17 by @wenshao in #12900
- feat(agents): add durable workspace collaboration state by @yiliang114 in #12854
- feat(memory): add structured on-demand recall by @ZijianZhang989 in #10183
- fix(managed-agent): Refuse Legacy renames of Managed-owned transcripts (M1 follow-up) by @wenshao in #12906
- fix(managed-agent): Treat settings locations that depend on the working directory as unknown (M3 follow-up) by @wenshao in #12903
- feat(channels): rotate bounded route sessions by @qqqys in #12616
- test(managed-agent): add FG6c process crash gates by @wenshao in #12896
- fix(cli): honor usage-statistics opt-out and proxy in
qwen mcp reconnectby @yiliang114 in #12857 - feat(managed-agent): Commit Stage H records and serve the task list (H0c) by @wenshao in #12855
- fix(runtime-broker): enforce the codec reader's total-digit budget by @yiliang114 in #12910
- fix(cli): unwedge qwen batch after provider anomalies; bound maxCostUsd by the worst case by @yiliang114 in #12895
- fix(core): reap stale worktrees holding only symlinks or nested build output by @yiliang114 in #12785
- docs(developers): document CI and release repository variables by @Theater-ahyeon in #11129
- fix(cli): honor --bare and --safe-mode in the cross-session messaging gate by @yiliang114 in #9845
- fix(vscode-ide-companion): make the pre-auth Invalid Host header 403 actionable for port-forwarded windows by @yiliang114 in #12897
- test(cli): give the hosted tool-turn waitFor an explicit timeout (#12911) by @qwen-code-dev-bot in #12915
- test(managed-agent): add FG6d hosted cancellation gates by @wenshao in #12924
- fix(web-shell): hide empty MCP approval subtitles by @BlackishGreen33 in #12644
- fix(core): skip the skills listing when the Skill tool is not registered by @yiliang114 in #12838
- feat(serve): add gated Hosted foreground Shell turns by @doudouOUC in #12848
- test(managed-agent): add FG6e hosted SSE gap gates by @wenshao in #12942
- fix(daemon): persist session approval mode across cold restore by @doudouOUC in #12918
- fix(core): persist workflow replay suffix invalidation by @qqqys in #12948
- feat(managed-agent): Serve the public Turn list and detail (Stage D5) by @wenshao in #12932
- feat(web-shell): clarify trajectory overview metrics by @qqqys in #12944
- fix(serve): Persist Hosted file path refusals by @doudouOUC in #12950
- fix(managed-agent): Share the home-expansion and spawn-environment rules of the compatibility evaluation by @wenshao in #12934
- feat(managed-agent): Adopt durable local Runtime workers by @doudouOUC in #12865
- test(hosted): gate Shell output capture failures (FG6f) by @wenshao in #12954
- feat(core): lazy-load deferred tools in Code Mode by @tanzhenxin in #12898
- perf(memory): reduce automatic extraction token overhead by @yiliang114 in #12951
- fix(memory): preserve migration progress when index rebuild fails by @yiliang114 in #12913
- fix(managed-agent): Close the post-merge review of event replay by @wenshao in #12968
- docs(managed-agent): Defer local engine delivery behind Hosted by @doudouOUC in #12920
- feat(core): Add Landlock execution fallback by @doudouOUC in #12278
- fix(memory): tighten structured recall contracts by @yiliang114 in #12916
- fix(cli): scrub userinfo credentials from aux-model selector egress by @yiliang114 in #12862
- fix(managed-agent): Declare the tenant filter's 403 on the task read routes by @wenshao in #12966
- fix(core): preserve Code Mode cache when enabling workflow by @tanzhenxin in #12933
- fix(core): let Full Access approve shell and monitor directories outside the workspace by @tanzhenxin in #12927
- fix(core): withhold the SkillManager from subagents whose tool policy has no Skill tool by @yiliang114 in #12545
- feat(runtime-broker): reconcile executions on session takeover by @wenshao in #12964
- feat(managed-agent): Record Managed sessions as Managed Session logs (M4) by @wenshao in #12935
- fix(managed-agent): align the delayed-Runtime ordering proof with the 15-second criterion by @wenshao in #12967
- fix(core): isolate declarative subagent hooks by invocation by @qqqys in #12949
- fix(workflow): validate structured output schemas before dispatch by @qqqys in #12978
- fix(memory): preserve task lifecycle signals by @yiliang114 in #12917
- test(core): register the Skill tool in the resume listing fixture by @yiliang114 in #12996
- fix(cli): pin fast model to the selected provider endpoint by @yiliang114 in #12773
- refactor: anchor rewind mapping to stable prompt identity by @yiliang114 in #9466
- test(integration): disable managed auto-memory in advisor and telemetry CLI tests (#12979) by @qwen-code-dev-bot in #12981
- fix(e2e): Relax LLM-turn timeouts in monitor and cron interactive tests by @yiliang114 in #13002
- test(runtime-broker): Accept the takeover scan's settlement in the durable-local fault gate by @wenshao in #13000
- feat(web-shell): inspect trajectory records in place by @qqqys in #12971
- feat(managed-agent): Recover Workspace holders after trusted local reboot (W0e-3) by @doudouOUC in #12869
- fix(runtime-broker): read ready, seed and request integers exactly by @wenshao in #12972
- test(managed-agent): Accept a repeated cancel once an uncertain submit resolves by @wenshao in #13011
- fix(core): run safe Code Mode calls concurrently by @tanzhenxin in #12931
- fix(runtime-broker): Close the deferred W0c-2 findings from #12761 by @wenshao in #12975
New Contributors
- @jkxiao made their first contribution in #12182
- @BlackishGreen33 made their first contribution in #12625
- @yc2bgr8 made their first contribution in #12555
- @sxh313 made their first contribution in #11950
- @holny made their first contribution in #12581
- @JuampiHernandez made their first contribution in #12646
- @liwenjie200543 made their first contribution in #12697
- @banned2054 made their first contribution in #12118
- @Oscar-Williams made their first contribution in #12250
- @pratikgx made their first contribution in #12717
- @sherxlg-gif made their first contribution in #12163
Full Changelog: cua-driver-rs-v0.20.11...desktop-v0.24.7