chore: sync Qwen Code v0.21.13 - #85
Conversation
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 590d72e7c5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (process.platform !== 'darwin') return; | ||
| const manifestPath = path.resolve( | ||
| path.dirname(executable), | ||
| '../Resources/runtime/qwen-code/manifest.json', |
There was a problem hiding this comment.
Read the manifest from the packaged OpenWork path
On macOS, verifyMacRuntimeCommit() runs before the packaged executable is launched, but tauri.conf.json installs this resource at Contents/Resources/runtime/openwork/manifest.json, not runtime/qwen-code/manifest.json. The desktop-build.yml macOS packaged-smoke step will therefore fail with ENOENT for every artifact instead of testing the application.
Useful? React with 👍 / 👎.
| if [[ "$tag" == "$baseline_tag" ]]; then | ||
| echo "Qwen Code $tag is already synced." | ||
| exit 0 |
There was a problem hiding this comment.
Resume pending syncs before checking the version file
When an upstream merge has conflicts, the initial run writes and stages the target tag in .qwen-upstream-version before instructing the user to run --continue. On that continuation, baseline_tag consequently equals tag, so this early exit reports the release as synchronized without calling finish_sync(); the merge remains unfinished and the sync state ref is never collapsed or removed.
Useful? React with 👍 / 👎.
| const t = (key) => messages[language][key]; | ||
|
|
||
| document.documentElement.lang = language; | ||
| document.title = `Qwen Code ${t('title')}`; |
There was a problem hiding this comment.
Keep the Local Control title branded as OpenWork
Opening Local Control now replaces the document title with Qwen Code Local Control, overriding the OpenWork-branded title configured by the desktop shell (OpenWork Local Control). This exposes the upstream product name in a user-facing OpenWork window and contradicts the synchronization's stated branding preservation.
Useful? React with 👍 / 👎.
What this PR does
This PR syncs the official Qwen Code changes from the recorded
v0.21.10baseline throughv0.21.13into OpenWork. It keeps OpenWork's branding, legal/security documents, and existing GitHub workflow policy intact while updating the shared runtime packages to0.21.13.It also adds a repeatable
npm run sync:qwen -- <version>flow. The command creates an isolated branch and worktree, applies only the upstream delta from the recorded release, preserves the OpenWork-owned overlays, supports conflict continuation, and collapses the temporary upstream ancestry before the branch is pushed.The OpenWork desktop application version remains
0.2.0. This PR does not publish an installer or a desktop release.Why it's needed
OpenWork needs the fixes and features shipped in Qwen Code
v0.21.13, but repeating this synchronization manually is slow and easy to get wrong. Recording the synchronized release and providing one command makes future updates incremental and reproducible without importing the full Qwen Git history into OpenWork.Reviewer Test Plan
How to verify
0.21.13while the OpenWork desktop application version remains0.2.0.npm run sync:qwen -- 0.21.13and confirm it reports that the release is already synchronized without creating another worktree.Evidence (Before & After)
N/A — this is an upstream maintenance sync rather than a dedicated UI change.
Tested on
Environment (optional)
macOS local worktree.
cargo check, Rust formatting, shell/Node syntax checks, and the OpenWork desktop release contract passed. Targeted Web Shell checks completed 23 assertions; suites requiring the newly added workspace dependencies were left to CI because this isolated worktree intentionally did not perform a full dependency install.Risk & Scope
Linked Issues
N/A
中文说明
这个 PR 做了什么
这个 PR 将官方 Qwen Code 从已记录的
v0.21.10基线到v0.21.13的改动同步到 OpenWork。同步过程中保留 OpenWork 的品牌、法律/安全文档以及现有 GitHub workflow 策略,同时将共享 runtime 包更新到0.21.13。同时新增可重复执行的
npm run sync:qwen -- <version>流程。该命令会创建隔离的分支和 worktree,仅应用相对已记录版本的上游增量,保留由 OpenWork 管理的覆盖层,支持冲突处理后继续,并在推送前去除临时引入的上游 Git 历史。OpenWork 桌面应用版本仍然是
0.2.0。这个 PR 不会发布安装包或正式桌面版本。为什么需要
OpenWork 需要 Qwen Code
v0.21.13中发布的修复和功能,但每次手工同步速度慢且容易出错。记录当前同步版本并提供单条命令后,后续更新可以增量、可重复地完成,同时不会把完整的 Qwen Git 历史导入 OpenWork。Reviewer 测试计划
如何验证
0.21.13,OpenWork 桌面应用版本仍为0.2.0。npm run sync:qwen -- 0.21.13,确认命令提示该版本已经同步,且不会再创建新的 worktree。证据(Before & After)
不适用——这是上游维护同步,不是独立的 UI 改动。
测试平台
环境(可选)
macOS 本地 worktree。
cargo check、Rust 格式检查、Shell/Node 语法检查以及 OpenWork 桌面 Release 契约检查均通过。定向 Web Shell 检查完成了 23 个断言;由于这个隔离 worktree 按计划没有执行完整依赖安装,需要新增 workspace 依赖的测试套件留给 CI 执行。风险与范围
关联 Issue
不适用