Motion / animation parity coverage
Tracks which Koder UI surfaces have shipped the motion/animation-parity suite (categories M1–M4) mandated by meta/docs/stack/specs/develop/animation-parity-tdds.kmd § R1. Temporal complement to registries/visual-regression-coverage.md (which tracks STATIC categories A–D). CI release engineering blocks any release whose row here isn't green for its `parity-achieved` interactions.
A row per Koder surface that ships timed motion (module × surface kind). Each row tracks the four motion categories (M1 curve/timing, M2 temporal frame diff, M3 effect geometry, M4 reference-target), the comparison mode, and — for surfaces under a parity program — the M4 phase.
Status cells
| Cell | Meaning |
|---|---|
| ✅ | Suite exists, runs in CI / on s.khost1, passes at last invocation |
| ⚠ | Suite exists but has known failing rows / TODO bodies |
| ❌ | No suite exists |
| n/a | Category does not apply to this surface |
Mode & phase
- Mode —
self-golden(regression vs own committed golden) and/orreference-target(parity vs a captured reference impl, e.g. GNOME 48;animation-parity-tdds.kmd § R3). - M4 phase —
report-only(produces the gap list → tickets) →parity-achieved(blocking; a later drift fails CI). Perparity.toml.
Coverage
| Module | Surface | M1 curve/timing | M2 frame diff | M3 effect geom | M4 ref-target | Mode | M4 phase | Harness | Last audit |
|---|---|---|---|---|---|---|---|---|---|
infra/linux/kolide |
wayland-layer-shell (C/GTK4) | ✅ (ripple, cairo prong — M1.1–M1.4) | ❌ (live prong, s.khost1) | ✅ (ripple, cairo prong — originradiusalpha/reduced-motion) | ❌ (live prong, s.khost1) | self-golden ✅ / reference-target pending clip | report-only | cairo prong ✅ / s.khost1 live ❌ | 2026-06-07 |
infra/linux/x (Kompose) |
wlroots compositor | ❌ | ❌ | ❌ | ❌ | self-golden | — | ❌ | — |
engines/sdk/koder_kit |
flutter (motion tokens) | ⚠ (tokens validated, not per-surface M1) | ❌ | n/a | n/a | self-golden | n/a | flutter_test | 2026-06-07 |
Seed at registry creation (2026-06-07 with projects/koder-stack#178). The harness that turns the live prong (M2/M4) ✅ is the s.khost1 AV parity engine (
animation-parity-tdds.kmd § R6), built matched (Kompose + kolide-shell + kolide-services from one origin/master). The cairo geometry prong (M1/M3) is seat-free and runs in the meson suite / CI today.
Onboarding a new motion surface
- Author runs
/k-test --gen-only <módulo>— the generator detects thesurface per
animation-parity-tdds.kmd § R5and scaffoldstests/regression/motion/(cairo prong + harness driver for native). - Row appended here with status ❌ → ⚠ → ✅ per category.
- For a parity program, add
tests/regression/motion/parity.toml(R3)and a committed
__reference__/<impl>/clip before flipping M4 toparity-achieved. /k-housekeepruns the cairo prong (M1/M3) and updates the column;nightly s.khost1 runs the live prong (M2/M4).
Notes
- Per
policies/heavy-work-isolation.kmd, the live prong runs ons.khost1, never the owner's laptop (NVIDIA-only hostile seat).
- The cairo geometry prong is the seat-free, CI-portable path — prefer it
wherever the motion math is GTK-free-extractable (the kolide#047 pattern).