Skip to content

feat: iOS Simulator support - #25

Merged
viralcodex merged 3 commits into
mainfrom
feat/ios-simulators
Nov 1, 2026
Merged

viralcodex merged 3 commits into
mainfrom
feat/ios-simulators

Conversation

@viralcodex

@viralcodex viralcodex commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add the macOS iOS backend in src/native/ios.ts: simctl discovery, explicit boot intent, bootstatus readiness, and ownership-aware shutdown/rollback. src/native/backends.ts introduces PlatformBackend so the runtime shares attachment and automation handling across Android and iOS.
  • Add serve-sim HID touch input and home, lock, volume-up, and volume-down buttons. Home uses the helper button name; lock/power and volume use HID consumer-page usages. Keep the socket open for a 500 ms settle interval so queued input is dispatched before close.
  • Proxy iOS MJPEG through /vendor/serve-sim/helper/stream.mjpeg, with authenticated streaming and browser CORS/preflight support.
  • Group the GUI device picker by Android and iOS, and list both platforms while tolerating an unavailable toolchain.
  • Request agent-device --json results and preserve structured errors: unsupported, timeout, missing-prerequisite when an iOS app session is required, and dispatched:"no" mapping to mayHaveExecuted: false.
  • Include prebuilt bundles, update iOS requirements/documentation, and prepare v0.2.0. The separate release commit changes only the package version and README install tag, matching v0.1.4.

Validation

  • bun run bundle: PASS.
  • bun run check: PASS, including lint, formatting, typecheck, and 175 tests passed, 1 platform test skipped, 0 failures.
  • PATH=/Users/i527263/.nvm/versions/node/v24.13.0/bin:$PATH bun run verify:package: PASS. The installed package resolves the server and GUI, and IPC setup/cleanup passes; six release files.
  • release:check under Node 24.13.0: PASS before tagging.
  • Recorded live verification on 2026-11-01: iPhone 18 Pro, iOS 27.2, open, nonblank MJPEG stream/CORS, tap/swipe with viewport and automation fallback, home/lock/volume/back/recents keys, apps/launch, snapshot/press/fill, and screenshot. The final HID verification confirms home navigation, the lock screen, volume HUDs, tap/swipe changes, and successful cleanup.
  • Recorded cold-boot and shutdown verification used a separate initially-shutdown iPhone 17e simulator; the protected iPhone 18 Pro remained booted.
  • Recorded Android regression: opened the already-running Medium Phone API 36.0, parsed a complete 16-node snapshot, and closed with shutdown disabled.
  • No simulators or emulators were touched during this release-preparation task. The untracked docs/ folder is excluded from both commits.

After merge

Tag v0.2.0 after merge using the existing owner-approved Release workflow with version 0.2.0; it validates main, then creates the tag and GitHub release. This PR does not create or push a tag.

@viralcodex
viralcodex merged commit c596b71 into main Nov 1, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant