openclaw/apps
Peter Steinberger f02d16e758
fix(i18n): stop parallel native PRs from conflicting in the string inventory (#163330)
The generated native inventory stored one line per string with every
extraction site inline, sorted alphabetically. Two PRs reusing a string
("Retry") both rewrote its line, and a feature's new strings ("Group by",
"Group chat") landed in the same insertion gap, so parallel native PRs
conflicted in apps/.i18n/native-source.json and needed a rebase plus a
full CI rerun.

Inventory v3 writes one line per extraction site, clustered by source
file, with clusters ordered by a hash of the path so new sibling files do
not share a gap. Each row's position depends only on its own content, so
independent edits merge cleanly (including GitHub's server-side merge)
and the merged text equals a fresh baseline. The new
scripts/native-i18n-inventory.ts owns serialization and parsing; the
generator, Android/Gradle and Apple readers migrate to it together and
receive the same entries in the same order as before.
2026-10-02 15:48:17 +00:00
..
.i18n fix(i18n): stop parallel native PRs from conflicting in the string inventory (#163330) 2026-10-02 15:48:17 +00:00
android fix(i18n): stop parallel native PRs from conflicting in the string inventory (#163330) 2026-10-02 15:48:17 +00:00
ios refactor(native): deslop native row and polling state (#163449) 2026-10-02 12:16:04 +00:00
linux refactor(installer): share standalone shell installer policy (#162652) 2026-10-01 13:01:25 -07:00
macos refactor(native): deslop native row and polling state (#163449) 2026-10-02 12:16:04 +00:00
macos-mlx-tts chore(deps): refresh dependencies through September 19 cutoff (#159401) 2026-09-27 19:33:08 -07:00
shared fix(ios): play realtime voice replies reliably with xAI (#163146) 2026-10-02 08:01:14 -07:00
swabble refactor(apple): deslop shared Swift packages second pass (#159386) 2026-09-27 14:35:55 +00:00