Summary
On macOS 26.6.2 + Xcode 27.0 release with Argent 0.25.1, gesture-tap works, but the keyboard tool and hardware button presses still silently no-op: both return success and nothing reaches the simulator.
This is the same failure shape as #932 / #547, but a different slice of it. In #932 taps were dead too; here taps recover and only the key-event channels stay dead — so whatever fixed tap injection did not cover the keyboard/button path. The environment is also different from every report I found: #932 is macOS 27, this is macOS 26.6.2 with the Xcode 27 release, so the regression is not gated on macOS 27.
Environment
macOS 26.6.2 (25G83), Darwin 25.6.0
Xcode 27.0 (27A266a) — release, not beta; DeviceHub.app, no Simulator.app
Argent 0.25.1 (global npm install)
Simulator iPhone 17 Pro, iOS 26.4, default device set
App Expo dev client (React Native 0.86.3, Expo SDK 57), Metro connected
What works vs what doesn't
| Channel |
Result |
gesture-tap |
Works — taps land, on-screen keyboard keys included |
keyboard { text } |
No-op — returns { typed: "qa1", keys: 3 }, field keeps its placeholder |
keyboard { key: "enter" } |
No-op — returns { typed: "enter", keys: 1 }, keyboard stays open |
button { button: "home" } |
No-op — returns { pressed: "home" }, app stays foregrounded |
paste |
No-op — returns { pasted: true }, nothing is inserted |
describe / screenshot / await-ui-element |
Work |
Metro CDP (debugger-evaluate, component tree) |
Work |
Steps to reproduce
- Boot an iOS 26.4 simulator with
boot-device, launch any app with a text field.
gesture-tap the field — the software keyboard appears, so focus is real.
keyboard { text: "abc" } — returns success.
describe — the field still shows its placeholder; no characters were inserted.
Not the app under test
Reproduced identically in Settings.app (com.apple.Preferences): tapping the search field opens the keyboard and switches the screen to "Suggestions" (so the tap landed), then keyboard { text: "wifi" } leaves the field empty. A first-party app rules out the RN app and its SDK version.
Ruled out
stop-all-simulator-servers (scoped) + simctl shutdown + fresh boot-device — no change.
- Bringing DeviceHub.app to the front before typing — no change.
- Re-tapping the field with the keyboard already open — focus is confirmed by the native "Paste / AutoFill" context menu appearing, and typing still does nothing.
- App reinstall and a full native rebuild.
Confirmation that focus and the pasteboard are fine
Tapping a focused empty field shows the system Paste menu, so the field is focused and empty. Interesting detail: the simulator's pasteboard is synced with the host's, so pbcopy on the Mac followed by tapping Paste does insert the text. That is the workaround I am using to drive a login flow — text entry through taps only:
printf '%s' "user@example.com" | pbcopy # host clipboard, syncs into the sim
# then: gesture-tap the field, gesture-tap "Paste" in the context menu
Worth noting because it means the paste tool failing is not a pasteboard problem — the pasteboard works; what fails is the key/paste event injection.
Impact
Any flow that types is unrecordable and unreplayable: login screens, search fields, forms. argent-qa-flows cannot produce a passing flow for those paths, since the type: directive rests on the same channel.
Summary
On macOS 26.6.2 + Xcode 27.0 release with Argent 0.25.1,
gesture-tapworks, but thekeyboardtool and hardwarebuttonpresses still silently no-op: both return success and nothing reaches the simulator.This is the same failure shape as #932 / #547, but a different slice of it. In #932 taps were dead too; here taps recover and only the key-event channels stay dead — so whatever fixed tap injection did not cover the keyboard/button path. The environment is also different from every report I found: #932 is macOS 27, this is macOS 26.6.2 with the Xcode 27 release, so the regression is not gated on macOS 27.
Environment
What works vs what doesn't
gesture-tapkeyboard{ text }{ typed: "qa1", keys: 3 }, field keeps its placeholderkeyboard{ key: "enter" }{ typed: "enter", keys: 1 }, keyboard stays openbutton{ button: "home" }{ pressed: "home" }, app stays foregroundedpaste{ pasted: true }, nothing is inserteddescribe/screenshot/await-ui-elementdebugger-evaluate, component tree)Steps to reproduce
boot-device, launch any app with a text field.gesture-tapthe field — the software keyboard appears, so focus is real.keyboard { text: "abc" }— returns success.describe— the field still shows its placeholder; no characters were inserted.Not the app under test
Reproduced identically in Settings.app (
com.apple.Preferences): tapping the search field opens the keyboard and switches the screen to "Suggestions" (so the tap landed), thenkeyboard { text: "wifi" }leaves the field empty. A first-party app rules out the RN app and its SDK version.Ruled out
stop-all-simulator-servers(scoped) +simctl shutdown+ freshboot-device— no change.Confirmation that focus and the pasteboard are fine
Tapping a focused empty field shows the system Paste menu, so the field is focused and empty. Interesting detail: the simulator's pasteboard is synced with the host's, so
pbcopyon the Mac followed by tapping Paste does insert the text. That is the workaround I am using to drive a login flow — text entry through taps only:Worth noting because it means the
pastetool failing is not a pasteboard problem — the pasteboard works; what fails is the key/paste event injection.Impact
Any flow that types is unrecordable and unreplayable: login screens, search fields, forms.
argent-qa-flowscannot produce a passing flow for those paths, since thetype:directive rests on the same channel.