npm @qwen-code/qwen-code 0.21.13
Release v0.21.13

2 hours ago

Highlights

  • Web Shell composer now supports dragging, dropping, and pasting text files as named attachments alongside images. (#9180)
  • Users can now fork conversations from any specific Assistant response using durable checkpoints to ensure branch accuracy. (#8817)
  • Split-view panes now inherit the host's @ mention configuration, ensuring custom categories and exclusions apply consistently. (#9052)
  • The /review skill now uses dedicated platform subcommands like meta and fetch-diff instead of executing raw gh commands. (#9096)
  • Stopped takeover PRs now receive an autofix/needs-human label and appear in a new Takeover pool table on the dashboard. (#8960)
  • Review sessions now record session IDs and diff hashes to enable crediting agent work across interrupted runs. (#9091)

Breaking Changes

No known breaking changes.

Review Workflow & /review Skill

Enhanced the /review skill with dedicated subcommands, dynamic finding limits, and improved concurrency handling to prevent loops and ensure accurate reporting.

  • Split-view panes now inherit the host's @ mention configuration, ensuring custom categories appear and builtinAtProviders exclusions apply consistently. (#9052)
  • The /review skill now uses dedicated platform subcommands like meta and fetch-diff instead of executing raw gh commands via prompt prose. (#9096)
  • The /review command now limits posted suggestions to Critical findings after round 5 to prevent review loops, while deferring other findings to the final report. (#9118)
  • Review workflow concurrency now isolates no-op human review requests to prevent them from blocking active PR review jobs. (#9210)
  • Duplicate suggestions in /review are now listed in a dedicated paragraph with links to existing comments instead of being counted as anchor failures. (#9215)
  • The /review presubmit gate now correctly handles carried-id re-posts to prevent dropping valid findings that match existing comment IDs. (#9212)
  • Fixed the /review pipeline to accept bracketed source tags and added a --to-anchors option to normalize inputs for final gates. (#9222)
  • The PR review workflow now posts a fallback comment with retry guidance if the main review job dies abnormally. (#9255)
  • Review sessions now record session IDs and diff hashes to enable crediting agent work across interrupted runs. (#9091)
  • Review runners now automatically wipe and retry failed checkouts to self-heal from persistent workspace corruption. (#9220)
  • PR review worktree leases now act as locks to prevent concurrent sessions from destroying active review states during setup or cleanup. (#9211)

Autofix & Takeover Management

Improved Autofix visibility with new dashboard pools and labels, while refining footprint gates and growth tracking for better takeover handling.

  • autofix: deny-by-default footprint gate and positional window censuses (#9156)
  • Stopped takeover PRs now receive an autofix/needs-human label and appear in a new Takeover pool table on the dashboard for better visibility. (#8960)
  • The autofix-growth-now marker now uses the prepare-time measurement instant to ensure growth divergence reports accurately reflect the correct base version. (#9192)
  • Prevented the triage agent from processing tracking issues created by the autofix bot by adding a user login guard to the workflow trigger. (#9271)

Reverse-Audit & Findings Tracking

Optimized reverse-audit rounds based on diff size and ensured verified findings outside PR footprints are tracked in dedicated issues.

  • The reverse-audit round cap now scales dynamically based on diff topology, allowing more rounds for small diffs and fewer for huge ones. (#9183)
  • The reverse-audit round cap for huge diffs is now reduced to three only when the run has a clock; otherwise, it remains at five. (#9203)
  • Verified findings outside the PR footprint are now deferred to a follow-up queue and tracked in a dedicated issue instead of being lost. (#9189)
  • Reverse-audit now reports retirement failures with specific diagnostics and accepts additional punctuation separators in dry-receipt parsing. (#9213)
  • Presubmit overlap lists are now written to a separate file to prevent overwriting the canonical findings artifact. (#9268)

Web Shell & User Interface

Added support for dragging and pasting text files in Web Shell and improved release note presentation with bilingual digests.

  • The Web Shell composer now supports dragging, dropping, and pasting text files as named attachments alongside images. (#9180)
  • Release notes are now presented as a user-friendly digest grouped by capability themes with bilingual English and Chinese summaries and attached screenshots. (#9216)
  • Skill bodies are now redacted from Web Shell event surfaces to reduce payload size while remaining available for native ACP clients. (#9235)

Conversation & Session Control

Enabled forking conversations from specific responses and improved session resilience to preserve active work during shutdowns.

  • Users can now fork conversations from any specific Assistant response using durable checkpoints to ensure branch accuracy. (#8817)
    Screenshot from pull request 8817
    Screenshot from pull request 8817
  • Established a hidden runtime boundary for Conversations to isolate ownership and lifecycle while preserving existing owner-routed compatibility paths. (#9181)
  • Sessions now preserve active work when close is refused by draining queued tasks within an 8-second budget before tearing down the session. (#9134)

CLI Tools & Extensions

Introduced External Context Provider profiles and added flags to qwen review commands for incremental validation and scoping.

  • Introduced the External Context Provider Extension Profile v1 to enable provider-owned retrieval integrations via Qwen Extension and MCP boundaries. (#9068)
  • Added --since flag to qwen review fetch-pr for validating incremental review anchors and scoping diffs based on local cache or ledger markers. (#9100)
  • The runAllChunks command now outputs a diagnostic message on stderr when --all-chunks fans out a plan identified as Step 3A. (#9249)
  • Fixed a bug where the findings command could silently overwrite input files when using --to-anchors and added validation to prevent flag wiring mismatches. (#9270)

Infrastructure & Reliability

Strengthened CI pipelines, resource limits, and automation workflows to prevent build failures and ensure consistent agent settings.

  • ci: skip non-bot review_requested siblings before jobs spend compute (#9204)
  • The hourly spam-minimization sweep now includes inline pull request review comments to block unwanted content effectively. (#9229)
  • Increased the browser daemon SDK bundle size budget to 191 KiB to accommodate new attachment metadata and fix build failures. (#9238)
  • ACP HTTP pre-attach buffers are now strictly bounded by byte count and frame limits to prevent resource exhaustion. (#9007)
  • Release jobs now force-push release branches to prevent non-fast-forward errors during retries after previous failed publication attempts. (#9082)
  • Fixed automation workflows to correctly pass agent settings like turn caps and tool allowlists that were previously silently dropped. (#9252)

Other Fixes & Improvements

Addressed various edge cases in tracing, mocking, and goal summarization to ensure system stability.

  • goal: summarise the last Goal when a turn holds no permit (#9164)
  • Fixed main-agent tracing edge cases regarding budget-triggered aborts, non-streaming calls, and deferred TUI tool batch ownership. (#9121)
  • Fixed mock ACP child fixtures in integration tests to correctly handle the tool-guard handshake required by qwen serve. (#9161)

Other Changes

  • Added an internal limitKind field to GoalRecord to improve how stopped Goals are typed, with no change to user-facing resume behavior. (#9165)
  • Added test-only pins to verify ordering invariants and write-target paths without changing production behavior. (#9225)
  • Tests now verify that background artifact refresh failures silently preserve the last successful state without showing errors or clearing the panel. (#9227)
  • Fixed skill-parity tests on macOS by resolving the fixture root with realpath to ensure path consistency when tmpdir is a symlink. (#9269)

中文摘要

亮点

  • Web Shell 编辑器现在支持拖放和粘贴文本文件作为命名附件,与图片并列显示。 (#9180)
  • 用户现在可以使用持久化检查点从任意 Assistant 回复分叉对话,以确保分支准确性。 (#8817)
  • 分屏视图现在继承主机的 @ 提及配置,确保自定义类别显示且 builtinAtProviders 排除项一致生效。 (#9052)
  • /review 技能现在使用 meta 和 fetch-diff 等专用平台子命令,不再通过提示文本执行原始 gh 命令。 (#9096)
  • 停止的接管 PR 现在获得 autofix/needs-human 标签,并在仪表板的 Takeover pool 表中显示。 (#8960)
  • 审查会话现在记录会话 ID 和差异哈希,以便在中断的运行中确认代理工作。 (#9091)

审查工作流与 /review 技能

增强了 /review 技能,引入专用子命令、动态发现限制及改进的并发处理,以防止循环并确保报告准确。

  • 分屏视图现在继承主机的 @ 提及配置,确保自定义类别显示且 builtinAtProviders 排除项一致生效。 (#9052)
  • /review 技能现在使用 meta 和 fetch-diff 等专用平台子命令,不再通过提示文本执行原始 gh 命令。 (#9096)
  • /review 命令在第 5 轮后仅发布 Critical 建议以避免循环,其他发现将延迟至最终报告。 (#9118)
  • 审查工作流并发现在隔离无效的人类审查请求,防止其阻塞活跃的 PR 审查作业。 (#9210)
  • /review 中的重复建议现在列在带有现有评论链接的专用段落中,不再计为锚点失败。 (#9215)
  • /review 预提交网关现在正确处理携带 ID 的重新发布,防止丢弃匹配现有评论 ID 的有效发现。 (#9212)
  • 修复了 /review 管道以接受带括号来源标签,并添加了 --to-anchors 选项以规范化最终网关的输入。 (#9222)
  • 如果主审查作业异常终止,PR 审查工作流现在会发布包含重试指南的备用评论。 (#9255)
  • 审查会话现在记录会话 ID 和差异哈希,以便在中断的运行中确认代理工作。 (#9091)
  • 审查运行器现在会自动清除并重试失败的检出,以从持久性工作区损坏中自我修复。 (#9220)
  • PR 审查工作树租约现在充当锁,防止并发会话破坏正在进行的审查状态。 (#9211)

Autofix 与接管管理

通过新仪表板池和标签提升 Autofix 可见性,同时优化足迹门控和增长追踪以更好地处理接管任务。

  • autofix: deny-by-default footprint gate and positional window censuses (#9156)
  • 停止的接管 PR 现在获得 autofix/needs-human 标签,并在仪表板的 Takeover pool 表中显示。 (#8960)
  • autofix-growth-now 标记现在使用准备时的测量时刻,确保增长差异报告准确反映正确的基准版本。 (#9192)
  • 通过在工作流触发器中添加用户登录守卫,防止审查代理处理 autofix bot 创建的跟踪问题。 (#9271)

逆向审计与发现追踪

根据差异大小优化逆向审计轮次,并确保 PR 范围外的已验证发现在专用 issue 中追踪。

  • reverse-audit 轮次上限现在根据 diff 拓扑动态调整,小 diff 允许更多轮次,大 diff 则减少。 (#9183)
  • 只有当运行有时钟时,巨大差异的反向审计轮次上限才会降至三,否则保持为五。 (#9203)
  • PR 范围外已验证的发现现在推迟到后续队列,并在专用 issue 中跟踪,避免丢失。 (#9189)
  • 逆向审计现在报告具体的退休失败诊断信息,并在干接收解析中接受更多标点分隔符。 (#9213)
  • 预提交重叠列表现在写入单独的文件,以防止覆盖规范 findings 工件。 (#9268)

Web Shell 与用户界面

在 Web Shell 中支持拖放和粘贴文本文件,并通过双语摘要改进发布说明展示。

  • Web Shell 编辑器现在支持拖放和粘贴文本文件作为命名附件,与图片并列显示。 (#9180)
  • 发布说明现在按功能主题分组,提供双语摘要和截图,更易于用户阅读。 (#9216)
  • 已从 Web Shell 事件表面中剔除技能正文以减少负载大小,同时保留对原生 ACP 客户端的可用性。 (#9235)

对话与会话控制

支持从特定回复分叉对话,并增强会话弹性以在关闭时保留活跃工作。

  • 用户现在可以使用持久化检查点从任意 Assistant 回复分叉对话,以确保分支准确性。 (#8817)
  • 为 Conversations 建立隐藏运行时边界以隔离所有权和生命周期,同时保留现有的所有者路由兼容路径。 (#9181)
  • 当关闭被拒绝时,会话现在会在 8 秒内排空排队任务再销毁会话,从而保留正在进行的活跃工作。 (#9134)

CLI 工具与扩展

引入外部上下文提供者配置,并为 qwen review 命令添加标志以支持增量验证和范围限定。

  • 引入 External Context Provider Extension Profile v1,支持通过 Qwen Extension 和 MCP 边界提供独立的检索集成。 (#9068)
  • 为 qwen review fetch-pr 添加 --since 标志,用于验证增量审查锚点并基于本地缓存或账本标记限定差异范围。 (#9100)
  • 当 --all-chunks 分发被识别为 Step 3A 的计划时,runAllChunks 命令现在会在 stderr 输出诊断信息。 (#9249)
  • 修复了 findings 命令在使用 --to-anchors 时可能静默覆盖输入文件的问题,并增加了标志验证。 (#9270)

基础设施与可靠性

强化 CI 流水线、资源限制及自动化工作流,以防止构建失败并确保代理设置一致。

  • ci: skip non-bot review_requested siblings before jobs spend compute (#9204)
  • 每小时垃圾邮件最小化扫描现在包含内联 PR 审查评论,以有效阻止不需要的内容。 (#9229)
  • 将 browser daemon SDK 包大小预算提升至 191 KiB 以容纳新的附件元数据并修复构建失败。 (#9238)
  • ACP HTTP 预附加缓冲区现在严格按字节数和帧数限制,以防止资源耗尽。 (#9007)
  • 发布任务现在强制推送 release 分支,防止因之前失败尝试导致的非快进错误在重试时阻塞发布。 (#9082)
  • 修复了自动化工作流,正确传递之前被静默丢弃的代理设置(如轮次上限和工具允许列表)。 (#9252)

其他修复与改进

解决了追踪、模拟和目标摘要中的各种边缘情况,以确保系统稳定性。

  • goal: summarise the last Goal when a turn holds no permit (#9164)
  • 修复了 main-agent 追踪中关于预算触发中止、非流式调用和延迟 TUI 工具批处理所有权的边缘情况。 (#9121)
  • 修复了集成测试中的 mock ACP child 以正确处理 qwen serve 所需的 tool-guard 握手。 (#9161)

其他变更

  • 在 GoalRecord 中添加了内部 limitKind 字段以改进已停止 Goal 的类型定义,不影响用户可见的恢复行为。 (#9165)
  • 添加了仅用于测试的固定项以验证顺序不变量和写入目标路径,不改变生产行为。 (#9225)
  • 测试验证后台构件刷新失败时静默保留上次成功状态,不显示错误也不清空面板。 (#9227)
  • 通过在 macOS 上对 fixture 根目录使用 realpath 修复技能一致性测试,确保 tmpdir 为符号链接时的路径一致性。 (#9269)
Complete Change List (43 pull requests)

Features

  • autofix: deny-by-default footprint gate and positional window censuses (#9156) by @wenshao
  • review: absorb prose gh commands into platform-backed subcommands (#9096) by @wenshao
  • support fork from any conversation (#8817) by @water-in-stone
  • web-shell: support text file attachments in the composer (#9180) by @doudouOUC
  • review: adopt a round-aware convergence posture for posted findings (#9118) by @wenshao
  • autofix: escalate stopped takeover PRs and age out unanswered pauses (#8960) by @wenshao
  • review: scale the reverse-audit round cap to the diff topology (#9183) by @wenshao
  • review: apply the huge round reduction only when the run has a clock (#9203) by @wenshao
  • autofix: defer verified out-of-footprint findings to a surviving follow-up queue (#9189) by @wenshao
  • review: run-session ledger and cross-session agent evidence (#9091) by @wenshao
  • external-context: Add provider extension profile (#9068) by @doudouOUC
  • review: validate and scope the incremental anchor inside fetch-pr (#9100) by @wenshao
  • daemon: Isolate the Conversations runtime boundary (#9181) by @doudouOUC
  • release: user-facing bilingual digest for release notes (#9216) by @wenshao

Bug Fixes

  • web-shell: share at mention providers with split-view panes (#9052) by @samuelhsin
  • ci: skip non-bot review_requested siblings before jobs spend compute (#9204) by @yiliang114
  • ci: minimize spam inline review comments (#9229) by @yiliang114
  • ci: keep no-op review requests out of the PR review concurrency group (#9210) by @wenshao
  • integration-tests: ack daemon tool-guard handshake in the mock ACP child (#9159) (#9161) by @qwen-code-dev-bot
  • sdk: raise daemon browser bundle budget to 191KB (#9238) by @wenshao
  • review: note when --all-chunks fans out a plan whose numbers say 3A (#9249) by @yiliang114
  • telemetry: Address main agent tracing edge cases (#9121) by @doudouOUC
  • review: give duplicate-dropped Suggestions their own compose state and body sentence (#9215) by @wenshao
  • autofix: re-anchor growth divergence on measurement time and external head moves (#9192) by @wenshao
  • ci: stop dropping agent settings in resolve and follow-up workflows (#9252) by @wenshao
  • goal: summarise the last Goal when a turn holds no permit (#9164) by @qqqys
  • serve: redact skill bodies from the Web Shell event surface (#9235) by @wenshao
  • review: exempt carried-id re-posts from the presubmit overlap drop (#9212) by @yiliang114
  • review: normalize last-gate inputs and anchor mid-line fragments (#9222) by @wenshao
  • review: fix silent reverse-audit retirement failures and keep non-converged evidence (#9213) by @wenshao
  • ci: keep a fallback comment when the PR review runner dies (#9255) by @wenshao
  • serve: Bound ACP HTTP pre-attach buffers by bytes (#9007) by @doudouOUC
  • ci: self-heal failed checkouts on the reused review runners (#9220) by @wenshao
  • review: keep the presubmit overlap list out of the canonical findings artifact (#9268) by @wenshao
  • ci: force-push release branch so retries replace failed attempts (#9076) (#9082) by @qwen-code-dev-bot
  • ci: stop triaging the autofix bot's own deferred-finding tracking issues (#9264) (#9271) by @yiliang114
  • daemon: Preserve sessions when active-work close is refused (#9134) by @doudouOUC
  • review: close out the four leftover findings from the #9222 review (#9270) by @wenshao
  • review: lock the PR review worktree lease against concurrent sessions (#9211) by @wenshao

Internal Changes

Full Changelog: v0.21.12...v0.21.13

Don't miss a new qwen-code release

NewReleases is sending notifications on new releases.