Skip to content

Commit e4498e4

Browse files
jonocodesclaude
andcommitted
docs: macOS injection is verified now, not assumed (#141)
Scroll, clicks, drag lock, and key injection move from "unverified" to machine-verified, driven through the running daemon over its WebSocket with the results read out of a browser echo page — click and contextmenu coordinates matched the injected screen points, drag lock produced one mousedown / five held moves / one mouseup, super+t and super+w opened and closed a tab, and super+[ / super+] navigated history. Two rows move the other way. Momentum is now marked broken (#143), and the matrix's macOS scroll cell drops from ✓ to ◑ to match. The phone's own IME round-trip stays unverified: the wire-level type / key paths pass, but nobody has typed on the phone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 06bfebc commit e4498e4

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

‎docs/PLATFORM-PARITY.md‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ this table exists to make drift between backends visible at a glance.
3232
| Pointer relative motion | ✓ `uinput` | ✓ `uinput` | ✓ `uinput` | ✓ Quartz CG event |
3333
| Mouse click (left/right) | ✓ `uinput` | ✓ `uinput` | ✓ `uinput` | ✓ Quartz CG event |
3434
| Mouse drag (held button) | ✓ `uinput` | ✓ `uinput` | ✓ `uinput` | ✓ Quartz `LeftMouseDragged` |
35-
| Scroll (jogstrip) | ✓ `uinput` | ✓ `uinput` | ✓ `uinput` | ✓ Quartz scroll-wheel event |
35+
| Scroll (jogstrip) | ✓ `uinput` | ✓ `uinput` | ✓ `uinput` | ◑ Quartz scroll-wheel event — drag scrolls, momentum is quantised away ([#143](https://github.com/jonocodes/deckd/issues/143)) |
3636

3737
Legend: ✓ works · ◑ partial · ✗ not available.
3838

@@ -57,10 +57,12 @@ one of three evidence levels:
5757
| Focus detection | machine-verified | `/diag` reports app + title |
5858
| Window enumeration | machine + human | 8 windows over a live `running_windows` frame; human confirms the switcher list renders |
5959
| Raise window | machine-verified | raised Firefox, confirmed focus moved, restored |
60-
| Pointer / drag | machine-verified | exact deltas read back off the cursor |
61-
| Scroll (jogstrip) | **unverified** ([#141](https://github.com/jonocodes/deckd/issues/141)) | events sent, never observed landing — needs a human watching a scrollable window |
62-
| Key injection (printable / combos / special) | **unverified** ([#141](https://github.com/jonocodes/deckd/issues/141)) | the osascript probe sends `keystroke ""`; it proves the grant, not delivery |
63-
| Click (left / right) | **unverified** ([#141](https://github.com/jonocodes/deckd/issues/141)) | never fired against a real target |
60+
| Pointer / drag | machine-verified | exact deltas read back off the cursor; drag lock produced 1 `mousedown`, 5 held moves, 1 `mouseup` in a browser echo page |
61+
| Click (left / right) | machine-verified | `click` / `contextmenu` fired at the exact injected coordinates (#141) |
62+
| Scroll (jogstrip) — drag phase | machine-verified | `scrollTop` moved on the element under the cursor; 120 hi-res units = one detent, symmetric both directions |
63+
| Scroll (jogstrip) — momentum | **broken** ([#143](https://github.com/jonocodes/deckd/issues/143)) | daemon decay runs, but a flick's travel (~66 units) is under one line detent, so nothing reaches the app |
64+
| Key injection (printable / combos / special) | machine-verified | `type` → textarea; `super+t`/`super+w` opened and closed a tab; `super+[`/`super+]` navigated back/forward; Esc, arrows, Enter, F-key, Tab all delivered (#141) |
65+
| Manual control (phone IME round-trip) | **unverified** ([#141](https://github.com/jonocodes/deckd/issues/141)) | the wire-level `type` / `key` paths pass; typing on the phone's own IME still needs a human |
6466
| MPRIS media browser | human-observed **not working**; now says so | no session bus on macOS ([#56](https://github.com/jonocodes/deckd/issues/56) tracks a native replacement). Verified live: the daemon's connect frame is `{"supported": false, …}` |
6567
| `media` widget (VLC HTTP) | **unverified** | nobody has pointed it at a VLC on a Mac |
6668

0 commit comments

Comments
 (0)