main
feat(mascot): render dynamic backend Rive mascots with version cache (#4131)
feat(voice): polish mascot TTS/STT session states and lifecycle (#2916)
refactor: rename tabs, flatten composer, polish UI (#3611)
fix(i18n): localize MicComposer getUserMedia error messages (#2966)
feat(theme): runtime theming — semantic tokens, Theme Studio, presets (#4130)
feat(ui): user-friendly tool and agent labels in the chat tool timeline (#3054)
feat(voice): configurable mascot voice with ElevenLabs picker (#1821)
feat(mascot): add emotional reaction layer for conversation state (#1144) (#3019)
feat(mascot): install upgraded tiny_mascot.riv + wire MascotSM poses/visemes (#3612)