feat: Feat/anchored scroll assert - #55
Merged
Merged
Conversation
"swipe the FII/DII left until Goal calculator is visible" — scrollAssert gains an optional anchor: the repeated gesture starts from the named element's position (inside the strip/carousel) instead of screen center, so horizontal rails scroll instead of the page. The anchor is resolved ONCE, before any swiping: the anchor icon itself scrolls away with the strip's content, but the strip stays put on screen, so the first-seen coordinates remain the right place to keep swiping. Finger-motion semantics, matching the anchored `swipe` step. Falls back to a screen-center scroll (with a notice) when the anchor can't be found. Surfaces: natural language (scroll|swipe verb, optional count), YAML (`scrollAssert:` with `target:`), LLM parser schema + prompt, step badges/preview. Plain scroll-until-visible is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Srinivasan Sekar <srinivasan.sekar1990@gmail.com>
scrollAssert's anchor now accepts the same proximity machinery as taps,
so the right scroll area can be picked when several exist:
- qualified label: "swipe the FII/DII below Post-Market Insights left
until Goal calculator is visible"
- pure region: "swipe left inside the area above View All until Goal
calculator is visible" — generic nouns (area/section/strip/…) carry no
element text; the region resolves to the nearest element on that side
of the qualifier's anchor, guaranteeing the swipe lands on real
content inside the strip.
splitProximity also strips connector filler ("which is located",
"that is positioned") from targets, benefiting taps too.
Docs (landing/public/usage.html): anchored swipes, carousel
scroll-until-visible (all three forms), doubleTap section + steps-table
rows, and chained-qualifier mention in Proximity Selectors.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Srinivasan Sekar <srinivasan.sekar1990@gmail.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Srinivasan Sekar <srinivasan.sekar1990@gmail.com>
…ller
The connector-strip removed a BARE trailing located/positioned/placed/
situated from every proximity target, so "tap Order Placed below
Filters" would target "Order". Bare participles are now stripped only
after a generic region noun ("the area located above X" → "area");
"which is / that is [located]" is still always stripped.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Srinivasan Sekar <srinivasan.sekar1990@gmail.com>
github-actions Bot
pushed a commit
that referenced
this pull request
Aug 7, 2026
## [2.2.0](v2.1.0...v2.2.0) (2026-08-07) ### Features * Feat/anchored scroll assert ([#55](#55)) ([0607bb6](0607bb6))
|
🎉 This PR is included in version 2.2.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds support for anchored and spatially-qualified scroll/swipe gestures, enabling more precise control when automating scrolling within carousels, strips, or specific regions of the UI. It introduces new parsing logic, schema fields, and execution behavior to handle gestures like "swipe the FII/DII left until Goal calculator is visible" or "swipe left inside the area above View All until Goal calculator is visible." Documentation and UI have been updated to describe and display these capabilities.
Anchored and Qualified Scroll/Swipe Support
Parsing and Type System:
FlowSteptype and schema to include optionaltargetandtargetProximityfields forscrollAssertsteps, representing the anchor element and spatial qualifier. [1] [2]Execution and Behavior:
targetandtargetProximity, swiping from the correct location within a carousel or region. [1] [2]Documentation and Examples
System Prompt and Schema
These changes collectively make scroll/swipe automation more robust, expressive, and aligned with real-world UI layouts.