docs(wiki): catch concept pages up to the booth-UX/shift/font-scale work

Bring three queryable pages current with the booth-UX commit (cce99aa) whose
breadth hadn't propagated:
- booth-console: Active Sessions as a real table, dropped status column/filter,
  inline live-feed rows, removed TARGE via-badge + redundant Direction filter,
  plate now searchable + backfilled via plate-recognized WS push, per-user font scale.
- shift: Z-report display simplified (shitje dropped, opening cash added) while
  the signed payload is untouched.
- i18n: users.font_scale recorded alongside language/theme as the matching
  per-user server-stored pref (migration 0014).

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-06-29 11:43:12 +02:00
parent f6e35bbebf
commit 11567a417f
3 changed files with 31 additions and 0 deletions
+5
View File
@@ -22,6 +22,11 @@ any booth. (Decided + built 2026-06-18.)
(self-service, any signed-in role). It is **deliberately NOT in the JWT** (identity/role only) — so
changing language is a DB write + immediate `/me`, with no token refresh / re-login. See
[[local-jwt-auth]].
- **Sibling per-user UI prefs (same pattern).** `users.theme` (`'dark'|'light'`) and **`users.font_scale`**
(percent, default 100; migration 0014, added 2026-06-28) follow language exactly — DB column,
surfaced on `/login` + `/me`, self-service `PUT /api/auth/theme` / `/api/auth/font-scale`, applied
after `/me` (`applyTheme` / `applyFontScale`), header toggles that persist. Font scale sets the
root `font-size` over the app's rem-based type (NOT CSS `zoom`); none of the three is a JWT claim.
- **Library: react-i18next** (i18next). Chosen over a hand-rolled `t()` for pluralization,
interpolation, and headroom beyond two languages. The active language is applied after `/me`
resolves (App effect on `user.language`); the header **SQ/EN toggle** switches instantly *and*