수정 2026-09-30
v1.36.293
2026-09-30
핵심 변경
decisions.md and lessons.md headers follow the harness language. decision add, lesson save and the other memory writers re-render these files behind a generated header, which was Korean in every project, so an English project's decisions.md began with ## Template (예시 — …) after its first decision. The header now follows the harness authoring language: an explicit --authoring-language, else the stored project language (manifest, then .leerness/LANGUAGE); a command's --language or LEERNESS_LANG does not change the file, and projects without a stored language keep the Korean header.
Existing files keep working. The generated prefix is still checked (projection_diverged guards hand edits), and it now accepts either the English or the Korean header, so a file written by an earlier version or before a language change is not refused; the next write replaces only that header, while records and appended text must match exactly. The write preflight and admission budget accept either header and size the one that will be written. Korean projects are written byte for byte as before: the same writes with the previous and the current library left 8 of 8 decisions and lessons files identical, and the English control differed. memory-migration bundles still render the Korean header, because their verification re-renders recorded bytes; the next ordinary write replaces it.
scripts/memory-language-probe.js (npm run test:memory-language) covers English and Korean projects for both files, a header of the other language accepted and replaced with the appended note kept, hand edits refused under either header with no file changed, the preflight's acceptance and exact projection size for each language pair, and the language source.