Skip to content

Releases: QwenLM/qwen-code

Release v0.22.3-nightly.20260829.e5cb60ad48

Choose a tag to compare

What's Changed

  • feat(web-shell): show git state hints beside branch picker actions by @wenshao in #10397
  • feat(review): emit the Step 3A fan-out as a generated workflow script by @qqqys in #10119
  • fix(core): keep the ask_user_question dialog behind allow rules and auto-approval by @qqqys in #10160
  • fix(cli): derive bootstrap --help from shared option definitions by @yiliang114 in #8902

Full Changelog: v0.22.3...v0.22.3-nightly.20260829.e5cb60ad48

Release v0.22.3

Choose a tag to compare

@qwen-code-ci-bot qwen-code-ci-bot released this 28 Aug 17:16

Highlights

  • Added owner-scoped named sessions in Channels to manage up to eight persistent tasks per chat. (#10198)
  • Enabled daemon Extension installs to accept absolute local paths while rejecting relative paths and unsupported options. (#10131)
  • Updated Web Shell sidebar to display GitHub-style colored state icons for sessions bound to pull requests. (#10258)
  • Added an opt-in composer add menu in Web Shell grouping attachments, files, extensions, MCP servers, and skills. (#10379)
  • Restored bold text visibility in assistant messages and prevented sidebar session names from being truncated. (#10157)
  • Ensured tool summaries are consistently collapsible and separated MCP Apps from other aggregations. (#10231)

Breaking Changes

No known breaking changes.

Complete Change List

Features

  • Added a private OpenTelemetry span attribute to report detailed LLM context usage metrics including input categories and remaining capacity. (#10016) by @doudouOUC
  • Enabled daemon Extension installs to accept absolute local paths while rejecting relative paths and unsupported options like ref. (#10131) by @callmeYe
  • Backfills PR bindings for existing sessions and adds merge-state snapshots to track whether linked pull requests are open, merged, or closed. (#9729) by @wenshao
  • Adds an opt-in setting for embedded Web Shell hosts to hide the session source switch, pinning all sidebar catalogs to ordinary task conversations. (#10079) by @dreamWB
  • Implements safe projection for reserved [FILE: ...] output markers by redacting malformed or oversized inline markers without uploading files. (#9991) by @qqqys
  • Updates Goal prompts to notify the model exactly once when the objective changes, while continuing to assert the current objective on every turn. (#10013) by @qqqys
  • Added support for owner-scoped named sessions in Channels, allowing users to manage up to eight persistent named tasks per chat. (#10198) by @doudouOUC
  • Updated Web Shell sidebar to display GitHub-style colored state icons for sessions bound to pull requests based on their open, merged, or closed status. (#10258) by @wenshao
  • Made deferred review suggestions recoverable by external tooling via a stable invisible marker in the review body artifact. (#9761) by @wenshao
  • The /review command now warns when a subsystem's Critical issues repeatedly regrow across rounds by detecting successor chains. (#10010) by @wenshao
  • Restored the desktop brand builder skill for the Tauri shell to generate branded packages using brandId and logo inputs. (#10164) by @yiliang114
  • Added a standalone daemon session API supporting create, list, resume, archive, and delete operations for top-level sessions. (#10179) by @doudouOUC
  • The /review command now remembers the last explicitly used --effort level per project for subsequent runs without arguments. (#9883) by @tlysanhuo
  • Long-running review rounds now update their status comment every 10 minutes with elapsed time and last agent activity to distinguish active work from stalled processes. (#9771) by @wenshao
  • Local review-fix loops now anchor incremental rounds to working tree content changes instead of commits, reducing token usage by avoiding full tree re-reviews. (#9659) by @wenshao
  • Review findings now support an optional fixConstraint field to specify existing facts or limits that suggested fixes must not violate during the repair process. (#10168) by @wenshao
  • feat(sdk): Add standalone session APIs (#10294) by @doudouOUC
  • feat(cli): OpenTUI migration infra batch — locked deps, dependency-direction arch check, framework-neutral streaming model (#10134) by @chiga0
  • Added a configurable Mem0 extension skeleton providing a retrieval-only external-context-mem0 stdio Extension with bounded HTTP request support. (#10149) by @doudouOUC
  • Added a new triage gate that automatically identifies and closes duplicate PRs when their changes are already fully resolved by merged fixes. (#10292) by @yiliang114
  • Added an opt-in composer add menu to Web Shell that groups attachments, files, extensions, MCP servers, and skills for easier pointer-oriented selection. (#10379) by @ytahdn
  • Added an opt-in interactive browser terminal to Web Shell that manages independent PTY sessions per tab with persistent scrollback and state handling. (#9984) by @ytahdn
  • Adds the qwen review ab-drive subcommand to run execution-grade verification scripts against PR and base trees with shared or fresh instances. (#9740) by @wenshao
  • Confirmed Critical issues now include direction and baseline axes to distinguish between false certifications, failures, regressions, and new surfaces. (#10301) by @wenshao
  • Makes Aone a first-class platform for session PR bindings, enabling automatic branch-to-MR mapping and state refresh via the a1 CLI. (#10287) by @wenshao

Bug Fixes

  • Fixed Web Shell to correctly restore saved session diffs with accurate line counts even when file bodies were previously truncated. (#10093) by @ytahdn
  • Ensured DingTalk rich-text messages preserve all images as ordered attachments across sessions and handle upload failures gracefully. (#9922) by @BenGuanRan
  • fix: repair the Windows test lane's standing failures (#10064) by @wenshao
  • fix(core): report broadcast delivery failures in send_message (#10081) by @yiliang114
  • Moved the autofix scan lane to the persistent self-hosted runner pool to prevent GitHub-hosted runner backlogs from blocking routing. (#10055) by @wenshao
  • Restores bold text visibility in assistant messages and prevents session names in the sidebar from being truncated by attention pills. (#10157) by @wenshao
  • Prevents large transcript turns from collapsing automatically after pagination completes, ensuring content remains visible until manually closed. (#10086) by @ytahdn
  • Makes the delta-resume reconnect test deterministic by waiting for the resumed chunk instead of using a fixed time delay. (#10203) by @qwen-code-dev-bot
  • Verifies the previous release tag exists in git before anchoring release notes, falling back to the latest stable tag if missing. (#10167) by @yiliang114
  • Exempts off-Linux E2E shards from fatal unhandled vitest RPC-timeout errors while maintaining strict error handling on Linux. (#10112) by @qwen-code-dev-bot
  • Ensures tool summaries are consistently collapsible, prevents child tools from opening automatically, and separates MCP Apps from other aggregations. (#10231) by @ytahdn
  • Ensures tool results in headless and ACP hosts are stamped with Goal turn permits so they can serve as citable evidence for Goal reasoning. (#10175) by @qqqys
  • Removes a duplicate getToolRegistry mock property in telemetry-swap tests to fix TypeScript build errors caused by duplicate object keys. (#10252) by @wenshao
  • Fixes TypeScript build failure by removing a duplicate getToolRegistry property from the telemetry swap test configuration mock. (#10243) by @AaronZ345
  • Adds qwen3.8-flash and qwen3.8-plus to modality patterns to enable native image and video handling instead of routing through the vision bridge. (#10195) by @yiliang114
  • Bounds the goal-runtime startup wait to 5 seconds to prevent hanging and skips unnecessary memory relaunch steps when running under Bun. (#10128) by @chiga0
  • Implemented robust process tree reaping for ACP child processes on POSIX and Windows to prevent orphaned processes during shutdown or errors. (#10142) by @doudouOUC
  • Ensured model-specific reasoning controls remain available and correctly synchronized for qwen3.8-max before, during, and after session execution. ([#10244](...
Read more

Release v0.22.2-nightly.20260828.7357136dd1

Choose a tag to compare

What's Changed

  • fix(web-shell): restore saved session diffs by @ytahdn in #10093
  • fix(channels): preserve DingTalk rich-text multi-image messages by @BenGuanRan in #9922
  • feat(telemetry): Emit context usage span attribute by @doudouOUC in #10016
  • fix: repair the Windows test lane's standing failures by @wenshao in #10064
  • fix(core): report broadcast delivery failures in send_message by @yiliang114 in #10081
  • feat(daemon): support local path extension installs by @callmeYe in #10131
  • fix(ci): run the autofix scan lane on the persistent pool by @wenshao in #10055
  • test(core): give the telemetry-swap client mock a getToolRegistry by @wenshao in #10220
  • fix(web-shell): Polish transcript, sidebar, and manager page visuals by @wenshao in #10157
  • fix(web-shell): keep pagination-completed turns expanded by @ytahdn in #10086
  • fix(webui): make the delta-resume reconnect test deterministic (#10200) by @qwen-code-dev-bot in #10203
  • fix(ci): verify previous release tag exists in git before anchoring release notes by @yiliang114 in #10167
  • fix(ci): exempt off-Linux E2E shards from vitest RPC-timeout unhandled errors (#10097) by @qwen-code-dev-bot in #10112
  • docs(agents): trim redundant context by @DragonnZhang in #10137
  • feat(serve): backfill session PR bindings and refresh their merge state by @wenshao in #9729
  • fix(web-shell): make tool summaries consistently collapsible by @ytahdn in #10231
  • feat(web-shell): allow hiding the session source switch by @dreamWB in #10079
  • fix(goal): stamp tool results in every host, so Goals can prove anything by @qqqys in #10175
  • feat(dingtalk): project reserved file output safely by @qqqys in #9991
  • fix(core): remove duplicate getToolRegistry in telemetry-swap test mock by @wenshao in #10252
  • fix(core): remove duplicate telemetry test registry stub by @AaronZ345 in #10243
  • feat(goal): tell the model the objective changed, once, when it changed by @qqqys in #10013
  • fix(core): add modality metadata for qwen3.8-flash and qwen3.8-plus by @yiliang114 in #10195
  • fix(cli): bound the goal-runtime startup wait and skip the no-op Bun memory relaunch by @chiga0 in #10128
  • chore(desktop): drop stale packages/desktop references after Electron removal by @yiliang114 in #10021
  • fix(acp-bridge): Reap ACP child process trees by @doudouOUC in #10142
  • fix(web-shell): keep reasoning effort controls available by @callmeYe in #10244
  • fix(core): Reclaim command hook process trees by @doudouOUC in #10100
  • feat(channels): Add owner-scoped named sessions by @doudouOUC in #10198
  • feat(web-shell): show GitHub-style state icons for session PR bindings by @wenshao in #10258
  • feat(review): keep deferred suggestions recoverable off the PR page by @wenshao in #9761
  • refactor(core,cli): rename Gemini residue in memory/spinner/leaf ids by @yiliang114 in #9900
  • fix(core): recognize new DeepSeek/GLM vision models in modality auto-detection by @yiliang114 in #10278
  • fix(autofix): raise the repair and develop-issue agent budgets by @wenshao in #10217
  • feat(review): warn when a subsystem's Criticals keep regrowing across rounds by @wenshao in #10010
  • refactor(core): centralize worktree config derivation by @yiliang114 in #9915
  • fix(core): clarify stream idle timeout guidance by @yu-xin-c in #9896
  • feat(desktop-shell): restore the brand builder skill for the Tauri shell by @yiliang114 in #10164
  • feat(cli): Add standalone daemon session API by @doudouOUC in #10179
  • feat(review): remember explicit effort per project by @tlysanhuo in #9883
  • feat(autofix): keep the round status comment live during long rounds by @wenshao in #9771
  • fix(web-shell): Polish new-session welcome header visuals by @wenshao in #10230
  • fix(artifacts): refresh updatedAt when artifact content changes by @zjgzx1988 in #9929
  • fix(skills): separate extension identity from display name by @callmeYe in #10296
  • feat(review): content-anchored incremental rounds for the local review-fix loop by @wenshao in #9659
  • feat(review): carry the fix's premises beside its claim — add fixConstraint by @wenshao in #10168
  • fix(cli): keep Agent View queued messages across teammate tab switches by @yiliang114 in #10102
  • fix(core): make stale team reclaim generation-safe by @yiliang114 in #10236
  • fix(core): report teammate result settled before event bridge attach by @yiliang114 in #10245
  • docs(external-context): Design a configurable Mem0 provider extension by @doudouOUC in #10113
  • fix(cli): restore goal-less startup broken by the goal-runtime wait refactor by @yiliang114 in #10290
  • fix(test): mount channel plugin fixture in Docker by @yiliang114 in #10318
  • fix(ci): stop shared-pool hosts exiting all-green E2E runs red (#10325) by @qwen-code-dev-bot in #10329
  • feat(sdk): Add standalone session APIs by @doudouOUC in #10294

Full Changelog: v0.22.2...v0.22.2-nightly.20260828.7357136dd1

cua-driver-rs v0.20.2

cua-driver-rs v0.20.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Aug 15:19
b89ba11

Qwen CUA Driver prebuilt binaries
(vendored under packages/cua-driver).

  • macOS: codesigned + notarized universal binary + QwenCuaDriver.app
  • Linux: unsigned (x86_64 + arm64, glibc 2.31 floor)
  • Windows: unsigned (x86_64 + arm64)
  • Node.js: the same workflow publishes @qwen-code/cua-sdk
    after a clean install against these release assets and publishes
    the independently versioned @qwen-code/node-repl-mcp package
    after its MCP protocol smoke tests

Enable relative coordinates: CUA_DRIVER_RS_COORDINATE_SPACE=1
(default 0 = off; optional CUA_DRIVER_RS_COORDINATE_SCALE=1000).

Enable textual MCP payload filtering for affected model API routes:
MCP_MODEL_PAYLOAD_FILTER=1 (default off).

What's Changed

  • feat(web-shell): add session token usage panel by @ytahdn in #9988
  • feat(core): accept cross-session messages behind an inbound gate by @qqqys in #9576
  • fix(core): keep allowlist-uncovered tools registered as deferred instead of removing them (#10075) by @yiliang114 in #10082
  • feat(goal): let a Goal stop early when its objective is infeasible by @qqqys in #10125
  • feat(goal): grant one hand-off turn before a spent budget stops the Goal by @qqqys in #10132
  • feat(core): add a bundled goal-draft skill that writes verifier-judgeable Goals by @qqqys in #10002
  • fix(daemon): Persist empty sessions before scheduled-task binding by @doudouOUC in #10144
  • fix(channels): Make same-chat delivery session-aware by @doudouOUC in #10145
  • fix(web-shell): restore saved session diffs by @ytahdn in #10093
  • fix(channels): preserve DingTalk rich-text multi-image messages by @BenGuanRan in #9922
  • feat(telemetry): Emit context usage span attribute by @doudouOUC in #10016
  • fix: repair the Windows test lane's standing failures by @wenshao in #10064
  • fix(core): report broadcast delivery failures in send_message by @yiliang114 in #10081
  • feat(daemon): support local path extension installs by @callmeYe in #10131
  • fix(ci): run the autofix scan lane on the persistent pool by @wenshao in #10055
  • test(core): give the telemetry-swap client mock a getToolRegistry by @wenshao in #10220
  • fix(web-shell): Polish transcript, sidebar, and manager page visuals by @wenshao in #10157
  • fix(web-shell): keep pagination-completed turns expanded by @ytahdn in #10086
  • fix(webui): make the delta-resume reconnect test deterministic (#10200) by @qwen-code-dev-bot in #10203
  • fix(ci): verify previous release tag exists in git before anchoring release notes by @yiliang114 in #10167
  • fix(ci): exempt off-Linux E2E shards from vitest RPC-timeout unhandled errors (#10097) by @qwen-code-dev-bot in #10112
  • docs(agents): trim redundant context by @DragonnZhang in #10137
  • feat(serve): backfill session PR bindings and refresh their merge state by @wenshao in #9729
  • fix(web-shell): make tool summaries consistently collapsible by @ytahdn in #10231
  • feat(web-shell): allow hiding the session source switch by @dreamWB in #10079
  • fix(goal): stamp tool results in every host, so Goals can prove anything by @qqqys in #10175
  • feat(dingtalk): project reserved file output safely by @qqqys in #9991
  • fix(core): remove duplicate getToolRegistry in telemetry-swap test mock by @wenshao in #10252
  • fix(core): remove duplicate telemetry test registry stub by @AaronZ345 in #10243
  • feat(goal): tell the model the objective changed, once, when it changed by @qqqys in #10013
  • fix(core): add modality metadata for qwen3.8-flash and qwen3.8-plus by @yiliang114 in #10195
  • fix(cli): bound the goal-runtime startup wait and skip the no-op Bun memory relaunch by @chiga0 in #10128
  • chore(desktop): drop stale packages/desktop references after Electron removal by @yiliang114 in #10021
  • fix(acp-bridge): Reap ACP child process trees by @doudouOUC in #10142
  • fix(web-shell): keep reasoning effort controls available by @callmeYe in #10244
  • fix(core): Reclaim command hook process trees by @doudouOUC in #10100
  • feat(channels): Add owner-scoped named sessions by @doudouOUC in #10198
  • feat(web-shell): show GitHub-style state icons for session PR bindings by @wenshao in #10258
  • feat(review): keep deferred suggestions recoverable off the PR page by @wenshao in #9761
  • refactor(core,cli): rename Gemini residue in memory/spinner/leaf ids by @yiliang114 in #9900
  • fix(core): recognize new DeepSeek/GLM vision models in modality auto-detection by @yiliang114 in #10278
  • fix(autofix): raise the repair and develop-issue agent budgets by @wenshao in #10217
  • feat(review): warn when a subsystem's Criticals keep regrowing across rounds by @wenshao in #10010
  • refactor(core): centralize worktree config derivation by @yiliang114 in #9915
  • fix(core): clarify stream idle timeout guidance by @yu-xin-c in #9896
  • feat(desktop-shell): restore the brand builder skill for the Tauri shell by @yiliang114 in #10164
  • feat(cli): Add standalone daemon session API by @doudouOUC in #10179
  • feat(review): remember explicit effort per project by @tlysanhuo in #9883
  • feat(autofix): keep the round status comment live during long rounds by @wenshao in #9771
  • fix(web-shell): Polish new-session welcome header visuals by @wenshao in #10230
  • fix(artifacts): refresh updatedAt when artifact content changes by @zjgzx1988 in #9929
  • fix(skills): separate extension identity from display name by @callmeYe in #10296
  • feat(review): content-anchored incremental rounds for the local review-fix loop by @wenshao in #9659
  • feat(review): carry the fix's premises beside its claim — add fixConstraint by @wenshao in #10168
  • fix(cli): keep Agent View queued messages across teammate tab switches by @yiliang114 in #10102
  • fix(core): make stale team reclaim generation-safe by @yiliang114 in #10236
  • fix(core): report teammate result settled before event bridge attach by @yiliang114 in #10245
  • docs(external-context): Design a configurable Mem0 provider extension by @doudouOUC in #10113
  • fix(cli): restore goal-less startup broken by the goal-runtime wait refactor by @yiliang114 in #10290
  • fix(test): mount channel plugin fixture in Docker by @yiliang114 in #10318
  • fix(ci): stop shared-pool hosts exiting all-green E2E runs red (#10325) by @qwen-code-dev-bot in #10329
  • feat(sdk): Add standalone session APIs by @doudouOUC in #10294
  • feat(cli): OpenTUI migration infra batch — locked deps, dependency-direction arch check, framework-neutral streaming model by @chiga0 in #10134
  • refactor(core,cli): rename generic Gemini identifiers to Llm by @yiliang114 in #10124
  • fix(test): isolate integration tests from the host global qwen dir by @wenshao in #10337
  • feat(external-context): Add configurable Mem0 extension skeleton by @doudouOUC in #10149
  • fix(ci): retry transient sandbox image build failures in E2E (#10355) by @qwen-code-dev-bot in #10359
  • fix(web-shell): keep archive out of the sidebar hover slot and block it on running sessions by @wenshao in #10302
  • fix(serve): treat Skill toggles as settings writes by @callmeYe in #10077
  • fix(test): isolate tool-control E2E from shared state by @yiliang114 in #10340
  • fix(goal): stamp t...
Read more

Release v0.22.2

Choose a tag to compare

@qwen-code-ci-bot qwen-code-ci-bot released this 26 Aug 12:57

Highlights

See the complete change list below.

Breaking Changes

  • refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server (#9499) by @LaZzyMan

Complete Change List

Features

  • Added temporal-reachability and incident-replay lenses to review briefs to analyze whether values exist at the correct moments to steer decisions. (#9708) by @wenshao
  • Review findings now include specific test acceptance criteria for their fixes and explicitly rule on non-convergence to reduce review-fix loops. (#9596) by @wenshao
  • Daemon sessions now restore to their last selected model across restarts and detaches, while new sessions continue to use the current settings default. (#9687) by @doudouOUC
  • Validates inline anchors for /review --comment on Aone targets before posting, relocating Critical findings to the summary body and discarding Suggestions if anchors are invalid. (#9634) by @wenshao
  • Adds a tokensUsed field to GoalRecord to report the total tokens consumed by a Goal alongside its turn count in the lastGoal summary. (#9583) by @qqqys
  • Enables dynamic workflows via the tools.workflowsEnabled user setting, replacing the previous undocumented environment variable method. (#9098) by @qqqys
  • Enables PR context fetching for Aone Code targets in the /review command, restoring full review capabilities including native approval and issue fidelity. (#9621) by @wenshao
  • Web Shell now correctly refreshes composer skills after toggles, preventing disabled skills from reappearing and surfacing failed refreshes instead of stale suggestions. (#9131) by @samuelhsin
  • The review skill now supports comment-status and presubmit flows for Aone Code targets, generating the same JSON report schema as GitHub for merge-gate and CI state checks. (#9627) by @wenshao
  • feat(models): support dual-role image generation models (#9650) by @callmeYe
  • Review compose now surfaces a land-with-residual-risk advisory when critical findings persist across rounds, signaling that manual risk acceptance is required to exit the loop. (#9526) by @wenshao
  • The Computer Use SDK for Node.js is now updated to v0.20.0, providing versioned accessibility observations and stable element tokens across macOS, Windows, and Linux platforms. (#9587) by @LaZzyMan
  • Added support for MCP 2026 core protocol and introduced an MCP Apps host for rendering inline applications in daemon-backed WebShell sessions. (#8992) by @samuelhsin
  • Adds a do-not-refute list and constructible rejection bar to the /review skill verifier to prevent invalid rejections of speculative findings. (#9799) by @wenshao
  • feat(core): declare create_sub_session only under qwen serve (#9425) by @DragonnZhang
  • Added support for creating scheduled tasks that reuse an existing live session by providing an optional sessionId. (#9361) by @yiliang114
  • Compact mode now folds adjacent thinking, tool activity, and parallel agents into a single expandable summary row in the web shell. (#9657) by @ytahdn
  • Kimi (Moonshot AI) is added as a built-in third-party provider with support for international and China endpoints and editable model catalogs. (#9814) by @TianYuan1024
  • The Workflow tool now displays a detailed approval dialog showing the script's name, phases, and arguments before execution. (#9837) by @qqqys
  • WebShell now exposes an optional callback to report the active session's complete subagent task snapshot for embedding hosts. (#9637) by @callmeYe
  • Added an optional async prepareSubmit callback for Web Shell hosts to resolve context dynamically before submission. (#9802) by @dreamWB
  • Adds four built-in output styles (Concise, Proactive, Explanatory, Learning) to control how the agent reports work throughout a session. (#9565) by @qqqys
  • Introduces qwen serve --open-with-auth to open a loopback Web Shell with bearer authentication using a provided or auto-generated token. (#9738) by @doudouOUC
  • Adopts the shared WebShell transcript renderer as the default and only conversation timeline in the VS Code companion, replacing the legacy renderer. (#9719) by @yiliang114
  • Replaced built-in Computer Use tools with a bundled skill that automatically configures the external Node REPL MCP server and CUA SDK on first use. (#9856) by @LaZzyMan
  • Promoted language-pitfall and wrapper/proxy checks from Agent 1a to dedicated high-effort Step 3A roles for more thorough code review. (#9805) by @wenshao
  • The /review command now adds an advisory note when the overall approach, rather than the current patch, is identified as the primary open question. (#9340) by @qqqys
  • Added a new find-simplifications sweep skill that identifies dead code and orphaned resources, generating evidence-backed proposals for maintainer review. (#9384) by @qqqys
  • Required explicit user opt-in before launching workflows by defining five specific triggers to prevent unintended multi-agent orchestration. (#9806) by @qqqys
  • Review executions now run the repository's own commands inside a container boundary defined by operator policy instead of relying on local installation. (#9723) by @wenshao
  • feat(core): add a per-project outside-repo artifact landing (#9776) by @wenshao
  • feat(review): report findings to clients as a typed contract (#9794) by @wenshao
  • Engages the critical severity floor immediately after two consecutive rounds of sustained finding rates instead of waiting for the fixed round-6 schedule. (#9938) by @wenshao
  • Removed the Electron desktop package and related sync scripts since the code has been forked to the OpenWork repository. (#9085) by @yiliang114
  • Adds an opt-in liveness check for daemon child processes using ACP channels, with retries and timeouts to detect failures without false positives from host suspension. (#9976) by @doudouOUC
  • Introduces a built-in DingTalk Workspace channel supporting direct messages, mentions, document notifications, and todo tracking using authenticated DWS CLI profiles. (#9394) by @qqqys
  • feat(review): add a --topology minimal single-pass A/B arm (#9919) by @wenshao
  • feat(cli): Manage agent view session lifecycle (#9986) by @ZijianZhang989
  • feat(goal): make get_goal's default view a summary instead of the whole catalog (#9973) by @qqqys
  • feat(goal): stop a Goal whose checkpoints stall three times in a row (#9975) by @qqqys
  • feat(web-shell): make compact view the only mode (#9993) by @ytahdn
  • feat(daemon): Support current-session scheduled tasks (#9838) by @doudouOUC
  • feat(core): trust a generated-scripts root for workflow scriptPath loads (#9987) by @qqqys
  • feat(providers): load model recommendations before editing (#9980) by @qqqys
  • feat(goal): stop autonomous continuation at a token budget the user re-arms (#9891) by @qqqys
  • feat(acp): enable managed auto-memory lifecycle (#9992) by @zgxkbtl
  • feat(cli): Add standalone sessions for projectless tasks (#9978) by @doudouOUC
  • feat(web-shell): add session token usage panel (#9988) by @ytahdn
  • feat(core): accept cross-session messages behind an inbound gate (#9576) by @qqqys
  • feat(goal): let a Goal stop early when its objective is infeasible (#10125) by @qqqys
  • feat(goal): grant one hand-off turn before a spent budget stops the Goal (#10132) by @qqqys
  • feat(core): add a bundled goal-draft skill that writes verifier-judgeable Goals (#10002) by @qqqys

Bug Fixes

  • Clicking a session in the ...
Read more

Release v0.22.2-preview.1

Pre-release

Choose a tag to compare

What's Changed

  • fix(goal): converge the three continuation prompts on one guarded contract by @qqqys in #9834
  • feat(core): require an explicit user opt-in before the model launches a workflow by @qqqys in #9806
  • fix(review): ban unexecuted mutation claims in coverage briefs by @wenshao in #9923
  • fix(ci): scope workflow-size ratchet to the PR that grew the file by @wenshao in #9931
  • feat(review): run the reviewed repository's own commands behind a container (#9556) by @wenshao in #9723
  • feat(core): add a per-project outside-repo artifact landing by @wenshao in #9776
  • fix(web-shell): reduce streaming thought render jank by @ytahdn in #9914
  • feat(review): report findings to clients as a typed contract by @wenshao in #9794
  • fix(ci): neutralize legacy ##[ commands in autofix stdout echoes by @wenshao in https://github.com//pull/9871
  • fix(core): refuse a workflow script before it can spend anything by @qqqys in #9873
  • feat(review): engage the severity floor early on a sustained convergence signal (#9903) by @wenshao in #9938
  • fix(serve): Repair persisted session lifecycle by @doudouOUC in #9626
  • fix(cli): degrade gracefully when messageRewrite.promptFile cannot be read by @yiliang114 in #9753
  • fix(webui): hydrate Goal independently of session metadata by @ytahdn in #9977
  • test(core): pin transport retry diagnostics and correct the replay-safety comment by @ComplexSimply in #8861
  • refactor(core): break config client runtime cycle by @DragonnZhang in #9959
  • refactor(cli): reuse trusted workspace runtime resolver by @DragonnZhang in #9958
  • feat(desktop): remove the Electron package after OpenWork fork; keep the Tauri upgrade bridge by @yiliang114 in #9085
  • fix(goal): resume an evidence-limited Goal from a fresh window by @qqqys in #9840
  • chore(github): add @qqqys as core package codeowner by @yiliang114 in #9982
  • feat(daemon): Add ACP channel transport liveness by @doudouOUC in #9976
  • fix(core): allow scoped Git credential config by @callmeYe in #9870
  • feat(channels): add DingTalk Workspace channel by @qqqys in #9394
  • fix(session): preserve source titles when branching by @water-in-stone in #9764
  • fix(telemetry): restore usage aggregate when a session swap fails by @yiliang114 in #9844
  • fix(channels/qqbot): key the cron textChunk guard on active prompts, not streamState by @yiliang114 in #9971
  • fix(cli): mark estimated compression token counts in banners by @yiliang114 in #9568
  • fix(core): emit OpenRouter's reasoning disable when thinking is off by @yiliang114 in #9758
  • fix(core): validate skill commands against the live provider to survive late attach by @yiliang114 in #9824
  • fix(cli): keep in-flight tool calls pending during live session replay by @yiliang114 in #9705
  • test(cli): teach session-swap telemetry fakes the /branch title prerequisites by @yiliang114 in #9998
  • fix(core): reject unverifiable validated read inodes by @AaronZ345 in #9857
  • feat(review): add a --topology minimal single-pass A/B arm by @wenshao in #9919
  • feat(cli): Manage agent view session lifecycle by @ZijianZhang989 in #9986
  • fix(review): the sandbox default named an image that does not exist by @wenshao in #9972
  • fix(web-shell): localize vision bridge notices by @ytahdn in #10003
  • fix(web-shell): allow reasoning selection before session creation by @callmeYe in #10008
  • refactor(acp-bridge): narrow workspace event capabilities by @DragonnZhang in #9957
  • refactor(web-shell): extract shared contexts by @DragonnZhang in #9954
  • fix(core): subordinate the coordinate skill's teammate count to the configured cap by @yiliang114 in #9403
  • fix: repair the Windows and macOS test lane failures by @wenshao in #9728
  • fix(ci): give the macOS and Windows lanes a trigger again by @wenshao in #9370
  • fix(core): make permissions.allow restrict the tool schemas sent to the model by @yiliang114 in #9829
  • fix(webui): preserve hydrated Goal state during event startup by @ytahdn in #10012
  • refactor(web-shell): reuse canonical todo parser by @DragonnZhang in #9956
  • fix(cli): graft the review anchor forward across fail-closed rounds by @wenshao in #9932
  • feat(goal): make get_goal's default view a summary instead of the whole catalog by @qqqys in #9973
  • refactor(cli): remove unused EnumSelector component by @qqqys in #9997
  • fix(live): restore Live Host after desktop removal by @yiliang114 in #9994
  • fix(goal): cite this turn's delivered output instead of refusing over it by @qqqys in #9880
  • fix(serve): let channel workers reach TLS-enabled daemons by @qqqys in #9392
  • feat(goal): stop a Goal whose checkpoints stall three times in a row by @qqqys in #9975
  • fix(cli): drop duplicate fake properties breaking the main build by @yiliang114 in #10022
  • fix(core): register report_findings in the permission alias table by @yiliang114 in #10033
  • feat(web-shell): make compact view the only mode by @ytahdn in #9993
  • fix(cli): preserve bridge timeouts for mid-turn media by @ytahdn in #9995
  • ci: take the macOS and Windows lanes off pull requests by @wenshao in #10059
  • fix(mcp): recover restarted HTTP MCP servers in-session and in CLI by @yiliang114 in #9962
  • fix(core): sync loaded-skill state with history eviction by @ZijianZhang989 in #9500

Full Changelog: pr-9806-verification-assets...v0.22.2-preview.1

Qwen Code Desktop v0.2.2

Choose a tag to compare

@github-actions github-actions released this 26 Aug 09:37
7b69293

What's Changed

  • fix(goal): converge the three continuation prompts on one guarded contract by @qqqys in #9834
  • feat(core): require an explicit user opt-in before the model launches a workflow by @qqqys in #9806
  • fix(review): ban unexecuted mutation claims in coverage briefs by @wenshao in #9923
  • fix(ci): scope workflow-size ratchet to the PR that grew the file by @wenshao in #9931
  • feat(review): run the reviewed repository's own commands behind a container (#9556) by @wenshao in #9723
  • feat(core): add a per-project outside-repo artifact landing by @wenshao in #9776
  • fix(web-shell): reduce streaming thought render jank by @ytahdn in #9914
  • feat(review): report findings to clients as a typed contract by @wenshao in #9794
  • fix(ci): neutralize legacy ##[ commands in autofix stdout echoes by @wenshao in https://github.com//pull/9871
  • fix(core): refuse a workflow script before it can spend anything by @qqqys in #9873
  • feat(review): engage the severity floor early on a sustained convergence signal (#9903) by @wenshao in #9938
  • fix(serve): Repair persisted session lifecycle by @doudouOUC in #9626
  • fix(cli): degrade gracefully when messageRewrite.promptFile cannot be read by @yiliang114 in #9753
  • fix(webui): hydrate Goal independently of session metadata by @ytahdn in #9977
  • test(core): pin transport retry diagnostics and correct the replay-safety comment by @ComplexSimply in #8861
  • refactor(core): break config client runtime cycle by @DragonnZhang in #9959
  • refactor(cli): reuse trusted workspace runtime resolver by @DragonnZhang in #9958
  • feat(desktop): remove the Electron package after OpenWork fork; keep the Tauri upgrade bridge by @yiliang114 in #9085
  • fix(goal): resume an evidence-limited Goal from a fresh window by @qqqys in #9840
  • chore(github): add @qqqys as core package codeowner by @yiliang114 in #9982
  • feat(daemon): Add ACP channel transport liveness by @doudouOUC in #9976
  • fix(core): allow scoped Git credential config by @callmeYe in #9870
  • feat(channels): add DingTalk Workspace channel by @qqqys in #9394
  • fix(session): preserve source titles when branching by @water-in-stone in #9764
  • fix(telemetry): restore usage aggregate when a session swap fails by @yiliang114 in #9844
  • fix(channels/qqbot): key the cron textChunk guard on active prompts, not streamState by @yiliang114 in #9971
  • fix(cli): mark estimated compression token counts in banners by @yiliang114 in #9568
  • fix(core): emit OpenRouter's reasoning disable when thinking is off by @yiliang114 in #9758
  • fix(core): validate skill commands against the live provider to survive late attach by @yiliang114 in #9824
  • fix(cli): keep in-flight tool calls pending during live session replay by @yiliang114 in #9705
  • test(cli): teach session-swap telemetry fakes the /branch title prerequisites by @yiliang114 in #9998
  • fix(core): reject unverifiable validated read inodes by @AaronZ345 in #9857
  • feat(review): add a --topology minimal single-pass A/B arm by @wenshao in #9919
  • feat(cli): Manage agent view session lifecycle by @ZijianZhang989 in #9986
  • fix(review): the sandbox default named an image that does not exist by @wenshao in #9972
  • fix(web-shell): localize vision bridge notices by @ytahdn in #10003
  • fix(web-shell): allow reasoning selection before session creation by @callmeYe in #10008
  • refactor(acp-bridge): narrow workspace event capabilities by @DragonnZhang in #9957
  • refactor(web-shell): extract shared contexts by @DragonnZhang in #9954
  • fix(core): subordinate the coordinate skill's teammate count to the configured cap by @yiliang114 in #9403
  • fix: repair the Windows and macOS test lane failures by @wenshao in #9728
  • fix(ci): give the macOS and Windows lanes a trigger again by @wenshao in #9370
  • fix(core): make permissions.allow restrict the tool schemas sent to the model by @yiliang114 in #9829
  • fix(webui): preserve hydrated Goal state during event startup by @ytahdn in #10012
  • refactor(web-shell): reuse canonical todo parser by @DragonnZhang in #9956
  • fix(cli): graft the review anchor forward across fail-closed rounds by @wenshao in #9932
  • feat(goal): make get_goal's default view a summary instead of the whole catalog by @qqqys in #9973
  • refactor(cli): remove unused EnumSelector component by @qqqys in #9997
  • fix(live): restore Live Host after desktop removal by @yiliang114 in #9994
  • fix(goal): cite this turn's delivered output instead of refusing over it by @qqqys in #9880
  • fix(serve): let channel workers reach TLS-enabled daemons by @qqqys in #9392
  • feat(goal): stop a Goal whose checkpoints stall three times in a row by @qqqys in #9975
  • fix(cli): drop duplicate fake properties breaking the main build by @yiliang114 in #10022
  • fix(core): register report_findings in the permission alias table by @yiliang114 in #10033
  • feat(web-shell): make compact view the only mode by @ytahdn in #9993
  • fix(cli): preserve bridge timeouts for mid-turn media by @ytahdn in #9995
  • ci: take the macOS and Windows lanes off pull requests by @wenshao in #10059
  • fix(mcp): recover restarted HTTP MCP servers in-session and in CLI by @yiliang114 in #9962
  • fix(core): sync loaded-skill state with history eviction by @ZijianZhang989 in #9500
  • refactor(core): remove unused LruCache utility by @AaronZ345 in #9926
  • fix(core): preserve images for multimodal DeepSeek by @shenyankm in #9854
  • fix(ci): yield the event loop between script tests to avoid vitest RPC timeouts (#10037) by @qwen-code-dev-bot in #10050
  • fix(vscode): sync companion token limits by @AaronZ345 in #9850
  • fix(ui): suppress duplicate identical TodoList panels in a single turn by @PratikWayase in #9692
  • refactor(cli): remove unused useInputHistoryStore hook by @qqqys in #10041
  • feat(daemon): Support current-session scheduled tasks by @doudouOUC in #9838

Full Changelog: pr-9806-verification-assets...desktop-v0.2.2

cua-driver-rs v0.20.1

cua-driver-rs v0.20.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Aug 11:23
e5f14e3

Qwen CUA Driver prebuilt binaries
(vendored under packages/cua-driver).

  • macOS: codesigned + notarized universal binary + QwenCuaDriver.app
  • Linux: unsigned (x86_64 + arm64, glibc 2.31 floor)
  • Windows: unsigned (x86_64 + arm64)
  • Node.js: the same workflow publishes @qwen-code/cua-sdk
    after a clean install against these release assets and publishes
    the independently versioned @qwen-code/node-repl-mcp package
    after its MCP protocol smoke tests

Enable relative coordinates: CUA_DRIVER_RS_COORDINATE_SPACE=1
(default 0 = off; optional CUA_DRIVER_RS_COORDINATE_SCALE=1000).

Enable textual MCP payload filtering for affected model API routes:
MCP_MODEL_PAYLOAD_FILTER=1 (default off).

What's Changed

  • feat(core): trust a generated-scripts root for workflow scriptPath loads by @qqqys in #9987
  • docs: consolidate assorted documentation corrections by @AaronZ345 in #9855
  • fix(ci): retry sandbox image builds and file an issue when a release build fails by @yiliang114 in #9916
  • feat(providers): load model recommendations before editing by @qqqys in #9980
  • feat(goal): stop autonomous continuation at a token budget the user re-arms by @qqqys in #9891
  • fix(web-shell): constrain responsive sidebar drawer by @dreamWB in #10020
  • fix(core): dedupe hierarchical memory files by canonical identity by @yiliang114 in #9600
  • fix(cua-driver): support sandboxed Windows SDK clients by @LaZzyMan in #10120
  • chore(ci): migrate CUA npm packages to trusted publishing by @yiliang114 in #9836
  • feat(acp): enable managed auto-memory lifecycle by @zgxkbtl in #9992
  • chore(cua-driver): bump SDK to 0.20.1 by @LaZzyMan in #10127
  • fix(node-repl): make package verification idempotent by @LaZzyMan in #10133
  • fix(review): give cancelled runs an accurate fallback body instead of the failure comment by @wenshao in #10114
  • fix(cua-driver): synchronize release version marker by @LaZzyMan in #10135
  • feat(cli): Add standalone sessions for projectless tasks by @doudouOUC in #9978

New Contributors

Full Changelog: desktop-v0.2.2...cua-driver-rs-v0.20.1

Release v0.22.0-nightly.20260825.22bb5e8b9f

Choose a tag to compare

What's Changed

  • fix(web-shell): pass session workspace cwd when opening from overview panel by @wenshao in #9730
  • fix(web-shell): fall back after stale mid-turn rejection by @ytahdn in #9732
  • fix(review): stop the fallback comment from firing on superseded runs by @wenshao in #9716
  • feat(review): add temporal-reachability and incident-replay lenses by @wenshao in #9708
  • fix(web-shell): stable pinned-section order and instant pin feedback by @yiliang114 in #9560
  • feat(review): ask each fix for its test, and rule on non-convergence by @wenshao in #9596
  • chore(ci): migrate autofix prose to the design record and ratchet growth by @wenshao in #9677
  • feat(cli): restore each daemon session onto its last selected model by @doudouOUC in #9687
  • feat(review): validate Aone inline anchors against the captured diff before posting by @wenshao in #9634
  • fix(ci): record qwen-autofix.yml's shipped size in the workflow size baseline by @wenshao in #9747
  • fix(ci): gate the fork signal on fields the review payload delivers by @qqqys in #9469
  • feat(goal): account the tokens a Goal spends by @qqqys in #9583
  • fix(core): reject session titles that echo the prompt's own examples by @yiliang114 in #9709
  • fix(core): parse the workflow meta literal instead of evaluating it by @qqqys in #9325
  • fix(sdk): support relative artifact download URLs by @ytahdn in #9734
  • fix(autofix): give the repair pass a budget it can finish in by @qqqys in #9691
  • feat(cli): enable dynamic workflows from a settings key by @qqqys in #9098
  • fix(core): widen the workflow stall watchdog past the transport retry ladder by @qqqys in #9397
  • test(core): pin that subagent registries carry no MCP instructions by @wenshao in #9720
  • fix(core): gate skill announcements on what the model was declared by @wenshao in #9718
  • feat(review): back pr-context on Aone Code targets by @wenshao in #9621
  • fix(review): count a fix-induced re-report as first-time work by @wenshao in #9744
  • docs(review): name the axis when two of them both call it "rank 3" by @wenshao in #9759
  • fix(web-shell): preview document-classified artifacts by @ytahdn in #9760
  • feat(web-shell): refresh composer skills incrementally after toggles by @samuelhsin in #9131
  • feat(review): back comment-status and presubmit for Aone Code targets by @wenshao in #9627
  • perf(cli): raise VP scroll rendering to 60 FPS by @DragonnZhang in #9681
  • feat(models): support dual-role image generation models by @callmeYe in #9650
  • fix(daemon): keep restored ask_user_question valid after load by @doudouOUC in #9763
  • feat(review): add the persistently-critical convergence advisory (land-with-residual-risk) by @wenshao in #9526
  • fix(core): support public GitHub extensions with older Git by @yiliang114 in #9690
  • feat(cua-driver): add versioned Computer Use SDK and release pipeline by @LaZzyMan in #9587
  • refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server by @LaZzyMan in #9499
  • fix(review): repair permissions before giving up on worktree cleanup by @wenshao in #9748
  • fix(core): Normalize both sides of the session title echo comparison by @yiliang114 in #9809
  • refactor(cli): enforce utils leaf-layer dependency direction (#9146) by @yiliang114 in #9737
  • fix(web-shell): cap React dev performance.measure accumulation to stop renderer OOM by @wenshao in #9770
  • fix(dingtalk): parse forwarded chat records by @qqqys in #9339
  • fix(web-shell): add remark-cjk-friendly so bold adjacent to CJK punct… by @cactuser-Lu in #9457
  • feat(mcp): add MCP 2026 core and WebShell Apps host by @samuelhsin in #8992
  • fix(config): allow prompt hooks in settings schema by @zjunothing in #8779
  • fix(web-shell): show reasoning effort before session creation by @callmeYe in #9599
  • fix(auth): let Vertex AI authenticate with Application Default Credentials by @axiom-of-choice in #9017
  • fix(ci): record cd-cua-driver.yml's shipped size in the workflow size baseline by @wenshao in #9822
  • feat(review): give verifiers a do-not-refute list and a constructible rejection bar by @wenshao in #9799
  • fix(core): clear tool display list before awaiting completion callback by @qwen-code-dev-bot in #9602
  • refactor(cli): extract ACP skill management by @callmeYe in #8865
  • fix(cli): normalize win32 drive-letter casing in MCP approval keys by @zhou2024NAU in #9779
  • Support MiniMax image generation schema by @octo-patch in #8322
  • fix(core): sniff image content before read by @rbalachandar in #9113
  • fix(vscode): preserve Windows file links in session exports by @yefuyou in #8953
  • fix(cli): prevent input border overflow on resize by @tlysanhuo in #8991
  • feat(core): declare create_sub_session only under qwen serve by @DragonnZhang in #9425
  • fix(core): report remaining background agents by @tao943 in #9018
  • fix(core): cap the effort tier at what each endpoint accepts by @harjothkhara in #9501
  • fix(cli): probe microphone permission on recording start, not voice warmup by @Nas01010101 in #8912
  • fix(core): detect long verbatim repetition loops in content and reasoning streams by @yiliang114 in #9668
  • feat(scheduled-tasks): allow creating a task with an existing session by @yiliang114 in #9361
  • docs(agent): clarify parameter preconditions by @tao943 in #9580
  • fix(review): pin the verified git identity across the residue probe (#9557) by @wenshao in #9742
  • fix(core): surface nested sub-agent approvals under background parents by @wenshao in #9793
  • fix(core): mark agent launch failures as failed tool calls by @yiliang114 in #9519
  • refactor(goal): render Goal continuation prompts from one core renderer by @qqqys in #9581
  • fix(core): avoid ghost shutdown pending state by @AaronZ345 in #9550
  • fix(core): isolate fork cache readers by session by @tomsen02 in #9471
  • refactor(review): split SKILL.md into a core body plus verdict-gated reference files by @wenshao in #9804
  • feat(web-shell): compact agent activity summaries by @ytahdn in #9657
  • feat(auth): add Kimi (Moonshot AI) as a built-in third-party provider by @TianYuan1024 in #9814
  • fix(goal): count catalog previews in the unit their budget is written in by @qqqys in #9835
  • feat(core): show what a workflow will do, and scope the grant that approves it by @qqqys in #9837
  • feat(web-shell): expose agent task changes by @callmeYe in #9637
  • fix(cli): skip terminal redraw optimizer on WSL/ConPTY by @C0d3N1nja97342 in #7897
  • chore(ci): refresh the core issue-owner pool by @yiliang114 in #9808
  • fix(core): invalidate token counts recorded for a switched model route by @yiliang114 in #9506
  • fix(daemon): Bound conditional-close refusal holds by @doudouOUC in #9820
  • fix(core): allow hook-bounced workflow reapproval by @AaronZ345 in #9547
  • docs(vscode): correct minimum VS Code version by @AaronZ345 in #9852
  • fix(core)...
Read more

Release v0.22.0-nightly.20260824.3a1f86d805

Choose a tag to compare

What's Changed

  • fix(web-shell): pass session workspace cwd when opening from overview panel by @wenshao in #9730
  • fix(web-shell): fall back after stale mid-turn rejection by @ytahdn in #9732
  • fix(review): stop the fallback comment from firing on superseded runs by @wenshao in #9716
  • feat(review): add temporal-reachability and incident-replay lenses by @wenshao in #9708
  • fix(web-shell): stable pinned-section order and instant pin feedback by @yiliang114 in #9560
  • feat(review): ask each fix for its test, and rule on non-convergence by @wenshao in #9596
  • chore(ci): migrate autofix prose to the design record and ratchet growth by @wenshao in #9677
  • feat(cli): restore each daemon session onto its last selected model by @doudouOUC in #9687
  • feat(review): validate Aone inline anchors against the captured diff before posting by @wenshao in #9634
  • fix(ci): record qwen-autofix.yml's shipped size in the workflow size baseline by @wenshao in #9747
  • fix(ci): gate the fork signal on fields the review payload delivers by @qqqys in #9469
  • feat(goal): account the tokens a Goal spends by @qqqys in #9583
  • fix(core): reject session titles that echo the prompt's own examples by @yiliang114 in #9709
  • fix(core): parse the workflow meta literal instead of evaluating it by @qqqys in #9325
  • fix(sdk): support relative artifact download URLs by @ytahdn in #9734
  • fix(autofix): give the repair pass a budget it can finish in by @qqqys in #9691
  • feat(cli): enable dynamic workflows from a settings key by @qqqys in #9098
  • fix(core): widen the workflow stall watchdog past the transport retry ladder by @qqqys in #9397
  • test(core): pin that subagent registries carry no MCP instructions by @wenshao in #9720
  • fix(core): gate skill announcements on what the model was declared by @wenshao in #9718
  • feat(review): back pr-context on Aone Code targets by @wenshao in #9621
  • fix(review): count a fix-induced re-report as first-time work by @wenshao in #9744
  • docs(review): name the axis when two of them both call it "rank 3" by @wenshao in #9759
  • fix(web-shell): preview document-classified artifacts by @ytahdn in #9760
  • feat(web-shell): refresh composer skills incrementally after toggles by @samuelhsin in #9131
  • feat(review): back comment-status and presubmit for Aone Code targets by @wenshao in #9627
  • perf(cli): raise VP scroll rendering to 60 FPS by @DragonnZhang in #9681
  • feat(models): support dual-role image generation models by @callmeYe in #9650
  • fix(daemon): keep restored ask_user_question valid after load by @doudouOUC in #9763
  • feat(review): add the persistently-critical convergence advisory (land-with-residual-risk) by @wenshao in #9526
  • fix(core): support public GitHub extensions with older Git by @yiliang114 in #9690
  • feat(cua-driver): add versioned Computer Use SDK and release pipeline by @LaZzyMan in #9587
  • refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server by @LaZzyMan in #9499
  • fix(review): repair permissions before giving up on worktree cleanup by @wenshao in #9748
  • fix(core): Normalize both sides of the session title echo comparison by @yiliang114 in #9809
  • refactor(cli): enforce utils leaf-layer dependency direction (#9146) by @yiliang114 in #9737
  • fix(web-shell): cap React dev performance.measure accumulation to stop renderer OOM by @wenshao in #9770
  • fix(dingtalk): parse forwarded chat records by @qqqys in #9339
  • fix(web-shell): add remark-cjk-friendly so bold adjacent to CJK punct… by @cactuser-Lu in #9457
  • feat(mcp): add MCP 2026 core and WebShell Apps host by @samuelhsin in #8992
  • fix(config): allow prompt hooks in settings schema by @zjunothing in #8779
  • fix(web-shell): show reasoning effort before session creation by @callmeYe in #9599
  • fix(auth): let Vertex AI authenticate with Application Default Credentials by @axiom-of-choice in #9017
  • fix(ci): record cd-cua-driver.yml's shipped size in the workflow size baseline by @wenshao in #9822
  • feat(review): give verifiers a do-not-refute list and a constructible rejection bar by @wenshao in #9799

New Contributors

Full Changelog: v0.22.0...v0.22.0-nightly.20260824.3a1f86d805