수정 2026-09-30
v1.36.292
2026-09-30
핵심 변경
English handoff no longer prints Korean-only tool text. An English project on Korean Windows saw the terminal-encoding notice, skill suggestions, the official-skill cache note, the next-step suggestions and the compact 다음: line in Korean. Every string the tool writes on the handoff text, --compact, --pulse, --json and workspace (--include, --all-apps) paths, in the SessionStart hook context and in the pre-handoff drift and not-initialized banners now follows the project language; 168 string literals were wrapped in a language helper whose first argument is the unchanged Korean text. Helper text these paths print follows it too: next-step titles, abnormal-shutdown details and resume guide, session blind spots and short session flags, the version-skew warning, shell-script risk text, and built-in skill descriptions, for which English shows the description's English sentence or the skill's English name. Document bodies and user data are printed as stored.
Korean output is unchanged: 24 Korean scenarios (fresh standard and minimal projects and a fixture raising 20 conditional sections, each as handoff, compact, pulse, JSON, hook and compact with a session flag; plus workspace, not-initialized, missing-path and version-skew runs) matched the previous CLI byte for byte, and the same comparison in English differed in all 24.
scripts/handoff-i18n-probe.js (npm run test:handoff-i18n, also in test:i18n, test, test:core and test:fast) checks fresh English projects (handoff, compact, pulse, JSON, hook, short session flags), a fixture raising 20 conditional sections (24 checks) in English and in Korean, the terminal-encoding notice (Windows code page 949, or a POSIX locale without UTF-8), workspace, not-initialized, missing-path and version-skew output, and a static guard that fails when a Korean string literal on these paths is not the Korean argument of a language helper. Breaking each of 16 localizations in an isolated copy made its targeted check fail (16 of 16), after a control run in which every targeted check passed; one of them, an unwrapped string in a section no fixture raises, is caught only by the static guard.