Repository navigation
feat(office): smarter pixel agents — chat-reactive, emotional reactions, handoff bubbles - #120
Conversation
…ns, handoff bubbles
Pixel agents in the Playwright Dashboard office canvas now respond to four live
signals instead of coarse run/failure flags:
1. Chat-reactive: agentStatuses ('working'/'waiting') is wired to setAgentActive
so agents walk to their desk and type while responding, then wander when idle.
2. Emotional reactions: on run completion, all agents show react_pass (green ✓)
or react_fail (red ✗) speech bubbles; passing runs also trigger a 2.5 s
celebration where agents stay briefly at their desks.
3. Handoff bubbles: on turn_done in multi-agent chat, the finishing agent briefly
shows a waiting bubble — a visual "passing the baton" signal.
4. Two new pixel-art bubble sprites (react_pass / react_fail) with light-tinted
backgrounds, wired through the existing sprite pipeline (types, spriteData,
renderer, officeState).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
📝 WalkthroughWalkthroughThis PR adds visual reaction bubbles (pass/fail checkmarks and X marks) to the 2D pixel office. Agents now display animated reactions when tests complete, and waiting bubbles during chat turn handoff. The feature is wired through new sprite assets, extended office engine timer logic, and dashboard integration that synchronizes bubble display with test-run state and live collaboration activity. ChangesSmarter Pixel Agents with Reaction Bubbles
Sequence DiagramsequenceDiagram
participant Dashboard as PwOfficePanel
participant Engine as OfficeState
participant Renderer as renderBubbles
Dashboard->>Engine: showReactBubble(agentId, 'react_pass')
Engine->>Engine: set bubbleType & bubbleTimer
loop every tick
Engine->>Engine: update(dt): decrement bubbleTimer
Engine->>Engine: if timer expired, clear bubbleType
end
Renderer->>Engine: check ch.bubbleType
Renderer->>Renderer: select sprite by type
Renderer->>Renderer: apply fade-out if timer < FADE_DURATION
Renderer->>Renderer: draw bubble
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Description
Pixel agents in the Playwright Dashboard's office canvas previously only reacted to
two coarse signals (run active, failures exist). This PR wires them to four smarter
live signals, making the office feel genuinely alive.
(
agentStatusesnow wired tosetAgentActive), wander again when idle.(pass) or red ✗ bubble (fail); passing runs trigger a 2.5 s celebration.
bubble on
turn_donebefore the next agent activates.bubble-react-pass.json(light-green bg) andbubble-react-fail.json(pink bg), wired through the existing sprite pipeline.Type of change
Checklist
npm run typecheck)npm run lint)npm run devSummary by CodeRabbit