hl run records MT work in lock and cache identity, and writes character usage, request counts, and duration into the --output JSON report. entries --srx splits string values with the same SRX 2.0 templates as run. Starter i18n.yml and CLI docs cover Google and DeepL routing. Planning and parsers are faster for multi-locale runs, plain ICU text, Liquid files, and segment validation.
View the GitHub release · Full changelog
Breaking changes
None.Features
- Track MT identity in lock and remote-cache keys (translation type, MT provider, and profile), with backward-compatible matching for existing LLM lock entries. MT tasks that still have a type-less 1.12.0 lock hash are re-run so LLM and MT work cannot collide.
- Add MT usage to
--outputJSON:sourceChars,translatedChars,requestCount, anddurationMsat run, locale (localeMTUsage), and profile (mtUsageByProfile) levels, plustranslationTypeon failures and batches. Character usage is JSON-only (not the stdout summary). Tracing includes translation type and provider. - Document MT configuration and routing (Google/DeepL credentials,
llm.rules→translation.rulesmigration, batching, retries, reporting, and LLM-only features). The starteri18n.ymlfromhyperlocalise initstays LLM-only, with commentedmt/translationexamples. - Add
entries --srx(default,html,markdown, or an SRX file path) sohl entriescan split string values with SRX 2.0 the same wayhl rundoes, including Markdown/MDX documents. Already-segmented formats such as strict FormatJSdefaultMessageobjects stay unsplit.
Fixes
None.Performance
- Task planning reuses precomputed source-text and source-context hashes instead of recomputing SHA-512 once per target locale.
- ICU
ParseInvariantskips AST work for plain text with no{#<}'}signals; placeholder-name checks use an ASCII fast path (~112 ns, 0 allocs). - Liquid parsing is about 12–23% faster (~3.0–3.5 ms/op → ~2.64 ms/op) by avoiding placeholder-token heap allocs and skipping sentinel regex when none are present.
- Segment validation is about 17–34% faster on common paths (424.5 ns → 353.2 ns/op plain; 733.5 ns → 486.3 ns/op QA) with 46–79% less heap and fewer allocs.
Tests
- MT lock migration, mixed LLM/MT runs, JSON report aggregates, tracing, and secret redaction.
- Command-level MT-only and mixed MT/LLM runs, including lock reuse, missing credentials, DeepL URL validation, and legacy LLM-only compatibility.
entries --srxfor JSON, FormatJS skip, and Markdown documents.- Cache-hash reuse during task planning and ICU plain-text invariant fast-path regressions.
Maintenance
- Drop protobuf scaffolding from the Go module and simplify
make fmt.

