Skip to content

fix(web-shell): remove duplicate language declaration in ChatEditor.test.tsx - #10729

Merged
yiliang114 merged 1 commit into
QwenLM:mainfrom
yiliang114:fix/chat-editor-dup-language
Sep 1, 2026
Merged

fix(web-shell): remove duplicate language declaration in ChatEditor.test.tsx#10729
yiliang114 merged 1 commit into
QwenLM:mainfrom
yiliang114:fix/chat-editor-dup-language

Conversation

@yiliang114

@yiliang114 yiliang114 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

What this PR does

Removes the duplicate language declarations in packages/web-shell/client/components/ChatEditor.test.tsx. The Add standalone chats (#10514) and session workflow cockpit (#8583) merges each added a language member, and the second merge kept both copies: the ChatEditorRenderProps interface declared language?: WebShellLanguage; twice and renderChatEditorInto destructured language = 'en', twice. esbuild rejects the redeclaration (The symbol "language" has already been declared), so the web-shell suite fails at transform time. This PR removes one duplicate from each location (2 lines total); the remaining single declaration is still used at <I18nProvider language={language}>.

Why it's needed

The redeclaration is a deterministic esbuild compile failure that reds the Test (ubuntu-latest, Node 22.x) job on main CI (see run https://github.com/QwenLM/qwen-code/actions/runs/33515371387). Removing the duplicate is the minimal complete fix and unblocks CI for every PR that runs the web-shell suite.

Reviewer Test Plan

How to verify

  1. On main, run the web-shell suite (or npm run build inside packages/web-shell) and observe the esbuild transform error The symbol "language" has already been declared in ChatEditor.test.tsx.
  2. Apply this PR and re-run: the transform error is gone and the suite runs. CI on this PR confirms it end to end.

Evidence (Before & After)

N/A — test-file compile fix, no user-visible output change; CI status of the web-shell suite is the evidence.

Tested on

OS Status
🍏 macOS ⚠️ not tested
🪟 Windows ⚠️ not tested
🐧 Linux ⚠️ not tested

Verification is delegated to CI (Test (ubuntu-latest, Node 22.x)) since the failure and fix are deterministic compile-time behavior.

Environment (optional)

N/A (unit test compile fix).

Risk & Scope

  • Main risk or tradeoff: none — removes two exact duplicate declarations; semantics are unchanged.
  • Not validated / out of scope: no local OS runs; relies on CI for the web-shell suite.
  • Breaking changes / migration notes: none.

Linked Issues

No tracking issue; repairs main CI red introduced by the #10514 / #8583 merge overlap.

中文说明

本 PR 删除 packages/web-shell/client/components/ChatEditor.test.tsx 中重复的 language 声明。Add standalone chats#10514)与 session workflow cockpit#8583)两次合并各自添加了 language 成员,第二次合并保留了两份拷贝:ChatEditorRenderProps 接口重复声明了 language?: WebShellLanguage;renderChatEditorInto 重复解构了 language = 'en',。esbuild 拒绝重复声明(The symbol "language" has already been declared),导致 web-shell 套件在 transform 阶段失败、Test (ubuntu-latest, Node 22.x) 变红。本 PR 各删除一处重复(共 2 行),保留的单个声明仍被 <I18nProvider language={language}> 使用。

为什么需要:这是确定性的 esbuild 编译失败,会让 main 的 CI 变红(见 run 33515371387),删除重复是最小且完整的修复,能解开所有跑 web-shell 套件的 PR。

验证方式:在 main 上跑 web-shell 套件可复现 transform 报错;应用本 PR 后报错消失,由 CI 端到端确认。Evidence:N/A(测试文件编译修复,无可见输出变化)。本地未在各操作系统实测,依赖 CI。

风险与范围:无风险——仅删除两处完全重复的声明,语义不变;不在范围内:本地各 OS 运行;无破坏性变更。

无关联 issue;修复 #10514 / #8583 合并重叠引入的 main CI 红。

…est.tsx

The standalone-chats and session-workflow-cockpit merges both added a 'language' member, leaving it declared twice in the ChatEditorRenderProps interface and twice in the renderChatEditorInto destructuring. esbuild rejects the redeclaration ("The symbol 'language' has already been declared"), which fails the web-shell suite and reds main CI.
@qwen-code-ci-bot

qwen-code-ci-bot commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Qwen Triage finishedview run. See the stage comments in this thread for the result.

Qwen Triage 已完成 —— 查看运行。结果见本线程中的各阶段评论。

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, @yiliang114 — the fix itself looks correct (the duplicate language declarations are indeed present on main, and removing one of each is the minimal fix). Before it can move to review, though, the PR body needs to follow the PR template.

Currently missing required headings:

  • ## Why it's needed
  • ## Reviewer Test Plan (with ### How to verify, ### Evidence (Before & After), ### Tested on)
  • ## Risk & Scope
  • ## Linked Issues

For a CI-fix PR like this the additions are small: "Why it's needed" is the broken-CI context already in your description, "How to verify" can point at the failing run (CI green after the fix), and "Evidence" can be N/A since nothing user-visible changed. Please update the PR body to match the template, then re-trigger triage with @qwen-code /triage.

中文说明

感谢贡献,@yiliang114 ——修复本身看起来是对的(main 上确实存在重复的 language 声明,各删掉一处是最小修复)。但在进入审查之前,PR 正文需要先按 PR 模板 填写。

目前缺少以下必需标题:

  • ## Why it's needed
  • ## Reviewer Test Plan(含 ### How to verify### Evidence (Before & After)### Tested on
  • ## Risk & Scope
  • ## Linked Issues

对于这类修 CI 的 PR,补充内容很少:"Why it's needed" 即你描述中 CI 失败的情况,"How to verify" 可以引用失败的 CI run(修复后 CI 变绿),"Evidence" 可以写 N/A(无用户可见变化)。请把 PR 正文补全为模板格式,然后用 @qwen-code /triage 重新触发 triage。

Qwen Code · qwen3.8-max

@chiga0 chiga0 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blocking findings. Approval blockers: none.

Tier: Standard — mechanical test-only fix; all five risk questions answered "no".

Checked:

  • Diff matches the stated claim exactly: one duplicate language?: WebShellLanguage; interface member and one duplicate language = 'en', destructure binding removed. The kept copies are identical to the removed ones, so no semantic difference.
  • No other leftovers from the merge that introduced this: all 41 top-level members of ChatEditorRenderProps are unique, and renderChatEditorInto's destructure pattern has no repeated identifiers.
  • The remaining language is still required and used: passed to <I18nProvider language={language}> (ChatEditor.test.tsx:446) and supplied via props by tests (lines 1724, 1847, 1851).

Ran (linux, node v24.20.0, vitest 3.2.7):

  • head a2a2cc5: vitest run client/components/ChatEditor.test.tsx → 107/107 pass; full web-shell suite → 248 files / 5575 tests pass.
  • base d6c0390 (A/B): same command fails at transform — esbuild ERROR: The symbol "language" has already been declared (ChatEditor.test.tsx:425), 0 tests collected. Reproduces the reported CI failure; the fix resolves it.
  • head: web-shell tsc -p tsconfig.json --noEmit → clean (first pass showed two errors from a stale local @qwen-code/sdk dist; rebuilding the workspace SDK from this head cleared them — the method exists at packages/sdk-typescript/src/daemon/DaemonClient.ts:3045).

Not covered: nothing material — the change is two deletions in a single test file; no production code, persisted format, or public API is touched.

Reviewed with AI assistance.

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

🖼️ web-shell visual preview

Rendered against a mock daemon (no real backend): the PR base vs this PR head a2a2cc5. Only screenshots that changed are shown (flows below, if any, are head-only) — refreshes on every push.

Screenshots · before / after

No screenshot changes against the PR base.

Full-resolution recordings (.webm) are attached to the workflow run.

Qwen Code · web-shell visuals

@qwen-code-dev-bot qwen-code-dev-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at head a2a2cc5c.

  • Confirmed the fix matches its claim and is the minimal change: the merged #10514 + #8583 left a duplicate language in both the interface and the destructure pattern, so the kept copies are byte-identical to the removed ones and the remaining single language is still consumed (<I18nProvider language={language}> at ChatEditor.test.tsx:446, fed by tests). No other merge leftovers in the file.
  • The base A/B pins it down: the base copy fails the suite's transform on current main (The symbol "language" has already been declared), and this head is what makes it compile and collect again — matching chiga0's run (107/107, full web-shell suite green).
  • The lone CI failure is Integration Tests (no-AK) failing at git clone with Failed to connect to github.com port 443 — a runner network blip with no causal link to a test-file edit; everything else on this head is green.
  • The standing CHANGES_REQUESTED is the triage bot's PR-body-template note (missing section headings), not a code finding — flagging that so it isn't read as a correctness blocker.
  • No new Critical issues found; per the channel convention the call is on the review itself.

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Downgraded from Approve to Comment: CI failing: Integration Tests (no-AK, No Sandbox). Partially reviewed — gaps disclosed.

Not reviewed: reverse audit — stopped before round 1 by the review time budget.

— qwen3.8-max via Qwen Code /review (v0.22.3)

@yiliang114

Copy link
Copy Markdown
Collaborator Author

PR body updated to follow the PR template per the stage-1a note: added ## Why it's needed, ## Reviewer Test Plan (with How to verify / Evidence / Tested on), ## Risk & Scope, ## Linked Issues and the 中文说明 section. Re-requesting bot review for re-judgement.

@yiliang114

Copy link
Copy Markdown
Collaborator Author

@qwen-code /triage

@qwen-code-ci-bot

qwen-code-ci-bot commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Sandboxed verification: ✅ passed — merge-ready (agent verdict) - workflow run

Ran the PR in an isolated, token-free container: A/B against the base build, mock-free harness assertions, targeted gates. Advisory evidence for human reviewers — not a review, an approval, or a CI check.

Scripted assertions: 19 passed · 0 failed · 19 total

Flakiness gate: ✅ 1 changed test file(s) x 5 identical rounds, no divergence

中文 — 判定:✅ 通过 · 可合入(agent 判定)

沙箱验证在隔离、无凭证的容器中执行了该 PR 的代码(与 base 构建 A/B 对照、无 mock harness 断言、定向门禁)。仅作为评审证据,不构成评审、批准或 CI 检查

脚本断言:19 通过 · 0 失败 · 19 总计

抖动门:✅ 1 changed test file(s) x 5 identical rounds, no divergence

Verification report

PR 10729 verification — fix(web-shell): remove duplicate language declaration in ChatEditor.test.tsx

Verdict: merge-ready — 19/19 scripted assertions passed (fail: 0), verified head a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9 (merge ref a9b7a277, base d6c03908).

中文摘要
  • 结论:merge-ready。19/19 脚本化断言通过,fail: 0
  • A/B 结论:base(d6c03908)上 ChatEditor.test.tsx 在 vitest 的 esbuild transform 阶段报 The symbol "language" has already been declared(425:4,重复的解构绑定),套件 0 个测试可跑;head(a2a2cc5c)transform 通过,该文件 107/107 通过。2×2 交叉矩阵(head 文件放进 base 树通过、base 文件放进 head 树复现报错)证明失败只跟随文件内容、与环境无关。全量 web-shell 套件在 base 上恰为 1 failed | 247 passed(唯一红就是该文件),在 head 上 248 passed5575/5575(5575−5468=107,正好是被解锁的文件)。
  • Findings:无阻塞问题。仅一条对 PR 描述的机制性更正(esbuild 实际只拒绝重复的解构绑定;接口重复成员是纯类型语法,esbuild 会剥离、且 tsconfig.json 排除 *.test.tsx 所以 tsc 也看不到它),不影响修复的正确性与完整性。
  • 未覆盖:PR 正文引用的 CI run 33515371387 无法访问(无网络凭据,本地 base 复现替代);Playwright e2e 套件(需浏览器,与编译修复无关);其他 workspace 的测试(diff 仅限 web-shell 单个测试文件);全仓 lint/typecheck。

Central claim and A/B

Central claim: at base, ChatEditor.test.tsx carries two copies of language?: WebShellLanguage; (interface) and language = 'en', (destructure), the duplicate destructure binding is a JS-level redeclaration that makes vite:esbuild fail at transform time, so the web-shell suite cannot run; removing the two duplicate lines restores transform and unblocks the suite.

Cell File version Tree Oracle Result
A base (dups) base vitest exit + stderr exit 1; The symbol "language" has already been declared at :425:4; Test Files 1 failed (1); Tests no tests (expected red — assertion PASS)
B head (fixed) head vitest exit + counts exit 0; 107 passed (107)
C head (fixed) base vitest exit + counts exit 0; 107 passed (107) — failure follows the file, not the tree
D base (dups) head vitest exit + stderr exit 1; same redeclaration error; Tests no tests (expected red — assertion PASS)
Base full suite (dist built, --coverage) base base vitest summary exit 1; Test Files 1 failed | 247 passed (248); Tests 5468 passed (5468); the sole FAIL is ChatEditor.test.tsx (expected red — assertion PASS)
Head full suite (test:ci, --coverage) head head vitest summary exit 0; Test Files 248 passed (248); Tests 5575 passed (5575); zero FAIL lines

Witnesses: evidence/01-ab-base-transform-fails.png (cell A live), evidence/02-ab-head-107-pass.png (cell B live), evidence/03-base-sole-blocker.png (base full-suite summary), evidence/04-assertion-matrix.png (the 19-assertion harness as printed). The test-count delta 5575 − 5468 = 107 is exactly the unblocked file's test count, so this PR removed the sole blocker of the web-shell suite at base.

Targeted gates at head, all green and live-proven: full web-shell test:ci (5575/5575), tsc -p tsconfig.json --noEmit (exit 0), eslint on the changed file (exit 0; a planted unused-var/any file was caught with exit 1, proving the gate collects files).

Corrections

  • The PR body says esbuild rejects both the duplicated interface member and the duplicated destructure. Measured: the esbuild error points only at the destructure binding (ChatEditor.test.tsx:425:4) — a JS-level binding redeclaration. The duplicated interface member is type-only syntax that esbuild strips, and it is invisible to tsc -p tsconfig.json too, because that tsconfig's exclude list covers client/**/*.test.tsx (verified: typecheck is green on both arms). So the CI red was caused solely by the duplicate destructure binding; removing the interface duplicate is correct hygiene but was not load-bearing for any compiler gate. This is a note about the description's mechanism, not a request to change the code — the fix as shipped is complete and correct.

Findings

None. No blocking, no advisory code findings. (The mechanism note above is filed under Corrections.)

Not covered

  • The CI run 33515371387 cited in the PR body could not be fetched (no GitHub token in this environment); the local base reproduction (cells A/D and the base full suite) stands in for it.
  • Playwright e2e suites (test:e2e*) — require a browser; the change is a compile-time test-file fix with no runtime surface.
  • Test suites of other workspaces — the diff is confined to one web-shell test file that no other package imports; web-shell's own full suite is the affected surface and was run on both arms.
  • Repo-wide lint/typecheck beyond the affected workspace and the changed file.
  • Two early base cells were environmentally confounded and are superseded (kept in logs/ for transparency): 05-base-typecheck.log (base worktree lacked web-shell's nested node_modules, e.g. shiki; repaired via symlink in 05b) and 10-base-full-suite.log (base worktree lacked dist/, so build-artifact.test.ts failed 12× with ENOENT, and the ChatEditor copy was still my cell-C overwrite; repaired by building dist and restoring the base file in 12). Both confounds are worktree artifacts, not PR signals — the repaired cells are the cited evidence.

Methodology

Environment: node v22.23.2, merge-ref checkout at depth 2 (HEAD = a9b7a277, HEAD^1 = base d6c03908, HEAD^2 = PR head a2a2cc5c, single reachable commit matching the metadata snapshot). Base arm ran in a scratch worktree under tmp/ (removed after capture) reusing the root node_modules — clean because the PR leaves package.json/lockfile untouched; readlink -f node_modules/@qwen-code/sdk resolves into the head tree's packages/sdk-typescript, which the PR does not modify, and the base-cell failure occurs at esbuild parse time, before any module resolution, so workspace symlinks cannot confound it. Cells C/D cross-graft the file between trees to attribute the failure to file content. Every number above is re-checked by assertions.mjs (19 scripted assertions, expected base-arm reds encoded as passing expectations) against the raw logs in logs/; evidence PNGs rendered with scripts/verify-capture.mjs.

Flakiness gate log

rounds=5 files=1 skipped=0
file packages/web-shell/client/components/ChatEditor.test.tsx: (cd packages/web-shell) npx --no-install vitest run ./client/components/ChatEditor.test.tsx


per-file results (P=pass F=fail I=infra-exit, one letter per run):
  packages/web-shell/client/components/ChatEditor.test.tsx: PPPPP

verdict: pass
summary: 1 changed test file(s) x 5 identical rounds, no divergence

--- per-invocation detail (full copy in the artifact) ---
round 1 · packages/web-shell/client/components/ChatEditor.test.tsx: P (exit 0)
round 2 · packages/web-shell/client/components/ChatEditor.test.tsx: P (exit 0)
round 3 · packages/web-shell/client/components/ChatEditor.test.tsx: P (exit 0)
round 4 · packages/web-shell/client/components/ChatEditor.test.tsx: P (exit 0)
round 5 · packages/web-shell/client/components/ChatEditor.test.tsx: P (exit 0)

Evidence images

01-ab-base-transform-fails

02-ab-head-107-pass

03-base-sole-blocker

04-assertion-matrix

Harness scripts and raw logs are in the workflow run artifacts (7-day retention).

Qwen Code · sandboxed verification

@yiliang114

Copy link
Copy Markdown
Collaborator Author

@qwen-code /triage

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Thanks for the PR!

Template looks good ✓ — the earlier request-changes was about the template, and all required sections are present now.

Problem: observed, not theoretical. main CI is red — run 33515371387 fails Test (ubuntu-latest, Node 22.x) with ChatEditor.test.tsx:425:4: ERROR: The symbol "language" has already been declared. I verified both duplicates exist on main: the ChatEditorRenderProps interface declares language?: WebShellLanguage; twice and renderChatEditorInto destructures language = 'en', twice — a merge overlap from #10514 / #8583, as described.

Direction: this unblocks the web-shell suite for every PR stacked on main. Clearly in scope.

Size: not applicable — test file only, 0 production lines.

Approach: removing one copy of each duplicate is exactly the minimal fix. The remaining language is still consumed by <I18nProvider language={language}>. Nothing to cut.

Risk: no elevated risk signals — single test-file change, no high-risk paths.

Moving on to code review. 🔍

中文说明

感谢贡献!

模板完整 ✓ —— 之前的 request-changes 是针对模板问题,现在各必需部分都已补齐。

问题:已观测到,不是理论问题。main 的 CI 是红的——run 33515371387 中 Test (ubuntu-latest, Node 22.x) 报错 ChatEditor.test.tsx:425:4: ERROR: The symbol "language" has already been declared。我确认 main 上确实存在两处重复:ChatEditorRenderProps 接口重复声明了 language?: WebShellLanguage;renderChatEditorInto 重复解构了 language = 'en',——即描述中所说的 #10514 / #8583 合并重叠。

方向:此修复能为所有基于 main 的 PR 解开 web-shell 套件的 CI 阻塞,方向明确合理。

规模:不适用——仅测试文件,0 生产行。

方案:各删除一处重复正是最小修复。保留的 language 仍被 <I18nProvider language={language}> 使用。无可裁剪。

风险:无升级风险信号——单测试文件改动,未命中高风险路径。

进入代码审查 🔍

Qwen Code · qwen3.8-max

Reviewed at a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9 · re-run with @qwen-code /triage

@qwen-code-ci-bot

qwen-code-ci-bot commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Code review — clean. Independent proposal before reading the diff: a duplicate declaration from the #10514 / #8583 merge overlap can only be fixed by deleting one copy of each duplicate and confirming the survivor is still used. That is exactly what this PR does — removes the second language?: WebShellLanguage; in ChatEditorRenderProps and the second language = 'en', in the destructure; the remaining language still feeds <I18nProvider language={language}>. I verified both duplicates exist on main and the diff touches nothing else (0 additions, 2 deletions, one test file). No correctness, convention, or scope concerns.

Testing — this run is unattended CI, so per the workflow I quote the PR's own CI results via the API rather than running PR code; there is nothing user-visible to exercise manually (N/A for real-scenario testing). The evidence that matters here is direct: on main, run 33515371387 fails Test (ubuntu-latest, Node 22.x) with ChatEditor.test.tsx:425:4: ERROR: The symbol "language" has already been declared (vite:esbuild transform failure, quoted from the job log). On this PR's head, that exact job is green — the suite can only pass if the transform succeeds, which is the claim under test. macOS/Windows test jobs are skipped on this PR; they were also skipped in the linked main run, so that is not caused by this change. Integration Tests (no-AK, No Sandbox) is still running; the finalize workflow will update the table below when CI settles.

Final CI results for a2a2cc5 (auto-updated by the triage finalize job after CI completed):

Check Conclusion
Capture web-shell visuals (ubuntu-latest, Node 22.x) ✅ success
Classify PR ✅ success
Dependency CVE audit ✅ success
Desktop Shell (ubuntu-22.04) ✅ success
Desktop Shell (windows-2022) ✅ success
Integration Tests (no-AK, No Sandbox) ✅ success
Secret scan (TruffleHog) ✅ success
Test (ubuntu-latest, Node 22.x) ✅ success
web-shell E2E Smoke (ubuntu-latest, Node 22.x) ✅ success

One row per check name (latest run); skipped checks omitted; failures sort first. / 每个检查名一行(取最新一次运行),省略 skipped,失败项排在最前。

中文说明

代码审查:干净。在读 diff 之前我的独立方案是:合并重叠留下的重复声明,只能各删除一份重复、并确认保留的声明仍被使用——本 PR 正是这么做的:删除 ChatEditorRenderProps 中第二个 language?: WebShellLanguage; 和解构中第二个 language = 'en',,保留的 language 仍传给 <I18nProvider language={language}>。我已确认 main 上确实存在这两处重复,且 diff 没有其他改动(0 增、2 删、单测试文件)。无正确性、规范或范围问题。

测试:本次为无人值守 CI 运行,按流程通过 API 引用本 PR 自己的 CI 结果,不运行 PR 代码;无用户可见行为,真机场景测试不适用(N/A)。关键证据是直接的:main 上 run 33515371387 的 Test (ubuntu-latest, Node 22.x)ChatEditor.test.tsx:425:4: ERROR: The symbol "language" has already been declared(vite:esbuild transform 失败,引自 job 日志)而失败;本 PR 的 head 上同一 job 为绿——只有 transform 成功套件才可能通过,这正是待验证的结论。macOS/Windows 测试 job 在本 PR 上被跳过,且在所引用的 main run 中同样被跳过,与本改动无关。Integration Tests (no-AK, No Sandbox) 仍在运行,CI 落定后 finalize 工作流会更新上方表格。

Qwen Code · qwen3.8-max

Reviewed at a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9 · re-run with @qwen-code /triage

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Confidence: 5/5 — verified compile error on main, minimal 2-line fix, green on the exact job that fails.

This is what a good small PR looks like. The problem is real and reproduced — I read the esbuild failure out of the failing main job's log and confirmed both duplicate declarations in the source. The fix is the minimum that solves it: delete one copy of each duplicate, keep the one that <I18nProvider> actually consumes, touch nothing else. My independent take before reading the diff was identical to what landed. There is nothing to maintain here in six months — it removes two lines and unblocks the web-shell suite for everything stacked on main.

One note on process: the standing request-changes review from an earlier run of this bot was template-only (Stage 1a); the template is fixed and that concern no longer applies — it is superseded by this run's verdict.

Approval deferred until CI lands green on a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9Integration Tests (no-AK, No Sandbox) is still running. The finalize workflow will approve on green.

中文说明

置信度:5/5 —— main 上的编译错误已验证,2 行最小修复,恰好失败的那个 job 已变绿。

这是一个小而好的 PR 该有的样子。问题真实且可复现——我从 main 失败 job 的日志中读到了 esbuild 报错,并在源码中确认了两处重复声明。修复就是解决问题所需的最小改动:各删除一份重复、保留 <I18nProvider> 实际使用的那份,不动其他任何内容。我在读 diff 之前的独立方案与最终落地完全一致。六个月后没有任何维护负担——它只删两行,并为所有基于 main 的改动解开 web-shell 套件。

流程上的一点说明:此前一次运行留下的 request-changes 仅针对模板问题(Stage 1a);模板已补齐,该问题不再适用,被本次运行的结论取代。

批准暂缓,等待 CI 在 a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9 上全绿——Integration Tests (no-AK, No Sandbox) 仍在运行。变绿后由 finalize 工作流执行批准。

Qwen Code · qwen3.8-max

Reviewed at a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9 · re-run with @qwen-code /triage

@qwen-code-ci-bot

qwen-code-ci-bot commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Re-run landed after the PR was already merged — nothing left to gate or approve.

  • The verdict from the review stands: 5/5, approved on a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9, which is exactly what landed on main as 5282abea.
  • The fix is in: the duplicate language declarations are gone from main, resolving the esbuild transform error that reded the web-shell suite.
  • CI on the merge commit was still in flight at check time (Test (ubuntu-latest, Node 22.x) running; fetched once, not polled).

View workflow run.

中文说明

本次重跑时 PR 已合并,无需再评审或批准。

  • 评审结论维持不变:5/5,已批准 a2a2cc5c86d8095d5bdac20d34d4a7e138c202d9,该提交正是以 5282abea 合入 main 的内容。
  • 修复已生效:main 上重复的 language 声明已移除,web-shell 套件的 esbuild transform 报错已解决。
  • 检查时合并提交的 CI 仍在运行(Test (ubuntu-latest, Node 22.x) 进行中;仅抓取一次,不轮询)。

查看工作流运行

@yiliang114
yiliang114 enabled auto-merge September 1, 2026 17:07

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Downgraded from Approve to Comment: CI still running. Reviewed.

中文说明

⚠️ 已从批准降级为评论:CI still running。 已审查。

— qwen3.8-max via Qwen Code /review (v0.22.3)

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, looks ready to ship — CI landed green after the review. ✅

@yiliang114
yiliang114 added this pull request to the merge queue Sep 1, 2026
Merged via the queue into QwenLM:main with commit 5282abe Sep 1, 2026
164 of 165 checks passed
@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Sandboxed verification: ⚠️ not run — skipped - workflow run

Skipped because the PR is not open for verification (state=MERGED, draft=false).

中文 — 判定:⚠️ 未运行 · 已跳过

跳过原因:the PR is not open for verification (state=MERGED, draft=false)。

Qwen Code · sandboxed verification

yiliang114 added a commit that referenced this pull request Sep 1, 2026
Picks up #10729 (fix duplicate language declaration in ChatEditor.test.tsx)
so the web-shell suite can compile and the Test ubuntu leg goes green.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Patrol-Run: qwen-pr-closeout/jmtivohvtai
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants