Skip to content

chore(ios-runner): delete the unreachable synthesized continuous drag profile - #2825

Merged
thymikee merged 2 commits into
mainfrom
chore/2790-drop-continuous-drag
Sep 23, 2026
Merged

thymikee merged 2 commits into
mainfrom
chore/2790-drop-continuous-drag

Conversation

@thymikee

@thymikee thymikee commented Sep 23, 2026

Copy link
Copy Markdown
Member

Summary

Removes the synthesized .continuous (smoothstep) drag profile. Nothing could reach it: the only daemon drag producer is macOS-only and never sets synthesized.

  • Removed the ObjC continuous path, smoothstep, and the frame-count export (with its test), plus the ADR/Two iOS drag synthesis strategies now coexist; document or reconcile them #1586 comment, which only described smoothstep.
  • Removed the Swift .continuous case, and in executeDragGesture the synthesized: flag and the second synthesized block. Profile and policy now travel as one optional.
  • .fastSwipe and .controlledScroll are unchanged byte for byte. ADR 0013 and 0011 now describe the lanes that remain.

Two ways the current code differs from the issue: a runner drag that sets synthesized now runs a plain coordinate drag, and a non-iOS gesture endpoint-hold plan (which the daemon never sends) no longer reports gestureFallback.

8 files, +33/−152. Closes #2790

Validation

Rebased onto main at a913cb222. Signed macOS host lane: 236/236 at 3b3fd2766 (+2 tests from main). check:affected --run is green at the stack head 60e533284. The evidence below is from before the rebase.

Tested at a72db6538.

  • Gates: check:affected --run, check:xctest-selection, and format:check pass. grep -rni continuous in the runner UITests finds only a text-entry comment.
  • Host-lane XCTest (locally signed): 234/234 pass.
  • iPhone 17 Pro simulator: the 01-navigation-scroll (swipe plus scroll edges), 02-checkout-release, gesture-pan-duration, and drag replays pass. Runner log shows agent-device-controlled-scroll and agent-device-swipe records.
  • The E2E smoke passed its scroll steps. snapshot-depth-frontier failed because it expects the AX-bridge backend and got xctest here; that is unrelated snapshot code, so CI is authoritative.
  • Review: fixed the stale docs, the dead policy argument, and the fixture flag. Rejected inlining the sampler (it must stay byte-identical) and rejecting synthesized on drag (that would be a new compatibility path).

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 23, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
Installed (including dependencies) 4.80 MB 4.80 MB -4.1 kB
Package (unpacked) 4.80 MB 4.80 MB -4.1 kB
Package (download) 1.43 MB 1.43 MB -499 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 27.8 ms 27.6 ms -0.2 ms
CLI --help 83.5 ms 78.7 ms -4.8 ms

@thymikee

Copy link
Copy Markdown
Member Author

Reviewed at a72db65: the code looks correct. Every synthesizedDragAt caller passes profile explicitly, and nothing on the TS side can still select the deleted continuous drag profile. The CI smoke scroll top step ran through the changed executeDragGesture lane and passed. One small note: the long line in docs/adr/0013-unified-gesture-plans.md:129 could be rewrapped to match the paragraph.

The Smoke Tests failure in smoke:regular-visible-depth-frontier looks unrelated. It fails on the AX-bridge snapshot assertion, this diff does not touch snapshot or bridge code, and the same assertion fails on #2820. That lane still needs a fix or a rerun on main before merge.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Sep 23, 2026
@thymikee
thymikee added this pull request to stack #2830 September 23, 2026 15:34
thymikee and others added 2 commits September 23, 2026 19:47
… profile

The only daemon producer of the runner `drag` command is macOS-only and never
sets `synthesized`, so the smoothstep `.continuous` profile could not run.
Remove the ObjC continuous path and frame-count export, the Swift enum case,
the `synthesized:` parameter and second synthesized block in
`executeDragGesture`, and its frame-count test. `.fastSwipe` and
`.controlledScroll` are untouched; ADR 0013 now describes the scroll schedule
that remains.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…one optional

Plain coordinate drags no longer name a synthesized policy they never apply;
the activation-preflight drag fixture stops sending the ignored flag. ADR 0011
and 0013 describe the synthesized lanes that remain.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@thymikee
thymikee force-pushed the chore/2790-drop-continuous-drag branch from a72db65 to 3b3fd27 Compare September 23, 2026 18:08
@thymikee
thymikee merged commit f5475e8 into main Sep 23, 2026
17 of 18 checks passed
@thymikee
thymikee deleted the chore/2790-drop-continuous-drag branch September 23, 2026 18:13
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.

chore(ios-runner): delete the unreachable synthesized .continuous drag profile

1 participant