-
-
Notifications
You must be signed in to change notification settings - Fork 282
feat(ui-automation): Add rs/1 runtime automation parity #416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cameroncooke
wants to merge
66
commits into
main
Choose a base branch
from
cam/feat/ui-automation-runtime-parity
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 19 commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
6e5c24e
feat(ui-automation): Add rs/1 runtime automation parity
cameroncooke c1e7fb3
feat(ui-automation): Add runtime snapshot guidance
cameroncooke 7d1c713
test(ui-automation): Cover runtime snapshot guidance
cameroncooke 15edeec
docs: Update UI automation changelog
cameroncooke 3a77195
fix(ui-automation): Align structured output schemas
cameroncooke fb0cded
fix(ui-automation): Remove static wait next steps
cameroncooke 8206d7b
fix(schema): Preserve video fps constraints
cameroncooke 0eead99
fix(cli): Reuse output style for next-step rendering
cameroncooke 16c363a
fix(ui-automation): Resolve review feedback
cameroncooke 89358fa
fix(ui-automation): Tighten runtime snapshot review issues
cameroncooke a2d8777
fix(ui-automation): Preserve runtime snapshot visibility contracts
cameroncooke 3a740c6
fix(ui-automation): close remaining snapshot review gaps
cameroncooke c7e93f9
fix(ui-automation): Allow empty snapshot polling
cameroncooke b476c94
fix(ui-automation): Report semantic touch commands accurately
cameroncooke 473ae0c
fix(ui-automation): Add wait-for-ui next steps
cameroncooke 43b8d73
fix(ui-automation): Tighten action diagnostics
cameroncooke ca9f245
test(ui-automation): Avoid button settle delay in progress test
cameroncooke 796525c
fix(ui-automation): Tighten post-action snapshot handling
cameroncooke 0884f89
fix(ui-automation): Restrict batch snapshot preservation to switches
cameroncooke bcc7720
fix(ui-automation): Add snapshot capture error to schemas
cameroncooke f085155
fix(ui-automation): Keep inactive tabs in next-step suggestions
cameroncooke 244f5c8
fix(ui-automation): Preserve inactive tab value hints
cameroncooke a9e5504
fix(example): Default Weather app to mock data
cameroncooke d0ad6f1
fix(ui-automation): Render UI recovery messages
cameroncooke 06643ad
fix(ui-automation): Preserve resolved action coordinates
cameroncooke 3cc5b88
test(snapshot): Restore JSON normalization coverage
cameroncooke 18193ec
fix(ui-automation): Address Warden review findings
cameroncooke 6cc93b2
fix(ui-automation): Address Warden follow-up findings
cameroncooke f32bd2e
fix(ui-automation): Address Warden contract feedback
cameroncooke 2e45d06
fix(ui-automation): Remove remaining public wording leaks
cameroncooke b4d7cf0
fix(weather): Remove obsolete mock launch flag usage
cameroncooke 34ff914
fix(ui-automation): Promote batch guidance for visible switches
cameroncooke 1ac5b32
fix(ui-automation): Restore Weather benchmark scroll guidance
cameroncooke f42dc2b
fix(ui-automation): Restore sheet scroll guidance
cameroncooke 9a52e69
fix(ui-automation): Restore efficient sheet navigation
cameroncooke 4a18bd3
fix(ui-automation): Refresh preserved switch batch state
cameroncooke 214f4a4
fix(ui-automation): Use directional drags for cells
cameroncooke 3468f16
fix(ui-automation): Classify text views as text fields
cameroncooke b8c6da1
fix(ui-automation): Reject reversed directional drags
cameroncooke 557b2ab
fix(cli): Ignore empty numeric array segments
cameroncooke 3013b57
fix(ui-automation): Capture UI after gestures
cameroncooke 0756d66
test(ui-automation): Mark stale cli-json swipe coverage explicit
cameroncooke ba14d04
fix(ui-automation): Preserve incomplete state after no-op completion …
cameroncooke db5496a
ref(ui-automation): Simplify scroll next-step selection
cameroncooke ad95462
style(ui-automation): Format incomplete completion test
cameroncooke aa416d0
fix(ui-automation): Preserve long-press action context
cameroncooke 0f6a9e3
test(ui-automation): Cover drag and batch action rendering
cameroncooke 4c4bcde
fix(ui-automation): Honor runtime metadata snapshot TTL
cameroncooke 0350033
test(ui-automation): Keep wait snapshot tests within TTL
cameroncooke abde598
fix(ui-automation): Preserve batch action context
cameroncooke 1a8a7ee
fix(ui-automation): Use cells as fallback scroll targets
cameroncooke 1e4bdec
docs(ui-automation): Clarify read-only action hints
cameroncooke 46d05fa
fix(cli): Keep runtime snapshots compact in JSON
cameroncooke 0312a85
fix(ui-automation): Tighten press duration validation
cameroncooke 9e0b161
fix(ui-automation): Preserve refs in structured snapshots
cameroncooke 6aadf98
fix(cli): Emit JSON for simulator resolution failures
cameroncooke 937a4cc
docs(changelog): Note CLI simulator resolution envelope
cameroncooke 1b1740b
fix(simulator): Classify simulator resolution launch failures
cameroncooke 1ffdafc
fix(ui-automation): Prefer refs in hierarchy guidance
cameroncooke 6b98258
fix(ui-automation): Refresh snapshots after UI actions
cameroncooke 1b64eee
fix(ui-automation): Resolve remaining review threads
cameroncooke 5a09409
fix(cli): Version verbose UI action snapshots
cameroncooke 71d77fb
fix(ui-automation): Clarify runtime element state output
cameroncooke 71b0eda
style(build): Separate AXe metadata validation helper
cameroncooke bf7753e
fix(ui-automation): Resolve drag viewport bounds
cameroncooke 699ab74
fix(ui-automation): Normalize runtime labels deterministically
cameroncooke File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| id: batch | ||
| module: mcp/tools/ui-automation/batch | ||
| names: | ||
| mcp: batch | ||
| cli: batch | ||
| description: Execute structured rs/1 tap steps in one simulator session. Use refs from the latest snapshot_ui or wait_for_ui output, for example {"steps":[{"action":"tap","elementRef":"e1"},{"action":"tap","elementRef":"e2"}]}. Do not pass raw AXe strings such as "tap e7". Omit preDelay/postDelay for switch elementRefs; switches execute as touch down/up steps and reject delays. | ||
| outputSchema: | ||
| schema: xcodebuildmcp.output.ui-action-result | ||
| version: '2' | ||
| routing: | ||
| stateful: true | ||
| annotations: | ||
| title: Batch UI Actions | ||
| readOnlyHint: true | ||
| destructiveHint: false | ||
| openWorldHint: false |
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
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
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
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| id: wait_for_ui | ||
| module: mcp/tools/ui-automation/wait_for_ui | ||
| names: | ||
| mcp: wait_for_ui | ||
| cli: wait-for-ui | ||
| description: Poll rs/1 runtime UI snapshots until a selector-based UI predicate, selector-free textContains/gone text predicate, or selector-free settled predicate is satisfied, then record the latest snapshot. Prefer this after navigation or layout changes. Select with elementRef, identifier, label, role, or value when a selector is needed. | ||
| outputSchema: | ||
| schema: xcodebuildmcp.output.capture-result | ||
| version: '2' | ||
| routing: | ||
| stateful: true | ||
| annotations: | ||
| title: Wait for UI | ||
| readOnlyHint: true | ||
| destructiveHint: false | ||
| openWorldHint: false | ||
| nextSteps: | ||
| - label: Capture a fresh runtime UI snapshot | ||
| toolId: snapshot_ui | ||
| priority: 1 | ||
| when: success | ||
| - label: Wait until the UI is settled | ||
| toolId: wait_for_ui | ||
| priority: 2 | ||
| when: success |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.