Skip to content

fix(tui): translate the context inspector rows twelve packs ship in English - #6831

Merged
Hmbown merged 1 commit into
codewhale-hq:mainfrom
Lstarsky0:fix/locale-copied-english
Oct 3, 2026
Merged

Hmbown merged 1 commit into
codewhale-hq:mainfrom
Lstarsky0:fix/locale-copied-english

Conversation

@Lstarsky0

Copy link
Copy Markdown
Contributor

What and why

Twelve of the fourteen translated packs (all but zh-Hans and zh-Hant) still show these in English:

  • the context inspector's making-room and anchors rows: CtxInspRowCompaction, CtxInspRowAnchors and the eight CtxInspCompaction* / CtxInspAnchors* lines under them
  • the Ctrl+O hint (KbReasoningDetail) and the /turn inspect description (CmdTurnInspectDescription)
  • the /advisor description, which still has the English from before c665b6c3f ("Toggle background advisor watcher on/off for this session")

locales/AGENTS.md asks for every complete pack to be translated rather than copied from English, so this translates those 13 keys in each of the twelve packs. Each pack keeps the words it already uses for compaction, turn, round, tool result and checkpoint. 4c6f18093 moved the English to "making room" and left the other packs on their compaction wording, so the inspector now reads the same as the rest of each pack. Russian and Ukrainian put the counts after a label (сообщений — {round}) so they don't need plural agreement.

A test in the style of work_stop_confirmation_is_explicitly_localized checks that no complete pack ships the English text for these keys. Corrections from native speakers are welcome.

Issue

No-Issue: strings that twelve locale packs still ship in English

How I tested it

  • cargo test -p codewhale-localization: 53 passed. With main's packs the new test fails on the first copied key (ja ships the English text for CtxInspRowAnchors).
  • python3 scripts/check-tui-locale-parity.py: PASS. Every changed string keeps the placeholders of its English source.
  • cargo nextest run -p codewhale-tui --lib: 14531 passed, 2 failed. The two are mcp::http_client tests that fail here because of a local HTTP proxy; main fails them the same way and they pass with the proxy unset.
  • cargo clippy with CI's flags: nothing on codewhale-localization, nothing new on codewhale-tui compared to main.
  • cargo fmt --all -- --check: clean.

Checklist

  • One focused change, rebased on current main
  • cargo fmt --all passes, and tests cover new or changed behavior
  • If this adds or changes a user-facing feature, I updated its docs and its row in docs/features.toml (cargo test -p codewhale-tui --test feature_registry checks it) — n/a

…nglish

Every pack except zh-Hans and zh-Hant shows the context inspector's
making-room and anchors rows, the Ctrl+O reasoning-detail hint and the
/turn inspect description in English, and /advisor in an older English
wording. Translate them using each pack's existing words for compaction,
turn, round, tool result and checkpoint, and assert the shipped packs no
longer carry the English text for them.

Signed-off-by: Lstarsky0 <59827030+Lstarsky0@users.noreply.github.com>
@Lstarsky0
Lstarsky0 requested a review from Hmbown as a code owner October 3, 2026 06:14
@github-actions github-actions Bot added the contribution-gate Author not yet in .github/APPROVED_CONTRIBUTORS; a maintainer grants access with /lgtm label Oct 3, 2026
@Hmbown
Hmbown merged commit 296c05d into codewhale-hq:main Oct 3, 2026
43 of 44 checks passed
Hmbown pushed a commit that referenced this pull request Oct 3, 2026
Retain the real main parent 296c05d
and the original PR merge/commit ancestry for #6819 (@Guan0923), #6829 and
#6831 (@Lstarsky0), and #6830 (@SparkofSpike). Resolve the 19 reviewed
counterparts to the exact V22 product tree, including all 156 original
translated values and the original localization regression test.

Exact V22 local checks: Rust 1351/0/0; localization 54/0/0; CI-policy Clippy PASS.
CLI: 3 actual processes / 6 checks / 6 local fixture requests / 0 paid calls; approval, resume, cancellation and EOF effects passed.
npm test + check:web: 1180 passed / 0 failed / 7 explicit skips (wrapper101, SDK19, host378, website682); strict TypeScript and production web passed.
No contributor harvesting, runtime default flip, install or release claim.

Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Hmbown pushed a commit that referenced this pull request Oct 4, 2026
Windows Native hosts: on 02fcc3e the LPAC token check and the data-directory
share conflict were fixed, and the isolation probe ran inside the LPAC for the
first time. Node then aborted at startup (WSAStartup 10107): an LPAC cannot
open any registry key without the registryRead capability, and Winsock reads
its catalog from the registry. Native hosts now receive exactly that one
capability (derived by name), and the token check requires exactly it; it
grants no file, network or COM access, and socket creation stays denied,
which the probe checks. Bun failed opening the NUL device (EPERM) for
--config=NUL: the plain Bun host now reads an empty config from the granted
runtime-copy directory, and the Windows compiled host relies on
--no-compile-autoload-bunfig instead of baking --config=NUL. Unprotected file
ACL edits now pass an explicit-only DACL to SetSecurityInfo with
UNPROTECTED_DACL_SECURITY_INFORMATION so Windows re-derives inherited entries
from the parent (a file has no children to propagate to); the kernel write had
turned a file's inherited entries explicit. ACL pointer reads use checked
NonNull access (CodeQL rust/access-invalid-pointer on 02fcc3e).

Windows atomic writes: Fleet's WorkspaceFile/WindowsDirectory pins, new in
0.10.1, keep every ancestor directory of a Fleet file open with read-only
sharing. MoveFileExW (tempfile::persist) reopens the destination directory
with FILE_ADD_FILE, so while a Fleet ledger is alive (a whole `codewhale
fleet` run, or a Runtime API request) Codewhale's own atomic writes into the
workspace root or its ancestors failed with os error 32. That includes
file-tool edits; hosted Windows showed it as a bare 500 writing mcp.json. On
Windows, write_atomic now creates its temp with DELETE access and renames
through that handle with a bare file name (the rename Fleet publication
already uses), so the parent is never reopened and no pin is relaxed. Names
Windows would rewrite (trailing dot or space, device names) are refused
before any temp exists, and every failure path closes the delete-denying
handle before removing the temp. MCP config write errors now name the file.
A Windows test writes and replaces a file beside live Fleet pins and checks
refused names leave no temp behind.

Wire JSON: the extension-host `isJson` guard used Array.every and
Object.values, so it accepted sparse arrays, extra array properties,
accessors and symbol keys that serialize differently from what was checked
(Copilot review on #6815). It now accepts only dense arrays and plain objects
whose own keys are enumerable string data properties, the rule storage.ts
already enforced; storage's duplicate check is removed. A new test fails on
the old guard and passes on the new one. Bundles that include the guard were
rebuilt with the pinned esbuild; the harness builtin digest pin in tier.rs
moves with it.

Release notes: credits and entries for #6820, #6829, #6830 and #6831, which
landed in 0.10.1 without CHANGELOG coverage, and for #6827 (Windows node.exe
kills are held by the built-in safety floor even in Full Access), crediting
@jayanthvee in the CHANGELOG, docs/CONTRIBUTORS.md, website credits and
public-surface facts.

Fixes #6827

Source15 verification (3,792 rows; owning HEAD cf03333 and index 5983aa54
unchanged):
- npm test and npm run check:web: 1,185 passed / 0 failed / 7 explicit skips
  (the website credit-parity test caught the first draft missing the new
  reporter credit);
  extension-host suite 390 tests, 383 passed, 0 failed, 7 skipped.
- macOS, compiled host rebuilt from the new bundle: extension_host 177/0,
  plugins::install::dsh 28/0, mcp 407/0, utils 38/0, tools::file 190/0,
  runtime_store_convergence 14/0, builtin digest table 2/0.
- Windows: cargo check --target x86_64-pc-windows-gnu of codewhale-tui lib
  and tests clean under deny(warnings); write_atomic change reviewed
  adversarially (FIX_FIRST findings applied: early-error temp cleanup, single
  retry layer, rewritten-name refusal). The LPAC capability, Bun config and
  file-ACL changes are type-checked only; their runtime proof is this head's
  hosted Windows run.

Hosted 02fcc3e: Safety, Lint, npm wrapper smoke and Test (ubuntu-latest)
passed. Windows 17,952 passed / 91 failed: LPAC runtime startup (Node
WSAStartup, Bun NUL config), one file-ACL hygiene test, the mcp.json write
conflict and one DSH HTTP case behind the probe, all addressed above. CodeQL
flagged five pointer reads, addressed above. Not proven here: Windows runtime
of these repairs.
This is source integration, not release, deploy, provider or install
approval.

Evidence: artifacts/gpt61-0101-takeover-20261002/parent-source15-application,
parent-source15-local, parent-source15-npm-web-actual, windows-gnu-check.

Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hmbown pushed a commit that referenced this pull request Oct 9, 2026
Focus Fleet and Providers on original captured panel rows with full-terminal disclosure. Preserve all six source capture hashes and cell data. Maintain readable 13px minimum terminal text with contained, focusable horizontal scrolling on phones. Use shared English/Chinese captions and install notes; add Cargo and pin the Windows package identifier.

Validation: npm test 1312 passed, 0 failed, 7 skipped; npm run check:web passed with 894/894 pages, zero lint errors and one existing unused-spawnSync warning. Existing mechanical design detector returned zero findings. Independent eight-path/capture/screenshot review found no material blocker. Desktop, 390px mobile and Chinese preview inspected; Cargo copy exactly matched the full command; provider region keyboard scrolling moved 40px with focus retained. No new tests. Public deployment is a separate receipt.

Refs #6831
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contribution-gate Author not yet in .github/APPROVED_CONTRIBUTORS; a maintainer grants access with /lgtm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants