Commit Graph

2 Commits

Author SHA1 Message Date
gsxdsm
cfff270be7 fix(i18n): green CI — settings mock + canonical text token
- settings.test.ts mocks @fusion/core; add SUPPORTED_LOCALES to the mock so the
  new language enum import resolves (shard 1).
- LanguageSelector.css used the banned --text-secondary token; switch to the
  canonical --text-muted (shard 2 text-token-canonicalization guard).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 09:13:03 -07:00
gsxdsm
3ae1fc3830 feat(dashboard): add language switcher and persistence (U4)
Add useLanguage (three-tier persistence mirroring useTheme: localStorage cache
+ server GlobalSettings write-through + hydrate-on-mount, local choice wins)
and a LanguageSelector rendered in the Settings Appearance section. Switching
applies in place via i18n.changeLanguage — no reload, so unsaved state and
in-flight agent views survive. Endonyms name each language in its own script.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 08:19:44 -07:00