Repository navigation
docs(i18n): daily translation sync (run 40240071757) - #338
Conversation
yiliang114
left a comment
There was a problem hiding this comment.
Patrol-Run: qwen-docs-pr-review
Reviewed head 1de9826f741a1962131c5a50b725ca944e74b63e (28 files, +438/-121, upstream 87735a9a → 338f1336). Three blocking findings, all newly introduced by this batch and none of them self-healing — so this round does not merge.
Blocking
1. Mojibake published to the zh page
website/content/zh/users/features/autofix-pr.md:69 carries three U+FFFD replacement characters (raw bytes \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd) between `/resume` and 后:
…——或在 `/clear` 或 `/resume` 后——同样会提议接管该监视…
Evidence that this PR introduced it:
- base
531b0668of the same file: 0 U+FFFD; its line 61 read…或在 \/clear` 或 `/resume` 之后——会提议接管该监视…` - head: 3 U+FFFD, all on this one line
- the other languages touched this round (
fr,ko,pt-BR,ru) have 0 - visible in GitHub's own diff on the
+side, so it is not an artefact of how I fetched the blob
Expected fix: restore the lost character(s) — the sentence should read …或 \/resume` 之后——…to match EN:69— or after `/clear` or `/resume` —`.
Why this blocks: it renders as visible garbage on the published site. It also will not self-heal — last-sync.json now records zh for docs/users/features/autofix-pr.md as b17c5c9a…, which I computed equals the upstream sha256 at 338f1336, so the per-(file,lang) baseline model treats zh as current and will never re-queue it.
2. Duplicate heading on the zh managed-agent page
website/content/zh/users/managed-agent-reference-deployment.md now has ## 启动 Hosted Harness twice, at :28 and :32.
- base
531b0668: one occurrence, at :30 (13 heading lines total) - head: two occurrences (15 heading lines total)
- EN has one
## Start the Hosted Harness, at :30 (13 heading lines)
EN keeps The Java archive does not contain the npm CLI… under ## Prerequisites (:19). The inserted heading moves the zh equivalent (Java 归档文件不包含 npm CLI…, :30) under a spurious ## 启动 Hosted Harness, so the page renders two identical TOC entries and that paragraph lands in the wrong section.
Why this blocks: same non-self-healing property — last-sync.json records zh = 5610cb65…, which equals the upstream sha256 at 338f1336. ja was updated in the same batch and is clean (13 headings, matching EN).
3. ru lost the two table rows this PR added to EN
EN's files table gained two rows this round — autofix-pr-<n>-gate.checked (EN:78) and autofix-pr-<n>-instructions.txt (EN:82). zh, fr, ko and pt-BR all picked them up. ru did not:
website/content/ru/users/features/autofix-pr.md:76-82— 7 data rows vs EN's 9 (15|lines vs EN 17)- ru's
autofix-pr-<n>-state.jsonrow (:77) also lacks the, its scheduled taskclause that EN:76 now carries - this PR's ru hunks are at the usage block, "Перед началом" and "Статус и возобновление" only — no hunk reaches the tables
Why this blocks: last-sync.json advanced ru to b17c5c9a… == the current upstream sha256, so ru is marked fully current while missing content, and the per-(file,lang) model will never revisit it. (ja and de also lack the rows, but their hashes stayed at 6de58742…, so they remain queued and will self-heal — those are fine.)
Non-blocking
New ko page is not in ko's nav. ko/users/features/autofix-pr.md is added but ko/users/features/_meta.ts does not list autofix-pr. No build risk: findUnlistedEntries (website/scripts/check-nav-coverage.mjs:51, DEFAULT_CONTENT_ROOT at :75) only walks content/en, and EN lists it at _meta.ts:42. It is also a pre-existing family — autofix-pr, batch and mem0 are unlisted in all seven non-EN languages. Only effect is sidebar position. Worth fixing in the mirror layer once, not per batch.
What I verified clean
- CI at head
1de9826f: Translator unit testssuccess, Website unit testssuccess, Structural gateskipped, 0 commit statuses. The skip is by design —translation-gate.ymlexcludes same-repoautomation/daily-translation-*. I ran the same checker locally:node translator/orchestrator/orchestrator.mjs check --files <27 changed .md>→18 file(s) checked, 0 failed. - Merge gate:
mainhas no branch protection (404) and 0 rulesets, so those three checks are the full applicable set. - EN mirror fidelity: applied the pipeline's own
normalizeMarkdownRelativeLinks(translator/src/sync.ts:47-72) to the 10 upstream files at338f1336— 9/10 byte-identical to the mirror; the 10th differs only by the documented language-switch line strip. - Baseline arithmetic: JSON-level diff of
last-sync.jsonbase→head = 18 moved pairs; all 18 match the upstream sha256 at338f1336; 0 "moved but != upstream". - Shape: heading count + level-sequence + duplicate-text vs EN for every changed page → only finding 2. Fence and table-row counts vs EN → only finding 3.
- No unbalanced code fences, no unresolved placeholders (the
{{args}}hits inen/users/features/commands.mdare literal template syntax in EN prose), no secrets, no unrelated changes. - Partial language coverage left alone — per the per-(file,lang) model those pairs stay queued and self-heal.
What I did not check
- Per-language semantics beyond shape. I did not read each translation sentence-by-sentence against EN, so a meaning flip in an otherwise well-formed page would not show up here.
- Did not run the website build or the unit-test suites locally — relied on CI green plus the local structural checker.
- Did not verify the upstream EN prose against the qwen-code implementation.
One note on cost: all three fixes are small (a few characters, one deleted heading, two table rows), but requesting changes keeps this PR open and the PR body says later scheduled runs pause while it is. If you would rather not stall the nightly, fixing forward on main right after a merge is a legitimate call — the reason I did not take it by default is that none of the three will be repaired by a later run.
… rows Fixes the three blocking findings on #338: - zh/users/features/autofix-pr.md: three U+FFFD between `/resume` and 后; restored to `之后`, matching EN "— or after `/clear` or `/resume` —". - zh/users/managed-agent-reference-deployment.md: drop the spurious second `## 启动 Hosted Harness` so the "Java archive does not contain the npm CLI" paragraph stays under `## 前置条件`, as in EN. - ru/users/features/autofix-pr.md: add the `autofix-pr-<n>-gate.checked` and `autofix-pr-<n>-instructions.txt` rows this batch added to EN.
The three blocking findings are fixed by 27e0058 on this branch (zh mojibake restored to 之后, duplicate zh H2 removed, two ru table rows added). Head re-read equals the reviewed-again SHA; dismissing my own marked review.
Verified daily translation batch from scheduled run https://github.com/QwenLM/qwen-code-docs/actions/runs/40240071757.
Review and merge to publish: the
mainpush triggersdeploy-docs.yml, which rebuilds and deploys the site. Later scheduled runs pause while this PR is open, so merging it also unblocks the next one.Files whose structure could not be verified were restored from
HEADand are not included here; the run log lists them.