cmux NEXT Home: plural step counts in every locale; the store keeps the thought's headline, not its text

Merged
TE
16d ago
+2535-422

Summary

This is a follow-up to #22644, which merged before its review findings were fixed.

  • Plural forms. The Chief's running indicator folds finished steps into counts like "Ran 3 commands", "Read 2 files" and "4 more steps". Each of those six strings now has plural variations in all 21 locales of CmuxHome.xcstrings, and each is recorded in scripts/localization-plurals.json.
    • Arabic had used one plural form for every count. It now has its dual form for 2, plural for 3โ€“10 and singular accusative for 11 and up.
    • Polish, Russian, Ukrainian and Bosnian get their few and many forms.
    • French, Spanish, Italian and Portuguese get "many".
  • Headline only in the store. The live book now publishes only the headline of the Chief's newest thought (HomeThoughtHeadline, moved into CmuxHomeCore), not the whole thought of up to 64 KiB. A streamed thought token now changes HomeStore.live only when the line a person sees changes. The headline rule itself is unchanged: last bold heading, else last sentence, at most 72 characters.

Test

HomeTurnThoughtStoreTests now checks that the store holds the headline, not the raw text, and that a later heading replaces it after the thought's step ends.

Observed / Not run

  • Observed:
    • scripts/cmux-next/prepush-gate.py passes.
    • localization_catalog.py check --catalog โ€ฆ/CmuxHome.xcstrings reports no errors other than needs_review states; every machine translation in this catalog carries that state.
  • Pending: MessagesLab Swift tests on the fleet at this head. #22644's head (4c8f1ee) passed all 52 suites on the fleet.
  • Not run: a tagged build or a screenshot. Nothing is built on the Mac.

Agent session: cosmic-gray

๐Ÿค– Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the review findings from #22644: the Chief's folded step counts now use plural forms in every locale, and the store keeps only a thought's headline instead of its whole text.

Plural forms

  • Six running-indicator strings now have plural variations in all 21 locales of CmuxHome.xcstrings, recorded in scripts/localization-plurals.json.
  • Arabic gains its dual form for 2 and plural for 3โ€“10; Polish, Russian, Ukrainian, and Bosnian gain few and many forms.
  • ja, km, ko, th, vi, and zh had only the other category; their single form now repeats other, satisfying check-l10n.sh.

Headline in the store

  • The live book publishes only the newest thought's headline (HomeThoughtHeadline, moved into CmuxHomeCore) instead of the whole thought (up to 64 KiB), so a streamed token changes HomeStore.live only when the line a person sees changes.
  • The headline rule (last bold heading, else last sentence, at most 72 characters) is unchanged, and the headline stays as the run's narration until the next thought.
  • The running indicator now shows the published headline as it is, without headlining it a second time.
  • HomeTurnProgressTests verifies the store holds the headline, not the raw text, and that a later heading replaces it.