fix(daemon): anchor repeated gesture overlays to each execution
Merged
TH
1d ago+265+265+012345678901234567890123456789-97-97-01234567890123456789
Summary
Record each completed gesture when execution finishes, so later failure or cancellation retains its overlay. Use each repetition's native or wall-clock timing and actual ping-pong path. Remove buffered timing reconstruction; explicit finalization prevents duplicate overlays. Public responses retain the last runtime result and interrupted commands record no successful action.
Five files changed; scope includes the accepted interrupted-series review request. Closes #4428; part of #4368. Separate coordinate-reference issue #4448 is unchanged.
Validation
Head 9d07ed6b8520833dab17e98c51ba42696c5b4ac1; base c2677fdd4ce37010d8d8b6664df3d4f98674ec85.
- Exact receipt evidence: eight runnable checks passed; exactCommit=true, checkoutChanged=false, clean checkout. Related326passed; full unit19,149passed/3skipped. #4050 retained. Seven GitHub/manual lanes skipped, with owners recorded. Installed pnpm11.25 differs from configured11.17.
- Interruption regression/review at production-identical
14ace2: candidate18passed; prior2640216plus identical tests8intended failures/10passed. Original base regression2failed/32passed. Independent review found no issues. Final test-only type correction passed full typecheck; earlier failed receipt retained. - Live iOS proof at this head: three Settings movements, three scaled rendered marker windows measured at30fps, named visibility assertion and complete owned cleanup. Fade/threshold limits are explicit; no native cancellation claim.
Applicable CI/native checks remain authoritative. No merge-readiness claim before they pass.