fix(daemon): anchor repeated gesture overlays to each execution

Merged
TH
21h ago
+265-97

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; prior 2640216 plus 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.