npm @qwen-code/qwen-code 0.22.0
Release v0.22.0

44 minutes ago

Highlights

  • Web Shell prevents out-of-memory crashes by bounding transcript retention and trimming oversized replays. (#9303)
  • Review loops now explain instability by citing specific files with recurring findings or non-shrinking comment volumes. (#9461)
  • Autofix now audits PR approach for simplicity instead of stopping automation immediately upon a growth-budget breach. (#9262)
  • Web Shell keeps conversation turns expanded while background shells run, collapsing them only after completion. (#9632)
  • Created GitHub PRs are now bound to originating sessions with a searchable list and sidebar badge. (#9543)
  • Non-blocking slash commands now include eleven built-ins like /theme and /tools for immediate execution during streaming. (#9495)

Breaking Changes

No known breaking changes.

Web Shell Experience

Improves Web Shell stability, UI responsiveness, streaming performance, and conversation handling during active sessions.

  • Web Shell now bounds daemon transcript retention and trims oversized replays to prevent renderer out-of-memory crashes. (#9303)
  • Web Shell now keeps conversation turns expanded while their background shells are running, collapsing them only after completion. (#9632)
  • Fixes web-shell UI so subagent prompts scroll correctly and parallel-agent groups collapse immediately upon completion. (#9640)
  • Adds a hover tooltip to the create-group icon in Web Shell to clarify its function for mouse users. (#9400)
  • Updates the conversation loading indicator to use the daemon's hasActivePrompt state, ensuring it remains visible during long tool calls even when streaming is idle. (#9631)
  • Prevents the Web Shell tool-approval dialog from stealing keyboard focus when it appears while the user is actively typing in an editable element. (#9609)
  • Optimizes Web Shell streaming performance by reducing main-thread work and reloading oversized transcripts after 15 seconds of inactivity. (#9672)
  • Routes ordinary Web Shell messages based on session activity rather than Goal status to improve turn handling and insertion logic. (#9667)

Review & Autofix Logic

Enhances review loop explanations, Autofix auditing, convergence observations, and PR detection to reduce noise and improve automation reliability.

  • Review loops now explain why they are not settling by citing specific files with recurring findings or comment volumes that are not shrinking. (#9461)
  • Autofix now audits the PR approach for simplicity and minimal change instead of stopping automation immediately upon a growth-budget breach. (#9262)
  • Fixed autofix busy-PR detection to include pending workflow runs, preventing duplicate dispatches caused by GitHub status reporting delays. (#9662)
  • Adds machine-readable convergence observation codes like root-cause-triage and batch-fixes to enable automated review actions. (#9623)
  • Assigns review agents a dedicated subagent type with only six required tools to reduce token usage and improve performance. (#9678)
  • Adjusts review body trimming priority to preserve convergence observations about finding rates until all other advisory content is dropped. (#9715)
  • Extends the /review skill cleanup audit to Aone Code targets, flagging comments or edits made within the review window that were not submitted via the sanctioned path. (#9633)

Aone & GitHub Integration

Fixes Aone AGit-Flow caching, presubmit checks, and comment handling while binding GitHub PRs to sessions for better traceability.

  • Fixed incremental review caching for Aone AGit-Flow CRs by computing diffs between local heads instead of relying on ancestry tests that fail after amendments. (#9630)
  • Enabled /review presubmit on Aone targets to detect self-MRs and head drift by routing through the a1 CLI and comparing author identity. (#9629)
  • Updated /review --comment output on Aone targets to explicitly disclose that posted comments are unmarked and only join the generic discussion gate. (#9625)
  • Binds created GitHub PRs to their originating sessions with a searchable list and sidebar badge, supporting up to 10 PRs per session with latest-first ordering. (#9543)
  • Fixes Aone review support by generating canonical PR links directly from the platform and updating test-plan routing and version floors. (#9624)
  • Clears deferred Round-5 findings on the Aone write path, ensuring empty --host arguments fail distinctly and test pins correctly guard regressions. (#9604)
  • Adds a secure fallback path for installing public GitHub extensions on older Git versions by resolving commits via GitHub's anonymous API and downloading archives directly. (#9680)

Slash Commands & Tools

Expands non-blocking slash commands, stabilizes menu selection during streaming, and restores interactive HITL prompts on session resume.

  • Extends non-blocking slash commands to eleven built-ins like /theme and /tools, allowing immediate execution during streaming. (#9495)
  • Stabilizes slash-command menu selection while a response streams by preventing unnecessary re-runs of the suggestion search due to unrelated context updates. (#9508)
  • serve: restore ask_user_question HITL on session load/resume (#9665)
  • Integrates import widening logic into fetch-pr --since to streamline incremental scope calculation and reduce token usage. (#9332)

Security & Dependencies

Patches high-severity CVEs, secures sandbox images against tampering, and enforces stricter dependency and workflow security gates.

  • The sandbox image is now bound to its specific pulled digest to prevent tampering via mutable tags between resolve and consumption steps. (#9527)
  • Upgraded dependencies including OpenTelemetry 0.221.x and markdown-it 15 to resolve high-severity CVEs and enforced the security gate as a hard block. (#9584)
  • Bumps vulnerable dependencies including tar, protobufjs, dompurify, and echarts to patched versions to resolve CVE audits without changing code or package ranges. (#9703)
  • core: make list_directory opt-in (disabled by default) (#9424)

SDKs & Permissions

Updates Python and Java SDKs to support auto permission mode, aligning tool call approval behavior across all client libraries.

  • Updates Python and Java SDKs to support the auto permission mode, aligning them with the CLI and TypeScript SDK for LLM-based tool call approval. (#9003)

CI & Artifact Handling

Corrects CI fallback comments, fixes artifact download logic for Office files, and stabilizes verification gates with proper environment variables.

  • The CI fallback comment no longer incorrectly claims a review failed when the same run successfully posted a review earlier. (#9462)
  • Fixed artifact handling to expand recorded directories into per-file downloads while skipping hidden or junk files, and ensured Office documents download directly. (#9395)
  • Restores CI=true to autofix verification-gate launches to prevent test flakiness caused by missing environment variables in clean child processes. (#9649)
  • Excludes idle watchdog timeouts from the cumulative timeout cap so they no longer block PRs while remaining visible in logs. (#9673)

General Fixes

Addresses miscellaneous bugs including session recovery races, review body trimming, and daemon state synchronization issues.

  • Fixes session recovery across archive races by prioritizing active storage copies for REST, daemon ACP, and embedded ACP load operations. (#9513)
  • Removes root barrel self-imports in packages/core and adds an ESLint rule to prevent circular dependencies and enforce architecture boundaries. (#9635)
  • Refactors acp-integration and serve internals to enforce dependency boundaries with no intended behavior change for users. (#9144)
  • Moves the push-and-report workflow logic to a separate shell script to reduce YAML size while maintaining execution security. (#9653)
  • Adds translated Unset entries to all nine CLI locale dictionaries for consistent settings dialog display across languages. (#9714)
  • review: report the address a drive's service actually bound (#9655)

Other Changes

  • Release CI now disables install scripts during dependency installation and requires core maintainer approval for security-checks workflow changes. (#9577)
  • Corrected workflow comments to accurately state that the self-hosted ECS pool supports container runtime execution. (#9575)
  • Documents a new design for autofix that isolates trusted publishing steps from untrusted code execution to enhance security. (#9525)
  • Documents how inline terminal image previews render, including limits, fallbacks, and session-resume behavior. (#8656)
  • Documents the experimental Session Workflow setting, covering its default state, live updates, and Web Shell presentation. (#8554)
  • Documentation updated to clarify that autofix checks are derived strictly from patch text and to outline sequencing constraints for issue-autofix. (#9652)
  • autofix: add an operator guide for /takeover from N (#9622)
  • Corrects the autofix round-seed guide to clarify that any leading whitespace, including spaces, tabs, or newlines, prevents command recognition. (#9663)
  • Documents architectural invariants classified by enforcement mechanism including ESLint rules, tests, and tsconfig settings. (#9689)

中文摘要

亮点

  • Web Shell 通过限制转录保留并修剪过大的重放来防止内存溢出崩溃。 (#9303)
  • 审查循环现在通过指出存在重复问题的文件或评论数量未减少的情况来说明不稳定的原因。 (#9461)
  • Autofix 现在在超出增长预算时审计 PR 方法的简洁性,而不是立即停止自动化。 (#9262)
  • Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 (#9632)
  • 创建的 GitHub PR 现在绑定到其源会话,提供可搜索列表和侧边栏徽章。 (#9543)
  • 非阻塞斜杠命令现在扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 (#9495)

Web Shell 体验优化

提升 Web Shell 的稳定性、UI 响应速度、流式传输性能以及活跃会话期间的对话处理能力。

  • Web Shell 现在限制了守护进程转录保留并修剪过大的重放,以防止渲染器内存溢出崩溃。 (#9303)
  • Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 (#9632)
  • 修复 Web Shell UI,使子代理提示正常滚动且并行代理组在完成后立即折叠。 (#9640)
  • 为 Web Shell 中的 create-group 图标添加悬停提示,以便鼠标用户了解其功能。 (#9400)
  • 更新对话加载指示器以使用 daemon 的 hasActivePrompt 状态,确保在长时间工具调用期间即使流式传输空闲也能保持可见。 (#9631)
  • 防止 Web Shell 工具批准对话框在用户正在可编辑元素中输入时弹出并窃取键盘焦点。 (#9609)
  • 通过减少主线程工作并在空闲 15 秒后重载过大转录文本来优化 Web Shell 流式传输性能。 (#9672)
  • 根据会话活动而非 Goal 状态路由普通 Web Shell 消息,以改进轮次处理和插入逻辑。 (#9667)

审查与自动修复逻辑

增强审查循环解释、Autofix 审计、收敛观察及 PR 检测功能,以减少噪音并提升自动化可靠性。

  • 审查循环现在会说明未稳定的原因,指出存在重复问题的文件或评论数量未减少的情况。 (#9461)
  • Autofix 现在在超出增长预算时审计 PR 方法的简洁性和最小变更,而不是立即停止自动化。 (#9262)
  • 修复了 autofix 繁忙 PR 检测逻辑以包含 pending 状态的工作流运行,防止因 GitHub 状态报告延迟导致的重复分发。 (#9662)
  • 添加了 root-cause-triage 和 batch-fixes 等机器可读的收敛观察代码以支持自动化审查操作。 (#9623)
  • 为审查代理分配仅含六个必要工具的专用子代理类型,以减少令牌使用并提升性能。 (#9678)
  • 调整审查正文裁剪优先级,确保在丢弃其他建议内容前保留关于发现率的收敛观察。 (#9715)
  • 将 /review 技能清理审计扩展至 Aone Code 目标,标记在审查窗口内未经过批准路径提交的评论或编辑。 (#9633)

Aone 与 GitHub 集成

修复 Aone AGit-Flow 缓存、预提交检查及评论处理,并将 GitHub PR 绑定至会话以提升可追溯性。

  • 修复了 Aone AGit-Flow CR 的增量审查缓存,通过计算本地头之间的差异而非依赖修正后失效的祖先测试。 (#9630)
  • 启用了 Aone 目标上的 /review presubmit 功能,通过 a1 CLI 路由并比对作者身份来检测 self-MR 和头部分支漂移。 (#9629)
  • 更新了 Aone 目标上 /review --comment 的输出,明确说明发布的评论未标记且仅加入通用讨论网关。 (#9625)
  • 将创建的 GitHub PR 绑定到其源会话,提供可搜索列表和侧边栏徽章,每会话支持最多 10 个 PR 并按最新优先排序。 (#9543)
  • 修复 Aone 审查支持,直接从平台生成规范 PR 链接,并更新 test-plan 路由和版本下限。 (#9624)
  • 清理 Aone 写入路径上延迟的第五轮发现,确保空 --host 参数明确失败且测试桩正确防护回归。 (#9604)
  • 为旧版 Git 添加安全回退路径,通过 GitHub 匿名 API 解析提交并直接下载归档,以安装公共 GitHub 扩展。 (#9680)

斜杠命令与工具

扩展非阻塞斜杠命令,稳定流式传输期间的菜单选择,并在会话恢复时还原交互式 HITL 提示。

  • 将非阻塞斜杠命令扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 (#9495)
  • 通过防止因无关上下文更新而重新运行建议搜索,稳定响应流式传输时的斜杠命令菜单选择。 (#9508)
  • serve: restore ask_user_question HITL on session load/resume (#9665)
  • 将导入扩展逻辑集成到 fetch-pr --since 中,以简化增量范围计算并减少 token 使用量。 (#9332)

安全与依赖项

修补高危 CVE 漏洞,防止沙箱镜像被篡改,并执行更严格的依赖项与工作流安全网关。

  • 沙箱镜像现在绑定到其特定的拉取摘要,以防止在解析和使用步骤之间通过可变标签进行篡改。 (#9527)
  • 升级了 OpenTelemetry 0.221.x 和 markdown-it 15 等依赖以修复高危 CVE,并将安全网关设为强制拦截。 (#9584)
  • 提升 tar、protobufjs、dompurify 和 echarts 等易受攻击依赖项至修补版本,以解决 CVE 审计问题,无需更改代码或包范围。 (#9703)
  • core: make list_directory opt-in (disabled by default) (#9424)

SDK 与权限管理

更新 Python 和 Java SDK 以支持 auto 权限模式,统一所有客户端库的工具调用审批行为。

  • 更新 Python 和 Java SDK 以支持 auto 权限模式,使其与 CLI 和 TypeScript SDK 在基于 LLM 的工具调用审批上保持一致。 (#9003)

CI 与工件处理

修正 CI 回退评论,修复 Office 文件的工件下载逻辑,并通过正确的环境变量稳定验证网关。

  • CI 回退评论不再错误地声称审查失败,如果同一运行已成功发布审查。 (#9462)
  • 修复了工件处理逻辑,将目录展开为单文件下载并跳过隐藏文件,同时确保 Office 文档直接下载。 (#9395)
  • 恢复 autofix verification-gate 启动时的 CI=true,防止因清理子进程缺少环境变量导致的测试不稳定。 (#9649)
  • 将空闲看门狗超时排除在累计超时上限之外,使其不再阻塞 PR 但仍保留在日志中。 (#9673)

常规修复

解决包括会话恢复竞争、审查正文裁剪及守护进程状态同步在内的各类杂项问题。

  • 修复跨归档竞争的会话恢复,优先在 REST、daemon ACP 和 embedded ACP 加载操作中使用活动存储副本。 (#9513)
  • 移除 packages/core 中的根桶自导入并添加 ESLint 规则,防止循环依赖并强制架构边界。 (#9635)
  • 重构 acp-integration 和 serve 内部结构以强制依赖边界,对用户无预期行为变更。 (#9144)
  • 将 push-and-report 工作流逻辑移至单独的 Shell 脚本,在保持执行安全性的同时减小 YAML 文件体积。 (#9653)
  • 为所有九种 CLI 语言字典添加了 Unset 翻译条目,以确保设置对话框的多语言显示一致性。 (#9714)
  • review: report the address a drive's service actually bound (#9655)

其他变更

  • 发布 CI 现在在安装依赖时禁用安装脚本,并需要核心维护者批准 security-checks 工作流的更改。 (#9577)
  • 更正了工作流注释,准确说明自托管 ECS 池支持容器运行时执行。 (#9575)
  • 文档化了 autofix 的新设计,将可信发布步骤与不可信代码执行隔离以增强安全性。 (#9525)
  • 文档化了终端内联图片预览的渲染方式,包括限制、回退机制和会话恢复行为。 (#8656)
  • 文档化了实验性 Session Workflow 设置,涵盖其默认状态、实时更新和 Web Shell 展示方式。 (#8554)
  • 文档更新了 autofix 检查仅源自 patch 文本的说明,并概述了 issue-autofix 的时序约束。 (#9652)
  • autofix: add an operator guide for /takeover from N (#9622)
  • 修正 autofix round-seed 指南,明确任何前导空白(包括空格、制表符或换行)都会导致命令无法识别。 (#9663)
  • 文档化了按执行机制分类的架构不变量,包括 ESLint 规则、测试和 tsconfig 设置。 (#9689)
Complete Change List (50 pull requests)

Features

  • review: tell the author why a review loop is not settling (#9461) by @wenshao
  • web-shell: keep a turn expanded while its background shell runs (#9632) by @ytahdn
  • autofix: audit the approach instead of stopping on growth-budget breach (#9262) by @wenshao
  • review: fold the one-hop import widening into fetch-pr --since (#9332) by @wenshao
  • core: make list_directory opt-in (disabled by default) (#9424) by @DragonnZhang
  • cli: extend non-blocking slash commands to more builtins (#9495) by @DragonnZhang
  • review: disclose that Aone posts join the discussion gate only (#9625) by @wenshao
  • review: detect self-MR on Aone targets in presubmit (#9629) by @wenshao
  • web-shell: Bind GitHub PRs to sessions with sidebar badge and search (#9543) by @wenshao
  • review: give the convergence observation a machine-readable half (#9623) by @wenshao
  • review: report the address a drive's service actually bound (#9655) by @wenshao
  • review: close Aone residual gaps — composeUrl, test-plan routing, a1 version floor (#9624) by @wenshao
  • serve: restore ask_user_question HITL on session load/resume (#9665) by @doudouOUC

Bug Fixes

  • ci: stop the fallback comment from denying a review it already posted (#9462) by @wenshao
  • web-shell: bound daemon transcript retention to stop renderer OOM crashes (#9303) by @wenshao
  • autofix: bind the sandbox image to its pulled digest (#9527) by @wenshao
  • web-shell: settle parallel-agents collapse and unify agent detail transcript (#9640) by @ytahdn
  • web-shell: show create-group tooltip (#9400) by @deggs7
  • artifacts: expand recorded directories into per-file artifacts (#9395) by @zjgzx1988
  • review: make the incremental cache work for Aone AGit-Flow CRs (#9630) by @wenshao
  • autofix: include pending runs in the busy-PR enumeration (#9662) by @wenshao
  • web-shell: use daemon live-state hasActivePrompt for loading indicator (#9487) (#9631) by @yiliang114
  • cli: keep slash menu selection stable while a response streams (#9508) by @yiliang114
  • web-shell: don't steal approval focus while the user is typing (#9609) by @yiliang114
  • core: support public GitHub extensions with older Git (#9680) by @yiliang114
  • ci: bump vulnerable dependencies to unblock CVE audit (#9703) by @yiliang114
  • review: audit Aone targets in cleanup's bypass tripwire (#9633) by @wenshao
  • autofix: stop counting idle timeouts toward the timeout cap (#9673) by @wenshao
  • web-shell: route goal messages by session activity (#9667) by @ytahdn
  • autofix: pass CI=true through the gate's env -i launches (#9649) by @wenshao
  • review: stop shedding the convergence observation first (#9715) by @wenshao
  • review: clear the deferred Round-5 findings from the Aone write path (#9604) by @wenshao
  • cli: Recover sessions across archive races (#9513) by @doudouOUC
  • sdk: support "auto" permission mode (#9003) by @shenyankm

Performance

  • web-shell: optimize streaming transcript rendering (#9672) by @ytahdn
  • review: give review agents their own subagent type (#9678) by @wenshao

Documentation

  • ci: the ECS pool does run containers — correct two comments that say it does not (#9575) by @wenshao
  • autofix: design runner-level isolation for PAT-bearing steps (#9525) by @wenshao
  • document inline terminal image previews (#8656) by @DragonnZhang
  • document the Session Workflow setting (#8554) by @DragonnZhang
  • autofix: pin the publish-side checks to the patch text (#9652) by @wenshao
  • autofix: add an operator guide for /takeover from N (#9622) by @wenshao
  • autofix: correct the round-seed guide on leading whitespace (#9663) by @wenshao
  • classify architecture invariants by enforcement mechanism (#9152) (#9689) by @yiliang114

Internal Changes

  • chore(ci): Disable install scripts in release CI and guard security-checks workflow (#9577) by @yiliang114
  • chore(deps): Clear high-severity CVE baseline and harden the security gate (#9584) by @yiliang114
  • i18n(cli): translate Unset in the settings dialog (#9714) by @yiliang114
  • refactor(autofix): move the push-and-report body out of the workflow file (#9653) by @wenshao
  • refactor(cli): keep acp-integration off serve internals (#8084) (#9144) by @yiliang114
  • refactor(core): remove root barrel self-imports and enforce the boundary (#9635) by @yiliang114

New Contributors

Full Changelog: v0.21.15...v0.22.0

Don't miss a new qwen-code release

NewReleases is sending notifications on new releases.