Problem
Thought bubbles currently display static text. The design calls for cycling content — multiple texts rotating every 4-6 seconds, staggered across agents — plus freeze-on-hover interaction.
Context
The ThoughtBubbleConfig type (introduced in #295 / #299) already supports cycling: it has a texts: ThoughtBubbleText[] array and a staggerOffsetMs field. The data model is ready. What's missing is the cycling behavior in the rendering layer.
The LogicalSceneState mapper (from #299) populates thought bubble content with multiple text items per agent. This ticket covers the presentation-layer behavior that consumes that data.
Related: #299 (logical scene state), #295 (visualization workstreams)
Solution
Implement cycling behavior in the tilemap scene (or as a shared utility if applicable to other visualizations):
- Rotate through
texts[] at a configurable interval (4-6 seconds)
- Apply
staggerOffsetMs so bubbles don't all change simultaneously
- Freeze cycling on hover (resume on mouse leave)
- Smooth fade transition between text items
Acceptance criteria
Problem
Thought bubbles currently display static text. The design calls for cycling content — multiple texts rotating every 4-6 seconds, staggered across agents — plus freeze-on-hover interaction.
Context
The
ThoughtBubbleConfigtype (introduced in #295 / #299) already supports cycling: it has atexts: ThoughtBubbleText[]array and astaggerOffsetMsfield. The data model is ready. What's missing is the cycling behavior in the rendering layer.The
LogicalSceneStatemapper (from #299) populates thought bubble content with multiple text items per agent. This ticket covers the presentation-layer behavior that consumes that data.Related: #299 (logical scene state), #295 (visualization workstreams)
Solution
Implement cycling behavior in the tilemap scene (or as a shared utility if applicable to other visualizations):
texts[]at a configurable interval (4-6 seconds)staggerOffsetMsso bubbles don't all change simultaneouslyAcceptance criteria
texts[]arraystaggerOffsetMs