deepseek-harness/packages/client/ui-theme/tests
imccyu c317fbc489 feat(client): typed locale standard seat in the slot framework
Registrations declare a dictionary namespace (locale: NS) and the renderer
synthesizes a typed t prop for the entry's component from the installed
LocaleFace; the seat binding is re-derived per locale revision, so a language
switch hands out fresh t references and memoized consumers re-render through
ordinary shallow comparison. LocaleNamespaceMap is the declare-merge table
(namespace -> dictionary key union); TranslateNS<'ns'> is the
namespace-addressed translate type (namespace keys plus the shared common
vocabulary), carried by the t seat and by the locale service's typed bind.

LocaleService implements the face (lookup ns -> common -> zh -> key,
revision-carrying snapshots with subscriber isolation) and installs it
through the boot-once slots.installLocale seam, mirroring the renderer
install. The typed register(ns, {zh, en}) overload checks each dictionary
against the namespace's key union and requires every shipped locale, so a
missing or extra key and an unbalanced translation are compile errors.
Dictionary registration bumps the face revision without emitting
locale/change — the event now means exactly 'the active locale switched',
so registration-heavy boot cannot storm event listeners.
2026-07-30 01:04:56 +08:00
..
appearance-row.spec.tsx feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
apply.spec.ts feat(client): typed locale standard seat in the slot framework 2026-07-30 01:04:56 +08:00
invariant.spec.ts refactor(gui): features register their own settings surfaces 2026-07-26 02:51:36 +08:00
scrollbar-styles.spec.ts test(ui-theme): resolve elevated surfaces from the palette, not from rebinds 2026-07-28 18:31:52 +08:00
settings-store.spec.ts docs(gui): regenerate graphs and sync the note's English pair 2026-07-26 02:54:29 +08:00
theme.spec.ts fix(client): lint conformance for the preference services 2026-07-26 01:30:46 +08:00