Skip to content

feat(ui-automation): Add rs/1 runtime automation parity - #416

Merged
cameroncooke merged 75 commits into
mainfrom
cam/feat/ui-automation-runtime-parity
May 23, 2026
Merged

feat(ui-automation): Add rs/1 runtime automation parity#416
cameroncooke merged 75 commits into
mainfrom
cam/feat/ui-automation-runtime-parity

fix(ui-automation): Report ambiguous gone text waits

8da9745
Select commit
Loading
Failed to load commit list.
@sentry/warden / warden: xcodebuildmcp-test-boundary-review completed May 23, 2026 in 42m 54s

4 issues

xcodebuildmcp-test-boundary-review: Found 4 issues (1 medium, 3 low)

Medium

`type-text--success` snapshot contract removed without replacement - `src/snapshot-tests/suites/ui-automation-suite.ts:304-319`

The type-text success snapshot test was deleted and replaced with an error case only, leaving the success-path contract entirely unvalidated; no type-text--success fixture exists anywhere in the repo.

Low

Command Generation tests duplicate inline executor instead of using imported createTrackingExecutor helper - `src/mcp/tools/ui-automation/__tests__/gesture.test.ts:176-184`

In gesture.test.ts, the Command Generation tests define inline trackingExecutor closures with a command[1] !== 'describe-ui' guard rather than using the createTrackingExecutor helper that is already imported from ui-action-test-helpers.ts. The shared helper centralizes the describe-ui JSON shape ({ elements: [createNode()] }) and call-capture format, so the inline copies drift from the canonical mock and have to re-implement the post-action describe-ui carve-out by hand. Tests still pass because captureRuntimeSnapshotAfterActionSafely swallows JSON parse errors in a try/catch, but this violates the skill's "Use existing mock executor helpers" guardrail and risks future divergence as the snapshot contract evolves.

Also found at:

  • src/mcp/tools/ui-automation/__tests__/gesture.test.ts:233-241
Inline `createBootedScreenshotMockExecutor` duplicates existing `createCommandMatchingMockExecutor` helper - `src/mcp/tools/ui-automation/__tests__/screenshot.test.ts:35-52`

Replace the inline createBootedScreenshotMockExecutor factory with the existing createCommandMatchingMockExecutor helper from mock-executors.ts, which already handles multi-command dispatch by pattern match.

createFailingExecutor duplicates createMockExecutor from canonical test-utils - `src/mcp/tools/ui-automation/__tests__/ui-action-test-helpers.ts:55-57`

Replace createFailingExecutor(error) with createMockExecutor({ success: false, error }) from src/test-utils/mock-executors.ts to follow the existing mock executor helpers guardrail.


⏱ 40m 12s · 7.1M in / 300.5k out · $12.21

Annotations

Check warning on line 319 in src/snapshot-tests/suites/ui-automation-suite.ts

See this annotation in the file changed.

@sentry-warden sentry-warden / warden: xcodebuildmcp-test-boundary-review

`type-text--success` snapshot contract removed without replacement

The `type-text` success snapshot test was deleted and replaced with an error case only, leaving the success-path contract entirely unvalidated; no `type-text--success` fixture exists anywhere in the repo.