Parent: #173 — Milestone 2
Goal
Create a structural differ that compares old and new CatwalkSceneConfig to produce change descriptors, enabling animated transitions instead of full-scene teardown.
Tasks
- Create
src/client/visualizations/catwalk/state/catwalk-differ.ts
- Detect changes:
- Orchestrator position changed (stationIndex diff) → triggers walk
- Orchestrator working state changed → triggers glow toggle
- Agent state changed → triggers visual state transition
- Gate opened → triggers shrink animation
- Artifact added to station → triggers appearance
- Agents added/removed (rare, but possible if phase configuration changes)
Acceptance criteria
- Differ is a pure function:
diffCatwalkConfig(prev, next) → CatwalkDiff
- Unit tests cover: no change, orchestrator moved, agent state changed, gate opened, artifact added
Parent: #173 — Milestone 2
Goal
Create a structural differ that compares old and new
CatwalkSceneConfigto produce change descriptors, enabling animated transitions instead of full-scene teardown.Tasks
src/client/visualizations/catwalk/state/catwalk-differ.tsAcceptance criteria
diffCatwalkConfig(prev, next) → CatwalkDiff