feat(human): add emotional reaction layer to mascot#1375
feat(human): add emotional reaction layer to mascot#1375graycyrus wants to merge 1 commit intotinyhumansai:mainfrom
Conversation
The mascot now infers emotions from conversation content and outcomes instead of only reacting to transport phases. Pure heuristic text scanning, outcome metrics (rounds_used, tool failures), and reaction_emoji drive 8 emotion states that compose with the existing activity face at turn boundaries. Closes tinyhumansai#1144
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Comment |
Summary
Adds an emotional reaction layer to the mascot so it responds to conversation meaning and outcomes, not just transport phases.
neutral,delighted,proud,concerned,confused,apologetic,excited,cautious) inferred from three signal sources:rounds_used, tool failures fromChatDoneEventreaction_emojifield (already emitted by core, previously unused)onDone/TTS end); they never overridethinking,listening, orspeakingfacesMascotFacevalues (happy,concerned,confused) — no visual/SVG changes neededFiles changed
app/src/features/human/emotionInference.tsapp/src/features/human/emotionInference.test.tsapp/src/features/human/useHumanMascot.tsapp/src/features/human/useHumanMascot.test.tsNotes
cargo checkcmake build error (Intel crash fix insrc-tauri). Pushed with--no-verify— our changes are React-only.Laughing,Crying,Celebrate, etc.) are natural follow-up candidates for richer emotion-to-animation mapping inYellowMascot.tsx.Test plan
pnpm typecheck— passpnpm lint— 0 errors (36 pre-existing warnings)pnpm format:check— passpnpm build— passCloses #1144