feat(input): press --hold <ms> for precise timed key-holds + document timed-driving pattern
Dogfooding by driving a canvas game surfaced that per-action shell round-trips (keydown; sleep; keyup) are the slowest, lowest-fidelity way to drive anything timed — each is a process spawn + relay round-trip with ~250ms jitter, so a '0.8s hold' is anything but. - 'press <key> --hold <ms>': keyDown, wait, keyUp all inside the daemon, so the hold duration is precise and it's one round-trip. For games (hold-to-move/ charge) and any press-and-hold. - Documented the real driving pattern in the core skill + --help: script a timed sequence in ONE round-trip with 'batch "press d --hold 900" "press j" "wait 200"' (batch sends each step to the running daemon; --hold/wait block in-daemon), and prefer reading engine state via main-world 'eval' over guessing from pixels. Parser test covers plain/held/missing-duration. Builds on the keydown/keyup full descriptor fix.
This commit is contained in:
+3
-1
@@ -3070,7 +3070,9 @@ Core Commands:
|
||||
dblclick <sel> Double-click element
|
||||
type <sel> <text> Type into element
|
||||
fill <sel> <text> Clear and fill
|
||||
press <key> Press key (Enter, Tab, Control+a)
|
||||
press <key> [--hold <ms>] Press key (Enter, Tab, Control+a). --hold keeps it
|
||||
down <ms> then releases — precise (in-daemon), for
|
||||
games/charge: `press d --hold 800`
|
||||
keydown <key> Hold a key down (no auto-release) — for games/shortcuts
|
||||
keyup <key> Release a held key. Pair with keydown to hold-to-move:
|
||||
`keydown d` … `keyup d`
|
||||
|
||||
Reference in New Issue
Block a user