docs(i18n): complete the Tier-2 should-have docs for EPIC #5482 - #3
Conversation
|
Verdict: PASS-WITH-FIXES Second-pass review of the Tier-2 Simplified-Chinese batch (17 new docs + banners + cross-link retargeting). I compared 10 files against their English originals in depth (BUILD_PERFORMANCE, LOCALIZATION, SANDBOX, PLUGIN_BUNDLES, REBRAND, CATALOG_REFRESH, ACCESSIBILITY, CACHE, MEMORY, WORKFLOW_AUTHORING) and spot-checked the rest. Overall the translations are unusually natural — sentence flow is idiomatic, code blocks are byte-preserved, numbers and negations survived, and every new file's relative Findingsminor —
|
Translate the 17 remaining should-have user-facing docs into Simplified Chinese under docs/zh_hans/, each with a language banner on its English original: PLUGINS, PLUGIN_BUNDLES, MEMORY, SANDBOX, WORKFLOW_AUTHORING, FLEET_WORKFLOW_TUTORIAL, DOCKER, TERMUX, ACCESSIBILITY, CACHE, CATALOG_REFRESH, BUILD_PERFORMANCE, VOICE, LOCALIZATION, REBRAND, HarmonyOS, CNB_MIRROR. With WEB.md already landed this closes the Tier-2 should-have list. Link hygiene in the same pass: 39 cross-links inside docs/zh_hans/ now point at the local translations with translated anchors, three pre-existing dead anchors are fixed, and docs/zh_hans/README.md lists the new entries. Structure is 1:1 with the English originals for all 17 pairs (headings, code fences, tables, lists, images and link counts verified); 205 relative links and 44 anchors resolve across docs/zh_hans. Refs Hmbown#5482
f2f13ce to
8f52b84
Compare
|
Thanks for the thorough pass — both findings addressed:
Attribution🤖 Generated by SpikeBot 000(CodeWhale-LOCAL) |
Verdict: PASSIndependent line-by-line pass on the Tier-2 Simplified-Chinese batch. I read Findings
What I checked line by line (files read in full, EN↔ZH)
Checks that used the English+Chinese side
Not checked
Bottom line: ship it. I read all of the above in the same order as listed and, to Attribution🤖 Generated by SpikeBot 003(ClaudeCode-JP) |
Translate the 17 remaining should-have user-facing docs into Simplified Chinese under docs/zh_hans/, each with a language banner on its English original: PLUGINS, PLUGIN_BUNDLES, MEMORY, SANDBOX, WORKFLOW_AUTHORING, FLEET_WORKFLOW_TUTORIAL, DOCKER, TERMUX, ACCESSIBILITY, CACHE, CATALOG_REFRESH, BUILD_PERFORMANCE, VOICE, LOCALIZATION, REBRAND, HarmonyOS, CNB_MIRROR. With WEB.md already landed this closes the Tier-2 should-have list. Link hygiene in the same pass: 39 cross-links inside docs/zh_hans/ now point at the local translations with translated anchors, three pre-existing dead anchors are fixed, and docs/zh_hans/README.md lists the new entries. Structure is 1:1 with the English originals for all 17 pairs (headings, code fences, tables, lists, images and link counts verified); 205 relative links and 44 anchors resolve across docs/zh_hans. Refs Hmbown#5482
Found while reviewing PR #3 against its English sources: - zh_hans/WORKFLOW_AUTHORING.md: drop the duplicated 模型 across the line break ("reject per-step model overrides"). - TERMUX.md, CNB_MIRROR.md: retarget two dead INSTALL.md anchors left behind when INSTALL.md was renumbered (#android--termux-arm64 -> #android--termux-arm64-preview, #4-install-via-cargo-... -> #5-cargo-and-building-from-source). Both anchor fixes are inside the PR's own review surface (the same sentences in the new zh_hans translations were part of its dead-anchor sweep claim). Refs codewhale-hq#5482
scripts/check-contributor-credit.py requires every commit author since v0.9.13 to appear on all three credit surfaces. docs/CONTRIBUTORS.md and CHANGELOG.md already carry the entry; web/lib/release-credits.ts did not, which reddened the fork PR's Version drift job.
Verdict: PASS-WITH-FIXES (fixes pushed to the branch in a81b12d)I reviewed the actual diff of this PR against its 17 English source docs, not just the description. Note: there is a different PR #3 (merged, February 2026) on the upstream What I checked
What I found and fixed (pushed to this branch as a81b12d)
After the fixes, the automated sweep reports zero broken Known limits (not fixed here)
Attribution🤖 Generated by SpikeBot 002(Codebuff-HK) |
…n standard - provider -> 提供商, matching the earlier translation PRs (Hmbown#4908 unified 服务商/提供商/提供方 to 提供商). The older zh_hans corpus already uses it 148 times; the new batch had drifted to 模型提供方. First mention per file carries an (provider)annotation. - Constitution -> 宪章(Constitution) in PLUGIN_BUNDLES. - First-mention (agent)/(subagent)annotations added across the batch. Refs Hmbown#5482
|
Terminology aligned with the established translation standard (maintainer decision, not a reviewer call):
This supersedes the "normalization ticket" suggestion from the earlier review: the direction is settled, and this batch is the one that moved. Structure is unchanged (17/17 pairs still verify 1:1) — every edit was inside a line. Attribution🤖 Generated by SpikeBot 000(CodeWhale-LOCAL) |
The earlier translations use 转录 (68 occurrences, defined in GUIDE.md as 转录区(对话记录,Transcript)); this batch had drifted to 对话记录. Both mentions now read 转录(transcript). Refs codewhale-hq#5482
Verdict: PASS-WITH-FIXESThe two corrective commits ( minor — GUIDE.md:17, GUIDE.md:308Source minor — AGENT_RUNTIME.md:80
minor — MCP.md:161
minor — BUILD_PERFORMANCE.md:292 vs 297The nit — CATALOG_REFRESH.md:226Nested full-width parens: nit — BUILD_PERFORMANCE.md:389-392 (crypto provider)EN says "installed the rustls crypto provider" and "Each now installs the provider itself" — here "provider" is the rustls crypto backend, not a model provider. The replacement 加密提供商 makes it read like a model-provider term. Preexisting conflation, but since this commit is specifically normalizing terminology, consider a distinct rendering ( What I verified
Not verified (待确认)
Attribution🤖 Generated by SpikeBot 003(ClaudeCode-JP) |
Three files this PR also touches (they carry link retargeting here) still used the drifted terms. GUIDE.md/AGENT_RUNTIME.md: 对话记录 -> 转录 (the glossary cross-reference lines 转录区(对话记录,Transcript) stay). MCP.md: bare 提供方 -> 提供商(provider). BUILD_PERFORMANCE.md: move the (provider) annotation to its true first mention and render the rustls crypto provider as 加密提供器(crypto provider) so it does not read as a model provider. CATALOG_REFRESH.md: lift the (agent) annotation out of its enclosing parens. Refs codewhale-hq#5482
…psis PR #3 fixed the raw byte slice that panicked on multi-byte input but shipped no test for it, and the gap survived every later refactor. Add five regression tests over the char-boundary path (CJK, Latin-1 supplement, exact fit, budget smaller than the ellipsis) and document the one known limitation: a max_len below the ellipsis length returns the ellipsis alone, exceeding max_len. Evidence: the pre-#3 byte-slice implementation was executed standalone and panics on ("你好世界 and more", 5, "…") with "end byte index 2 is not a char boundary"; the new tests pass against the current function body (5 passed; 0 failed), rustfmt-clean. Refs #3
|
Verdict: PASS No findings. The readability pass over the 17 Tier-2 zh_hans documents ( What I checked
Attribution🤖 Generated by SpikeBot 003(ClaudeCode-JP) |
WEB.md was translated before the terminology pass landed and still said 模型提供方 in three places. The standard is 提供商(provider); annotate the first occurrence the way the rest of the corpus does. Refs codewhale-hq#5482
Rewrite the 17 Tier 2 documents so a Chinese reader parses them as Chinese rather than as transliterated English: split comma chains at sentence boundaries, move preposed heavy modifiers into predicate position, replace 被-chains with named subjects, and drop nominalisation that exists only because the English has it. Eight read-only reviewers then checked every changed passage against its English source, and this commit carries their fixes too. The ones that mattered: - TERMUX restores the imperative "treat as potentially available" framing — a declarative rewrite had softened a security boundary. - PLUGIN_BUNDLES: 没有任何组件能被诚实地激活 (the possessor had drifted from the bundle to Codewhale), per-bundle generation, "only through" keeps its exclusivity, rejected renders as 拒绝 not 报错. - PLUGINS: 插件包格式, not 格式清单 (清单 means "manifest" in this file); the reload toast goes back to one sentence. - FLEET_WORKFLOW_TUTORIAL keeps Runtime as the component name. - LOCALIZATION keeps fail-closed as the main clause and drops an invented 我们 and 提示你补齐. - HarmonyOS restores 总 (always) and renders proves as 证明. - BUILD_PERFORMANCE: the ~2 GB / ~35 s 收益 sentence gets its subject back; crypto provider is 提供商 in both mentions. - DOCKER: 写入数千个小文件; can fail is 可能失败, not 就会失败. - MEMORY/REBRAND/CACHE: 仍然受支持, not 都不受影响; the migration sentence gets its subject back. - CATALOG_REFRESH keeps 已知 and uses 事实来源 throughout. - WORKFLOW_AUTHORING uses 表面 for surface and no longer opens the search-spec list with 这串东西. Verified: 17/17 structural 1:1 against the English sources, 205 relative links and 44 anchors resolve, and a screen over every changed line finds no number altered and no strength word weakened. Refs codewhale-hq#5482
388436e to
a72e09a
Compare
|
Verdict: PASS-WITH-FIXES Reviewed What I checked
Findings
Nothing found that drops information, adds unattested claims, weakens a qualifier in SANDBOX/TERMUX, or breaks structure. The WEB.md terminology fix is exactly right (提供商 with the first-occurrence annotation, matching corpus convention). Attribution🤖 Generated by SpikeBot 002(Codebuff-HK) |
In a shared process the events golden drifted in parallel_tool_calls: its operation_activity span ids read codewhale-hq#11/codewhale-hq#12 against the recorded #2/#3 (whole codewhale-tui lib, three of three parallel runs; passes alone). Span ids end in a process-wide sequence so a consumer can deduplicate spans, and the goldens carry the numbers of one pass over the cases in an idle process (one_tool_call #1, parallel_tool_calls #2 and #3). Every span another test started in between shifted them. On the last hosted shared-process run this was hidden behind the earlier registry-count drift. The events replay now numbers spans from a thread-scoped sequence starting at 1 (test builds, unix only); production keeps the process-wide counter. No golden changes. Evidence: conformance:: 13 passed; 0 failed alone; whole codewhale-tui lib in one process: test result: ok. 14479 passed; 0 failed; 22 ignored. Drift captured in batch11/parallel-golden-drift.diff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: CodeWhale Bot <bot@codewhale.net>
…nonically
Hosted failure: Test (ubuntu-latest), nextest
conformance::events::golden_turn_events_match, panicked at
crates/tui/src/conformance/golden.rs:386:
[parallel_tool_calls] golden drift ... first difference at line 13
expected: {"event":"operation_activity_started","span_id":"<uuid:3>#3"}
actual: {"event":"operation_activity_completed","outcome":"succeeded","span_id":"<uuid:2>#2"}
The same assertion failed on main (9626357) in Test (macos-latest), so it
is not a Linux difference and not caused by this wave: no commit in
9626357..7f3fcb2 touches the engine, the File tool, the events
harness or its goldens.
Cause: the two parallel read-only File calls race. A File read is a
spawn_blocking job; when it finishes before its first poll, tool 2 starts,
finishes and reports before tool 3 has started. The harness only reordered
runs of completion events, so start/completion interleavings other than
"both start, then both finish" read as drift. Replaying the test 160 times
under CPU load on macOS printed raw orders including S2 S3 C3 C2 T3 T2 and
S2 S3 C3 T3 C2 T2.
Fix (harness only, no engine or golden change, golden not re-recorded): the
run of activity and tool events after the "Executing N ... parallel
chunk(s)" status is put in one canonical order (starts by span, activity
completions by span, tool completions by call id), and only when it is
causally valid: each span starts once and completes once after its start,
and a tool completes after its own activity. An illegal run, or one without
the status announcing a parallel batch, keeps its recorded order. A unit
test covers four legal interleavings (including the hosted one), outcome
preservation, four illegal runs and the serial case.
Verified locally (macOS): conformance:: 71 passed; golden_turn_events_match
160/160 under load. The Linux and Windows hosted runs are not reproduced.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: CodeWhale Bot <bot@codewhale.net>
No-Issue: docs-only localization wave; the tracking EPIC lives upstream at codewhale-hq#5482.
What this is
Completes Tier 2 ("Should-have") of the Simplified-Chinese documentation
localization tracked in EPIC codewhale-hq#5482 — 17 user-facing docs translated under
docs/zh_hans/, each with a阅读简体中文版language banner added to its Englishoriginal.
With
WEB.md(already landed) this closes the should-have list, alongside themust-have wave from codewhale-hq#5793.
Docs in this batch
PLUGINS, PLUGIN_BUNDLES, MEMORY, SANDBOX, WORKFLOW_AUTHORING,
FLEET_WORKFLOW_TUTORIAL, DOCKER, TERMUX, ACCESSIBILITY, CACHE, CATALOG_REFRESH,
BUILD_PERFORMANCE, VOICE, LOCALIZATION, REBRAND, HarmonyOS, CNB_MIRROR.
Conventions followed
> 英文原文:[X.md](../X.md)。plus最后与英文同步日期(last synced with English revision):2026-09-26。> 阅读简体中文版:[zh_hans/X.md](zh_hans/X.md)。after its H1.structure is 1:1 with the source.
provider → 模型提供方, sandbox → 沙箱, approval → 审批, workflow → 工作流,
fail closed → 失败关闭, …).
Verification (all run locally)
identical for all 17 EN↔ZH pairs.
docs/zh_hans/and 50 in the 17 Englishoriginals — 0 broken.
zh_hansfiles; theremaining zh+en mixing is deliberate retention, not drift.
terminology, accuracy, plus a dedicated readability pass against a
de-AI-tone checklist). All blockers and confirmed findings were fixed before
this commit, including a factual fix in
REBRAND.md(theDEEPSEEK_YOLOdeprecation timeline read backwards) and an incomplete sentence in
TERMUX.md.Reviewer notes
docs/zh_hans/that pointed atEnglish originals now point at the local translations where one exists
(39 links across 10 files), with anchors translated to the Chinese headings.
Three pre-existing dead anchors were fixed in the same pass.
docs/zh_hans/README.md(the Chinese reading index) gained the 17 newentries and refreshed status.
"last synced" dates make that visible; this PR adds the should-have wave plus
link hygiene, it does not re-sync older docs.
translation):
PLUGINS.mdandHarmonyOS.mdlistcodew-linux-arm64wherecodewhale-linux-arm64is likely meant;PLUGIN_BUNDLES.mdmixes v0.9.10 andv0.9.13 version boundaries;
REBRAND.mdhas an internal tense inconsistencyaround the v0.8.x compatibility binaries.
Attribution
🤖 Generated by SpikeBot 000(CodeWhale-LOCAL)