`shake` only touches the guest, so nothing on screen explains why an app
popped its dev menu. This wobbles the host window carrying that device
while the gesture runs.
- Opt-in `microinteractions` flag, off by default (`argent enable
microinteractions`). Read inside the handlers, not as
`ToolDefinition.featureFlag`, which would hide the whole tool.
- Can never fail a shake: every path warns once to stderr and resolves.
Skipped off macOS, on headless boots, and for `sim-remote`.
- Windows are title-matched on the iOS display name, so a host with
several booted simulators wobbles the right one.
- `prepareHostWindowShake` resolves flag/platform/device-set/script once
per call; `begin()` per gesture, `settle()` once after the loop. Not in
the `finally`, so a real failure throws immediately rather than waiting
on cosmetics.
- `ARGENT_SIMULATOR_NO_WINDOW` / `ARGENT_EMULATOR_NO_WINDOW` parsing
extracted to `utils/no-window-env`, shared with `boot-device`.
### iOS simulators only
The wobble originally covered Android emulators too and has been removed
there. Picking the emulator's window meant matching a title among
several `qemu-system-*` host processes, using needles built from the
console port plus an extra `adb emu avd name` round trip per shake. That
lookup was the fragile half of the feature: a build that drops the port
from the title, or a serial with no console port, falls back to either
the wrong window or no animation at all. An Android shake also already
produces visible in-guest feedback, so the amplification bought less
there.
`shake` itself is unchanged on Android: the same accelerometer burst,
the same resting-vector capture and restore, the same per-device lock.
Only the cosmetic host-window animation is gone.
`ARGENT_EMULATOR_NO_WINDOW` handling stays in `utils/no-window-env`,
where `boot-device` still uses it.
Verified live on an iPhone 17 Pro Max: window returns to its exact
origin and the wobble fits inside one gesture. The Android sensor path
was verified live on a Pixel_9 before the removal and is unchanged by
it; it has not been re-run since. Full tool-server suite green. The
AppleScript motion itself is only verified by eye; unit tests stub
`osascript`.
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>