PR #135 restored the old 2160ms total cycle by expanding the forward-only animation to 54 timer frames. That preserves the overall cadence, but the delay is implemented per frame: repeated positions are emitted across the 54-frame sequence at the existing 40ms interval.
This makes the visible spinner movement artificially slow and gives the impression of a sluggish/slow machine.
The intended behavior is to keep the forward-only movement at the normal frame rate, then place the compensating delay at the loop boundary. In other words: animate through the forward positions at the existing interval, then pause before starting the next cycle, rather than stretching individual positions across the whole cycle.
Acceptance criteria:
- Forward animation advances at the normal existing frame interval without repeated per-frame holds.
- The compensating delay occurs between complete animation loops.
- No reverse/ping-pong phase is reintroduced.
- The resulting full-cycle cadence remains consistent with the intended original timing.
- Add/update regression tests to assert both frame progression and loop-boundary timing.
PR #135 restored the old 2160ms total cycle by expanding the forward-only animation to 54 timer frames. That preserves the overall cadence, but the delay is implemented per frame: repeated positions are emitted across the 54-frame sequence at the existing 40ms interval.
This makes the visible spinner movement artificially slow and gives the impression of a sluggish/slow machine.
The intended behavior is to keep the forward-only movement at the normal frame rate, then place the compensating delay at the loop boundary. In other words: animate through the forward positions at the existing interval, then pause before starting the next cycle, rather than stretching individual positions across the whole cycle.
Acceptance criteria: