- third AA-tested palette 'softclub' (pastel Y2K); html class toggled by
a MutationObserver when 日本語 is selected; re-maps our tokens AND
Gradio's theme vars (scoped past :root.dark re-declarations, found in
browser); chrome-gradient wordmark, pill buttons, glow sheets, sparkle
- analyzing state: generic progress bar + timer hidden, bigger envelope
flap + breathing localized text instead
- read-aloud button hidden until an analysis succeeds (single-component
visibility update; a wrapper Group's toggle got stomped when its child
was updated in the same event - documented in code)
- example-letter thumbnails get real tap-target styling
95 tests pass; browser-verified: egg on/off round trip, read-aloud
show/hide across analyze + language switch, screenshot in docs/ui.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs(modal): GO report from the GPU validation matrix + field notes
Run 1 caught the lottery contact leak (fixed in 8a72932); run 2 is
all-green: 10 analyses + 4 speech runs. Report committed as evidence.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
test(live): rigorous synthetic-letter suite vs deployed Space + handoff
4 scenarios on real ZeroGPU all PASS: bill->low, lottery->caution,
gift-card scam in Japanese->warning + 32.8s VoxCPM2 ja speech,
noise->polite error. Safety contract assertions per run. UI FREEZE.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(ui): ?lang= deep-link via head script + UI screenshot set
launch(js=) is ignored on load in Gradio 6.17.3 (verified), so the
deep-link rides in head=. ?autorun is GUARDIAN_MOCK-gated: it can never
fire a GPU run on the Space. scripts/shoot_ui.py = CDP screenshot driver
(dev-only). docs/ui: en/hi/ja landing+result, mobile, loader captures.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Compliance: required README frontmatter tags + field-guide intel in plan