Skip to content

Polish catwalk M3: chute alignment, error visibility, and mapper test gap #239

Description

@williamthorsen

Polish catwalk M3: chute alignment, error visibility, and mapper test gap

Follow-up items deferred from #184 (Catwalk milestone 3). All are low-severity polish — no functional bugs.

Items

T1: Chute endpoint ignores real agent count

findStationChuteEndpoints (now inlined in chute-choreographer.ts) always uses slot 0 / agentCount 1, regardless of how many agents are actually at the station. At stations with multiple agents (e.g., two parallel reviewers), the actual chute positions are computed using the real agent count, which shifts chute X positions. The flying artifact animates along a slightly different X position than any visible chute, producing a misaligned visual.

Fix: Thread the real agent count and slot through to the layout.chuteEndpoints() call sites in choreographDelivery, or receive the agent count from refs or config.

T2: noop catch on actor animation promises suppresses all rejection reasons

The .catch(noop) handlers on flyer.ascend(), flyer.descend(), and orchestrator.animateMoveTo() in chute-choreographer.ts are documented as guarding against killed-actor errors, but they also suppress unexpected rejections (e.g., Excalibur API changes, programming errors in the action chain). The outer scene-level catch block (CatwalkScene.ts) now logs errors and recovers, providing defense-in-depth.

Fix: Replace noop with a handler that logs unexpected errors while still swallowing the known killed-actor case — e.g., check the rejection message/type and log anything that doesn't match the expected pattern.

T3: Missing boundary test for buildCarriedArtifacts at highest station index

The existing tests cover stationIndex === 0 (no previous station) and stationIndex === 1 (planning → architecture). There is no test for the case where the orchestrator is at the highest numbered phase (e.g., review) and artifacts exist at every prior station — specifically the fix-shuttle path where the orchestrator moves right-to-left.

Fix: Add a test with the orchestrator at the review station (rightmost non-absent station) where an artifact exists two stations back, confirming the reverse scan returns the correct artifacts for the fix-shuttle scenario.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions