@@ -22,9 +22,11 @@ The native side should own anything that depends on macOS frameworks, `xcrun sim
2222- ` server/src/simulators/registry.rs `
2323 Tracks Rust-side simulator session state and lazy native attachment by UDID.
2424- ` cli/XCWSimctl.* `
25- Wraps ` xcrun simctl ` for discovery, lifecycle management, app launching, URL opening, and screenshot capture.
25+ Wraps ` xcrun simctl ` for discovery, lifecycle management, app launching, URL opening, appearance toggles, and simulator log capture.
2626- ` cli/DFPrivateSimulatorDisplayBridge.* `
2727 Owns headless private display frames plus HID-based touch and keyboard injection.
28+ - ` cli/XCWAccessibilityBridge.* `
29+ Owns private CoreSimulator accessibility snapshots through ` AccessibilityPlatformTranslation ` .
2830- ` cli/XCWPrivateSimulatorSession.* `
2931 Owns one private display bridge per booted simulator plus selectable HEVC/H.264 encode.
3032- ` cli/native/XCWNativeBridge.* `
@@ -33,8 +35,6 @@ The native side should own anything that depends on macOS frameworks, `xcrun sim
3335 Wraps one Objective-C private simulator session handle for the Rust registry.
3436- ` cli/XCWPrivateSimulatorBooter.* `
3537 Uses private ` CoreSimulator ` APIs for direct simulator boot when available, with ` simctl ` as the fallback path.
36- - ` cli/XCWPrivateSimulatorChromeBridge.* `
37- Experimental private ` SimulatorKit ` chrome bridge for simulator chrome exploration.
3838- ` cli/XCWChromeRenderer.* `
3939 Renders Apple’s CoreSimulator device-type PDF chrome assets into PNGs for the browser.
4040- ` client/src/app/App.tsx `
@@ -60,10 +60,10 @@ The native side should own anything that depends on macOS frameworks, `xcrun sim
6060Private simulator behavior is implemented locally in:
6161
6262- Boot path: ` cli/XCWPrivateSimulatorBooter.* `
63- - Chrome asset bridge: ` cli/XCWPrivateSimulatorChromeBridge.* `
6463- Full live display bridge: ` cli/DFPrivateSimulatorDisplayBridge.* `
64+ - Accessibility bridge: ` cli/XCWAccessibilityBridge.* `
6565
66- The current repo uses the private boot path and private display bridge directly. The browser streams frames from that bridge and injects touch and keyboard events through the same native session layer.
66+ The current repo uses the private boot path, private display bridge, and private accessibility translation bridge directly. The browser streams frames from that bridge, injects touch and keyboard events through the same native session layer, inspects accessibility through ` AccessibilityPlatformTranslation ` , and renders device chrome from ` cli/XCWChromeRenderer.* ` .
6767
6868## Build and Run
6969
@@ -105,8 +105,26 @@ Useful direct commands:
105105./build/xcode-canvas-web list
106106./build/xcode-canvas-web boot < udid>
107107./build/xcode-canvas-web shutdown < udid>
108+ ./build/xcode-canvas-web erase < udid>
109+ ./build/xcode-canvas-web install < udid> /path/to/App.app
110+ ./build/xcode-canvas-web uninstall < udid> com.example.App
108111./build/xcode-canvas-web open-url < udid> https://example.com
109112./build/xcode-canvas-web launch < udid> com.apple.Preferences
113+ ./build/xcode-canvas-web pasteboard set < udid> " hello"
114+ ./build/xcode-canvas-web pasteboard get < udid>
115+ ./build/xcode-canvas-web screenshot < udid> --output screen.png
116+ ./build/xcode-canvas-web describe-ui < udid>
117+ ./build/xcode-canvas-web tap < udid> 120 240
118+ ./build/xcode-canvas-web tap < udid> --label " Continue" --wait-timeout-ms 5000
119+ ./build/xcode-canvas-web swipe < udid> 200 700 200 200
120+ ./build/xcode-canvas-web gesture < udid> scroll-down
121+ ./build/xcode-canvas-web pinch < udid> --start-distance 160 --end-distance 80
122+ ./build/xcode-canvas-web rotate-gesture < udid> --radius 100 --degrees 90
123+ ./build/xcode-canvas-web key-sequence < udid> --keycodes h,e,l,l,o
124+ ./build/xcode-canvas-web key-combo < udid> --modifiers cmd --key a
125+ ./build/xcode-canvas-web type < udid> " hello"
126+ ./build/xcode-canvas-web button < udid> lock --duration-ms 1000
127+ ./build/xcode-canvas-web home < udid>
110128```
111129
112130## Expectations For Future Changes
@@ -120,5 +138,5 @@ Useful direct commands:
120138## Near-Term Roadmap
121139
122140- Compose the private frame stream and CoreSimulator chrome into a single server-side render path.
123- - Add richer input surfaces such as gesture synthesis, text entry helpers, and chrome-button actions on top of the HID bridge .
124- - Add simulator creation, erase, pasteboard, install, and log streaming commands.
141+ - Keep private Indigo multi-touch packet assumptions documented when Xcode runtimes change .
142+ - Add simulator creation and log streaming commands.
0 commit comments