<!-- qwen-release-notes:v1 -->
## 亮点
- 支持通过拖放或 @ 文件面板将工作区文件上传至 Web Shell 编辑器,并带有进度跟踪。 ([#8874](https://github.com/QwenLM/qwen-code/pull/8874))
- 在自动修复审查中实现了差异增长限制,使用可配置预算限制每个窗口内源代码和测试行的增加量。 ([#8981](https://github.com/QwenLM/qwen-code/pull/8981))
- 已确认的严重问题现在需要已执行的见证者及观察到的输出,未经验证的声明将自动降级为低置信度。 ([#9065](https://github.com/QwenLM/qwen-code/pull/9065))
- 守护进程现在自适应扩展实时日志上限,每会话最高可达 256 MiB,以防止长轮次期间数据丢失。 ([#8905](https://github.com/QwenLM/qwen-code/pull/8905))
- 修复了桌面应用侧边栏的视觉抖动,并确保外部 URL 能通过系统浏览器可靠打开。 ([#9073](https://github.com/QwenLM/qwen-code/pull/9073), [#9069](https://github.com/QwenLM/qwen-code/pull/9069), [#9111](https://github.com/QwenLM/qwen-code/pull/9111))
- 紧凑模式现在将模型推理显示为可折叠摘要,并跟踪后台 Shell 活动以防止过早清理。 ([#9148](https://github.com/QwenLM/qwen-code/pull/9148), [#9042](https://github.com/QwenLM/qwen-code/pull/9042))
## 破坏性变更
暂无已知的破坏性变更。
## 完整变更列表
### 新功能
- 支持通过拖放或 @ 文件面板直接将工作区文件上传至 Web Shell 编辑器,并带有进度跟踪。 ([#8874](https://github.com/QwenLM/qwen-code/pull/8874)) by @ytahdn
- 在自动修复审查中实现了差异增长限制,使用可配置预算限制每个窗口内源代码和测试行的增加量。 ([#8981](https://github.com/QwenLM/qwen-code/pull/8981)) by @wenshao
- 守护进程现在自适应扩展实时日志上限,每会话最高可达 256 MiB,在截断重放条目前使用共享内存池以防止长轮次期间数据丢失。 ([#8905](https://github.com/QwenLM/qwen-code/pull/8905)) by @wenshao
- 已确认的严重问题现在需要已执行的见证者及观察到的输出,未经验证的声明将自动降级为低置信度,并在 PR 帖子中隐藏。 ([#9065](https://github.com/QwenLM/qwen-code/pull/9065)) by @wenshao
- 审查账本标记现在包含锚点提交 SHA,以确保跨环境的增量差异范围准确,并防止对未审查范围进行认证。 ([#9067](https://github.com/QwenLM/qwen-code/pull/9067)) by @wenshao
- 新增用户设置以控制审查归属页脚、默认工作量级别和默认评论,防止仓库文件覆盖这些策略。 ([#8994](https://github.com/QwenLM/qwen-code/pull/8994)) by @wenshao
- 通过阿里云 API 网关域名路由的请求现在正确包含用于会话跟踪和日志关联的元数据字段。 ([#9103](https://github.com/QwenLM/qwen-code/pull/9103)) by @yiliang114
- 为守护进程日志添加了可选的 OpenTelemetry 追踪和跨度 ID,以改善采样请求的关联和调试能力。 ([#9084](https://github.com/QwenLM/qwen-code/pull/9084)) by @doudouOUC
- 为所有工作流代理调度启用了逐代理 JSONL 转录,以一致地记录提示词、工具调用和结果。 ([#8971](https://github.com/QwenLM/qwen-code/pull/8971)) by @qqqys
- `/review` 命令现在前瞻性地识别并报告整个类别的无界缺陷,而不是逐个列出单个实例。 ([#9095](https://github.com/QwenLM/qwen-code/pull/9095)) by @wenshao
- 主代理调用现在生成符合 OpenTelemetry 规范的追踪,具有稳定的标识符以及针对成功、取消和错误的正确状态语义。 ([#9107](https://github.com/QwenLM/qwen-code/pull/9107)) by @doudouOUC
- 后台 Shell 现在在 activeWork 中跟踪,支持显式协商 Shell 类别,并防止在 Shell 活动期间过早自动清理。 ([#9042](https://github.com/QwenLM/qwen-code/pull/9042)) by @doudouOUC
- Web Shell 通道管理现在支持完整的策略配置、工作区绑定,以及与其他管理界面一致的重设计界面。 ([#8848](https://github.com/QwenLM/qwen-code/pull/8848)) by @qqqys
- 当自动修复差异在多个轮次中超出增长预算时,新增自动升级机制通知维护者,而非无限期打补丁。 ([#9104](https://github.com/QwenLM/qwen-code/pull/9104)) by @wenshao
- 更新审查循环,基于内容准确性验证反馈,而非仅依赖作者身份。 ([#8996](https://github.com/QwenLM/qwen-code/pull/8996)) by @wenshao
- 新增防护机制,阻止模型发出的命令对当前会话目录之外的跨工作树进行 Git 修改。 ([#8687](https://github.com/QwenLM/qwen-code/pull/8687)) by @wenshao
- 紧凑模式(Ctrl+O)现在将模型推理显示为可折叠的“思考中…”摘要,而非完全隐藏。 ([#9148](https://github.com/QwenLM/qwen-code/pull/9148)) by @ytahdn
### 错误修复
- 修复了独立 Web Shell 中的一个问题,由于会话目标同步错误,导致首次提示可能无法提交。([#9038](https://github.com/QwenLM/qwen-code/pull/9038)) by @ytahdn
- 更新了发布工作流,允许自动化机器人完全批准发布拉取请求,无需人工干预。([#9056](https://github.com/QwenLM/qwen-code/pull/9056)) by @yiliang114
- 确保在守护进程模式下,跨模型请求和异步流时 OpenTelemetry 的会话所有权得到正确保留。([#9077](https://github.com/QwenLM/qwen-code/pull/9077)) by @doudouOUC
- 通过为滚动条留白区域预留空间,修复了桌面应用侧边栏项目列表的视觉抖动问题。([#9073](https://github.com/QwenLM/qwen-code/pull/9073)) by @yiliang114
- 修复了一个安全漏洞,内联级别的引用可能绕过层级门控,确保只有正确遍历的块级引用才能触发审批上限。([#9020](https://github.com/QwenLM/qwen-code/pull/9020)) by @wenshao
- 自动修复验证门控现在对运行器的 Git 配置完全隔离,防止主机级设置污染后续测试运行。([#8961](https://github.com/QwenLM/qwen-code/pull/8961)) by @wenshao
- 修复了 Web Shell 中受限的次要工作区行显示重复归档按钮的问题,确保仅保留一个可见的可用操作。([#9066](https://github.com/QwenLM/qwen-code/pull/9066)) by @yiliang114
- 通过系统浏览器路由桌面应用中的 Markdown 链接和工件的外部 URL,并改进错误处理,从而支持打开外部链接。([#9069](https://github.com/QwenLM/qwen-code/pull/9069)) by @yiliang114
- 防止 Windows 运行时终端窗口在启动时出现,并优化了减少动效的引导视图以实现一致的视觉居中。([#9064](https://github.com/QwenLM/qwen-code/pull/9064)) by @yiliang114
- 将 Electron 到 Tauri 的一次性迁移桥接扩展至支持 Windows 和 Linux,确保在保留用户数据的同时实现无缝更新。([#9079](https://github.com/QwenLM/qwen-code/pull/9079)) by @yiliang114
- 通过优化 fixture 清理并在 Linux 上使用基于磁盘的临时目录,减少了由磁盘空间和系统负载引起的 CI 测试不稳定问题。([#8982](https://github.com/QwenLM/qwen-code/pull/8982)) by @yiliang114
- 改进了缺少拉取请求绑定时的审查评论错误消息,并添加了测试以强制实施操作符范围不变量。([#9102](https://github.com/QwenLM/qwen-code/pull/9102)) by @wenshao
- Windows 独立安装程序现改用内置 .NET 哈希计算替代 PowerShell 命令,以防止在验证校验和时失败。([#9112](https://github.com/QwenLM/qwen-code/pull/9112)) by @MichaelYochpaz
- 自动修复现在会等待进行中的代码审查完成后再更新分支,确保在融入人工反馈的同时不丢失上下文。([#8899](https://github.com/QwenLM/qwen-code/pull/8899)) by @yiliang114
- 守护进程现为 Web 客户端提供精简的对话摘要,排除详细的子代理事件,以提升加载速度并减少数据消耗。([#9057](https://github.com/QwenLM/qwen-code/pull/9057)) by @ytahdn
- 桌面应用现能可靠地通过系统浏览器打开所有外部链接(包括 OAuth 和文档 URL),而不会静默丢弃。([#9111](https://github.com/QwenLM/qwen-code/pull/9111)) by @yiliang114
- Web Shell 中的工具执行失败在折叠摘要中不再显示醒目的文本标签,仅显示微妙的图标计数。([#9053](https://github.com/QwenLM/qwen-code/pull/9053)) by @ytahdn
- 审查流水线现隔离并发运行以防止判决被覆盖,并包含针对此前观察到的四次线上运行失败的回归测试。([#9086](https://github.com/QwenLM/qwen-code/pull/9086)) by @wenshao
- 工具循环保护停止现以结构化轮次错误形式呈现并附带本地化指引,确保错误在页面重载后依然保留,且不提供无效的重试操作。([#8853](https://github.com/QwenLM/qwen-code/pull/8853)) by @ytahdn
- 复制和分支等助手页脚操作现会保持隐藏,直到后台代理完成且主代理提供最终摘要响应后才显示。([#8787](https://github.com/QwenLM/qwen-code/pull/8787)) by @carffuca
- 审查运行命令现拒绝仅由路径分隔符组成的目标,并修复了组合名称预言机的锚定问题,以防止缓慢的失败路径。([#9128](https://github.com/QwenLM/qwen-code/pull/9128)) by @wenshao
- 回退了事务性会话切换以恢复加载骨架屏模型,确保在会话加载时清除转录内容并显示骨架屏。([#9129](https://github.com/QwenLM/qwen-code/pull/9129)) by @ytahdn
- 通过使用仓库范围的 GITHUB_TOKEN 修复了垃圾信息最小化工作流,防止在最小化评论时出现权限错误。([#9140](https://github.com/QwenLM/qwen-code/pull/9140)) by @yiliang114
- 修复了 Shell 以正确遵循 `tools.truncateToolOutputThreshold` 设置,而非硬编码 30,000 字符的限制。([#9014](https://github.com/QwenLM/qwen-code/pull/9014)) by @cxruan
- 启用工作区批量 Skill 切换以接受未安装的 Skill 名称,允许用户在安装前声明禁用状态。([#9139](https://github.com/QwenLM/qwen-code/pull/9139)) by @callmeYe
- fix(core): 检测行续接和 @P shell 替换 (#8582) ([#8590](https://github.com/QwenLM/qwen-code/pull/8590)) by @yiliang114
- 通过更新模拟 ACP 子进程以正确确认守护进程工具守卫握手,修复了 E2E 测试失败问题。([#9162](https://github.com/QwenLM/qwen-code/pull/9162)) by @qwen-code-dev-bot
### 性能
- 守护进程会话恢复现在采用选择性加载机制,仅读取重建状态所需的记录,从而显著提升大型会话的性能。([#9055](https://github.com/QwenLM/qwen-code/pull/9055)) by @doudouOUC
### 内部变更
- 将 sharp 图像库升级至 0.35.0 版本,以修复 npm audit 标记的已知安全漏洞。([#8952](https://github.com/QwenLM/qwen-code/pull/8952)) by @yiliang114
- 通过改进处理批量转录分发的时序逻辑,修复了 Web UI 中不稳定的测试用例。([#9058](https://github.com/QwenLM/qwen-code/pull/9058)) by @wenshao
- 发布工作流现在要求指定审批人,采用最小权限原则,并包含对依赖项和密钥的自动化安全扫描。([#9008](https://github.com/QwenLM/qwen-code/pull/9008)) by @yiliang114
- 对话运行时基础架构已进行泛化改造,以在统一管理器中同时支持独立守护进程和实时语音会话。([#8890](https://github.com/QwenLM/qwen-code/pull/8890)) by @doudouOUC
- 现在可以通过将仓库变量 `RELEASE_VSCODE_SYNC_PUBLISH` 设置为 `false` 来暂停 VSCode 伴侣同步发布,且不会影响手动发布。([#9132](https://github.com/QwenLM/qwen-code/pull/9132)) by @yiliang114
- 重构了内部 CLI 依赖,消除了 utils、serve 和 UI 层之间的循环导入,以实现更好的模块隔离。([#9147](https://github.com/QwenLM/qwen-code/pull/9147)) by @yiliang114
## 新贡献者
- @MichaelYochpaz 在 [#9112](https://github.com/QwenLM/qwen-code/pull/9112) 中完成了首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.11...v0.21.12
<!-- qwen-release-notes:v1 -->
## Highlights
- Added support for uploading workspace files to the Web Shell composer via drag-and-drop or the @ file panel with progress tracking. ([#8874](https://github.com/QwenLM/qwen-code/pull/8874))
- Implemented a diff growth brake in autofix reviews to limit source and test line increases per window using configurable budgets. ([#8981](https://github.com/QwenLM/qwen-code/pull/8981))
- Confirmed Critical findings now require an executed witness with observed output, automatically demoting unverified claims to low confidence. ([#9065](https://github.com/QwenLM/qwen-code/pull/9065))
- The daemon now adaptively grows live-journal caps up to 256 MiB per session to prevent data loss during long turns. ([#8905](https://github.com/QwenLM/qwen-code/pull/8905))
- Fixed visual jitter in the desktop app's sidebar and ensured external URLs open reliably through the system browser. ([#9073](https://github.com/QwenLM/qwen-code/pull/9073), [#9069](https://github.com/QwenLM/qwen-code/pull/9069), [#9111](https://github.com/QwenLM/qwen-code/pull/9111))
- Compact mode now displays model reasoning as a foldable summary, and background shell activity is tracked to prevent premature cleanup. ([#9148](https://github.com/QwenLM/qwen-code/pull/9148), [#9042](https://github.com/QwenLM/qwen-code/pull/9042))
## Breaking Changes
No known breaking changes.
## Complete Change List
### Features
- Added support for uploading workspace files directly to the Web Shell composer via drag-and-drop or the @ file panel with progress tracking. ([#8874](https://github.com/QwenLM/qwen-code/pull/8874)) by @ytahdn
- Implemented a diff growth brake in autofix reviews to limit source and test line increases per window using configurable budgets. ([#8981](https://github.com/QwenLM/qwen-code/pull/8981)) by @wenshao
- The daemon now adaptively grows live-journal caps up to 256 MiB per session before truncating replay entries, using a shared memory pool to prevent data loss during long turns. ([#8905](https://github.com/QwenLM/qwen-code/pull/8905)) by @wenshao
- Confirmed Critical findings now require an executed witness with observed output, automatically demoting unverified claims to low confidence and hiding them from PR posts. ([#9065](https://github.com/QwenLM/qwen-code/pull/9065)) by @wenshao
- Review ledger markers now include the anchor commit SHA to ensure accurate incremental diff scoping across environments and prevent certification of unreviewed ranges. ([#9067](https://github.com/QwenLM/qwen-code/pull/9067)) by @wenshao
- Added user settings to control review attribution footers, default effort levels, and default comments, preventing repository files from overriding these policies. ([#8994](https://github.com/QwenLM/qwen-code/pull/8994)) by @wenshao
- Requests routed through Alibaba Cloud API Gateway domains now correctly include metadata fields for session tracing and log correlation. ([#9103](https://github.com/QwenLM/qwen-code/pull/9103)) by @yiliang114
- Added optional OpenTelemetry trace and span IDs to daemon logs to improve correlation and debugging capabilities for sampled requests. ([#9084](https://github.com/QwenLM/qwen-code/pull/9084)) by @doudouOUC
- Enabled per-agent JSONL transcripts for all workflow agent dispatches to record prompts, tool calls, and results consistently. ([#8971](https://github.com/QwenLM/qwen-code/pull/8971)) by @qqqys
- The /review command now identifies and reports entire classes of unbounded defects prospectively instead of listing individual instances one by one. ([#9095](https://github.com/QwenLM/qwen-code/pull/9095)) by @wenshao
- Main agent invocations now generate OpenTelemetry-compliant traces with stable identities and correct status semantics for success, cancellation, and errors. ([#9107](https://github.com/QwenLM/qwen-code/pull/9107)) by @doudouOUC
- Background shells are now tracked in activeWork, enabling explicit negotiation of shell categories and preventing premature automatic cleanup during shell activity. ([#9042](https://github.com/QwenLM/qwen-code/pull/9042)) by @doudouOUC
- Web Shell Channel management now supports full policy configuration, workspace binding, and a redesigned interface consistent with other management surfaces. ([#8848](https://github.com/QwenLM/qwen-code/pull/8848)) by @qqqys
- Added automatic escalation to maintainers when autofix diffs exceed growth budgets across multiple rounds instead of patching indefinitely. ([#9104](https://github.com/QwenLM/qwen-code/pull/9104)) by @wenshao
- Updated the review loop to validate feedback based on content accuracy rather than relying solely on the author's identity. ([#8996](https://github.com/QwenLM/qwen-code/pull/8996)) by @wenshao
- Added a guard to block cross-worktree Git mutations from model-issued commands that target directories outside the current session. ([#8687](https://github.com/QwenLM/qwen-code/pull/8687)) by @wenshao
- Compact mode (Ctrl+O) now displays model reasoning as a foldable "Thinking…" summary instead of hiding it entirely. ([#9148](https://github.com/QwenLM/qwen-code/pull/9148)) by @ytahdn
### Bug Fixes
- Fixed an issue in the standalone Web Shell where the first prompt could fail to submit due to session target synchronization errors. ([#9038](https://github.com/QwenLM/qwen-code/pull/9038)) by @ytahdn
- Updated the release workflow to allow automated bots to fully approve release pull requests without requiring manual human intervention. ([#9056](https://github.com/QwenLM/qwen-code/pull/9056)) by @yiliang114
- Ensured OpenTelemetry session ownership is correctly preserved across model requests and asynchronous streams in daemon modes. ([#9077](https://github.com/QwenLM/qwen-code/pull/9077)) by @doudouOUC
- Fixed visual jitter in the desktop app's sidebar project list by reserving space for the scrollbar gutter. ([#9073](https://github.com/QwenLM/qwen-code/pull/9073)) by @yiliang114
- Fixed a security gap where inline-level quotations could bypass layer gates, ensuring that only properly walked block-level quotes can trigger approval caps. ([#9020](https://github.com/QwenLM/qwen-code/pull/9020)) by @wenshao
- Autofix verification gates are now hermetic to runner git configurations, preventing host-level settings from poisoning subsequent test runs. ([#8961](https://github.com/QwenLM/qwen-code/pull/8961)) by @wenshao
- Fixed an issue where restricted secondary workspace rows in the web-shell displayed duplicate archive buttons, ensuring only one accessible action remains visible. ([#9066](https://github.com/QwenLM/qwen-code/pull/9066)) by @yiliang114
- Enabled opening external URLs from Markdown links and artifacts in the desktop app by routing them through the system browser with improved error handling. ([#9069](https://github.com/QwenLM/qwen-code/pull/9069)) by @yiliang114
- Prevented the Windows runtime terminal window from appearing during startup and aligned the reduced-motion bootstrap view for consistent visual centering. ([#9064](https://github.com/QwenLM/qwen-code/pull/9064)) by @yiliang114
- Extended the one-time migration bridge from Electron to Tauri to support Windows and Linux, ensuring seamless updates while preserving user data. ([#9079](https://github.com/QwenLM/qwen-code/pull/9079)) by @yiliang114
- Reduced CI test flakes caused by disk space and system load by optimizing fixture cleanup and using disk-backed temporary directories on Linux. ([#8982](https://github.com/QwenLM/qwen-code/pull/8982)) by @yiliang114
- Improved error messages for review comments when pull request binding is missing and added tests to enforce operator-scope invariants. ([#9102](https://github.com/QwenLM/qwen-code/pull/9102)) by @wenshao
- The Windows standalone installer now uses built-in .NET hashing instead of PowerShell commands to prevent failures when verifying checksums. ([#9112](https://github.com/QwenLM/qwen-code/pull/9112)) by @MichaelYochpaz
- Automatic fixes now wait for in-flight code reviews to complete before updating branches, ensuring human feedback is incorporated without losing context. ([#8899](https://github.com/QwenLM/qwen-code/pull/8899)) by @yiliang114
- The daemon now offers a compact conversation summary for web clients that excludes detailed subagent events to improve load times and reduce data usage. ([#9057](https://github.com/QwenLM/qwen-code/pull/9057)) by @ytahdn
- The desktop app now reliably opens all external links, including OAuth and documentation URLs, through the system browser instead of silently dropping them. ([#9111](https://github.com/QwenLM/qwen-code/pull/9111)) by @yiliang114
- Tool execution failures in the web shell no longer display prominent text labels in collapsed summaries, showing only a subtle icon count instead. ([#9053](https://github.com/QwenLM/qwen-code/pull/9053)) by @ytahdn
- The review pipeline now isolates concurrent runs to prevent verdict overwrites and includes regression tests for four previously observed live-run failures. ([#9086](https://github.com/QwenLM/qwen-code/pull/9086)) by @wenshao
- Tool-loop protection stops now surface as structured turn errors with localized guidance, ensuring errors persist across page reloads without offering invalid retry actions. ([#8853](https://github.com/QwenLM/qwen-code/pull/8853)) by @ytahdn
- Assistant footer actions like Copy and Branch now remain hidden until background agents complete and the main agent provides a final summarized response. ([#8787](https://github.com/QwenLM/qwen-code/pull/8787)) by @carffuca
- The review run command now rejects targets consisting only of path separators and fixes the composed-name oracle anchoring to prevent slow failure paths. ([#9128](https://github.com/QwenLM/qwen-code/pull/9128)) by @wenshao
- Reverted transactional session switching to restore the loading-skeleton model, ensuring transcripts clear and skeletons display during session loads. ([#9129](https://github.com/QwenLM/qwen-code/pull/9129)) by @ytahdn
- Fixed spam minimization workflows by using the repository-scoped GITHUB_TOKEN to prevent permission errors when minimizing comments. ([#9140](https://github.com/QwenLM/qwen-code/pull/9140)) by @yiliang114
- Fixed Shell to correctly honor the tools.truncateToolOutputThreshold setting instead of hardcoding a 30,000-character limit. ([#9014](https://github.com/QwenLM/qwen-code/pull/9014)) by @cxruan
- Enabled workspace batch Skill toggles to accept uninstalled Skill names, allowing users to declare disabled states before installation. ([#9139](https://github.com/QwenLM/qwen-code/pull/9139)) by @callmeYe
- fix(core): detect line-continuation and @P shell substitutions (#8582) ([#8590](https://github.com/QwenLM/qwen-code/pull/8590)) by @yiliang114
- Fixed E2E test failures by updating the mock ACP child to correctly acknowledge the daemon tool guard handshake. ([#9162](https://github.com/QwenLM/qwen-code/pull/9162)) by @qwen-code-dev-bot
### Performance
- Daemon session restore is now selective, reading only necessary records to reconstruct state and significantly improving performance for large sessions. ([#9055](https://github.com/QwenLM/qwen-code/pull/9055)) by @doudouOUC
### Internal Changes
- Upgraded the sharp image library to version 0.35.0 to resolve a known security vulnerability flagged by npm audit. ([#8952](https://github.com/QwenLM/qwen-code/pull/8952)) by @yiliang114
- Fixed a flaky test in the web UI by improving the timing logic for draining batched transcript dispatches. ([#9058](https://github.com/QwenLM/qwen-code/pull/9058)) by @wenshao
- Release workflows now require designated approvers, use least-privilege permissions, and include automated security scans for dependencies and secrets. ([#9008](https://github.com/QwenLM/qwen-code/pull/9008)) by @yiliang114
- The Conversations runtime foundation has been generalized to support both the standalone daemon and Live Voice sessions within a unified manager. ([#8890](https://github.com/QwenLM/qwen-code/pull/8890)) by @doudouOUC
- VSCode companion sync publishing can now be paused by setting the RELEASE_VSCODE_SYNC_PUBLISH repository variable to false without affecting manual releases. ([#9132](https://github.com/QwenLM/qwen-code/pull/9132)) by @yiliang114
- Refactored internal CLI dependencies to remove circular imports between utils, serve, and UI layers for better module isolation. ([#9147](https://github.com/QwenLM/qwen-code/pull/9147)) by @yiliang114
## New Contributors
- @MichaelYochpaz made their first contribution in [#9112](https://github.com/QwenLM/qwen-code/pull/9112)
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.21.11...v0.21.12