Skip to content

iOS scroll reports movement: moved at the list edge when the content did not move #2884

Description

@thymikee

Problem

At the bottom of a list on an iOS Simulator, a directional scroll down answers movement: moved when the content did not move, so at-edge is never reported. Seen on 2026-09-24 on the fixture Automation lab list, iPhone 17 Pro / iOS 26.2, with the AX bridge serving captures. The earlier scroll that ran into the bottom edge was followed by one whose post-gesture capture logged post_gesture_snapshot_stale_accept with matchedPreGestureBaseline: true, meaning the surface was identical to the pre-gesture baseline. The response still said moved.

The movement field comes from the recent scroll-observation work (#2770, #2771, #2776, #2772), which states that a directional scroll answers with the movement it observed. An agent that scrolls until at-edge never stops on iOS.

Required behavior

When the post-gesture observation proves the surface did not change (the stale-accept or no-effect path), a directional scroll reports that it reached the edge, or does not claim moved. Key this on the typed stabilization outcome, not on message text.

Evidence

Found while fixing the longpress flake (#2883): session events.ndjson plus --debug request logs from repeated assertAutomationInput runs.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions