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)

- 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
- refactor(goal): type the limit that stopped a Goal (#9165) by @qqqys
- test(review): close confirmed pin gaps from #9194 (batch 1) (#9225) by @yiliang114
- test(web-shell): pin silent failure of background artifact refreshes (#7427) (#9227) by @yiliang114
- test(review): realpath the skill-parity fixture root (#9269) by @wenshao
Full Changelog: v0.21.12...v0.21.13