Skip to content

fix(ios): preserve timed pan duration - #1572

Open
thymikee wants to merge 1 commit into
mainfrom
agent/fix-gesture-pan-duration-1562
Open

fix(ios): preserve timed pan duration#1572
thymikee wants to merge 1 commit into
mainfrom
agent/fix-gesture-pan-duration-1562

Conversation

@thymikee

@thymikee thymikee commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

Fixes #1562 by routing single-pointer timed pans through the existing native continuous XCTest drag profile. The dense per-sample planned bridge can report success without delivering pan updates on current iOS simulators.

Two-pointer plans still use the exact synchronized samples, and endpoint-hold fling plans retain their fast-swipe profile. The gesture-plan ADR now documents the platform-specific lowering decision.

Validation

  • Regression proof: the focused runner test was red before the fix with XCTAssertEqual failed: ("sampled") is not equal to ("continuousPan"); it passes after the fix.
  • Passed focused iOS XCTest: testSinglePointerTimedPanUsesContinuousExecution.
  • Passed production iOS runner build: pnpm build:xcuitest:ios.
  • Passed pnpm format and pnpm check:affected --run; the affected selector delegated the Swift runner lane to GitHub.
  • Verified through the public CLI on an iPhone 17 Pro / iOS 26.2 simulator: a 400 ms timed pan preserved durationMs and executionProfile and moved the Home ScrollView content.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.96 MB 1.96 MB 0 B
JS gzip 626.6 kB 626.6 kB 0 B
npm tarball 746.3 kB 746.7 kB +426 B
npm unpacked 2.61 MB 2.62 MB +3.2 kB

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 27.8 ms 27.7 ms -0.1 ms
CLI --help 64.4 ms 65.5 ms +1.2 ms

Top changed chunks: no changes in the largest emitted chunks.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Aug 3, 2026
@thymikee

thymikee commented Aug 3, 2026

Copy link
Copy Markdown
Member Author

Reviewed exact head 8ec77a3d2fd663659f51e95a3ffd89333ea40964 — no actionable findings. The production route correctly limits continuous XCTest synthesis to single-pointer timed pans while preserving endpoint-hold fast swipes and sampled multi-pointer gestures. The amended ADR captures the iOS-specific interpolation tradeoff, the routing regression test is meaningful, CI is green, and GitHub reports a clean merge state. The reported live iPhone run covers the prior false-success symptom. Ready for human review.

Residual evidence caveat: response durationMs/executionProfile describe the plan rather than independently measuring delivered timing; a future validation capture of runner start/end uptime would make that claim directly auditable. No separately authorized cross-vendor review was run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS gesture pan ignores its duration argument (daemon plan-builder offsetMs spread)

1 participant