You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the catwalk scene loads, all artifacts render immediately — inputs, outputs, and summary deliverables appear at once. In a demo or replay, artifacts should appear progressively as the orchestrator advances through stations and delivers outputs to recipients.
Three underlying issues prevent this:
Eager input derivation:buildInputArtifacts derives all input artifacts regardless of orchestrator position, so outputs and their derived inputs appear in the same diff with no delivery animation.
Wrong delivery target: The delivery choreography targets artifacts at the origin station instead of the destination, landing them at the wrong station.
No backward path: The scene can only move forward — there's no rebuild path when the demo restarts or steps backward.
The demo system currently models recordings as { header: RunHeader, events: RunEvent[] } and folds events into snapshots on every tick — an unnecessary indirection.
The non-catwalk visualizations (factory scene, flow diagram) are unused and can be removed.
CatwalkCanvas.tsx imports GameCanvas.css directly, so deleting GameCanvas.tsx requires renaming the CSS file to avoid breaking canvas styles.
Task 4 (choreographer delivery fix) depends on Task 2 (mapper deferral) for integration testing, since the new delivery filter only matches deferred inputs. Unit tests can be written independently.
Solution
Remove non-catwalk visualizations. Strip the visualization switcher, factory scene, and flow diagram. Render CatwalkCanvas directly from App.tsx.
Defer input derivation in mapper.buildInputArtifacts only derives inputs for stations the orchestrator has reached. Inputs appear in the diff exactly when the orchestrator moves to their station, producing the co-occurrence signal the choreographer needs.
Add scene rebuild on artifact regression.updateStatus detects artifacts disappearing between configs and triggers a full clear + rebuild. Handles backward stepping and demo restarts.
Fix delivery choreography. Delivery targets are slot: 'input' artifacts at the destination station. Sequence: flying ascend from origin chute → orchestrator walks → flying descend at destination → static input fades in.
Simplify demo data model. Replace RunHeader + RunEvent[] with a flat CanonicalRunStatus[] snapshot sequence. PlaybackController becomes a snapshot stepper with fixed base interval (~1.5s at 1x) and minimum floor (~300ms).
Problem
When the catwalk scene loads, all artifacts render immediately — inputs, outputs, and summary deliverables appear at once. In a demo or replay, artifacts should appear progressively as the orchestrator advances through stations and delivers outputs to recipients.
Three underlying issues prevent this:
buildInputArtifactsderives all input artifacts regardless of orchestrator position, so outputs and their derived inputs appear in the same diff with no delivery animation.Considerations
{ header: RunHeader, events: RunEvent[] }and folds events into snapshots on every tick — an unnecessary indirection.CatwalkCanvas.tsximportsGameCanvas.cssdirectly, so deletingGameCanvas.tsxrequires renaming the CSS file to avoid breaking canvas styles.Solution
CatwalkCanvasdirectly fromApp.tsx.buildInputArtifactsonly derives inputs for stations the orchestrator has reached. Inputs appear in the diff exactly when the orchestrator moves to their station, producing the co-occurrence signal the choreographer needs.updateStatusdetects artifacts disappearing between configs and triggers a full clear + rebuild. Handles backward stepping and demo restarts.slot: 'input'artifacts at the destination station. Sequence: flying ascend from origin chute → orchestrator walks → flying descend at destination → static input fades in.RunHeader + RunEvent[]with a flatCanonicalRunStatus[]snapshot sequence.PlaybackControllerbecomes a snapshot stepper with fixed base interval (~1.5s at 1x) and minimum floor (~300ms).Acceptance criteria
CanonicalRunStatus[]snapshot sequence