Summary
Two capture problems on a launchd-managed background host (macOS 26.6.2, arm64, Mac mini M4 Pro) after upgrading 4.3.0 → 4.3.4. Both make every host-routed see unusable; caller-local (--no-remote) works reliably.
Environment: Peekaboo 4.3.4 CLI (Homebrew openclaw/tap), Peekaboo.app 4.3.4 installed (Bridge host on ~/Library/Application Support/Peekaboo/bridge.sock), caller is a launchd Node process holding Screen Recording + Accessibility + Full Disk Access.
1. Bridge host refuses screen capture when element detection runs (persists in 4.3.4)
Related: #710 — same signature, whose follow-up isolated AX element detection as the trigger.
Measured with no daemon running, no app running, and no other SCK-capable app open:
| invocation |
result |
peekaboo see --mode screen --json |
FAIL INTERACTION_FAILED — "The desktop observation provider returned response evidence that did not match the requested unexpected application evidence." |
peekaboo see --mode screen --no-elements --json |
success |
peekaboo see --capture-engine classic --mode screen --json |
FAIL, same rejection |
peekaboo see --no-remote --mode screen --json |
success, 193 elements |
So default routing dispatches to an on-demand Bridge host and is refused; only disabling element detection, or bypassing the host entirely, succeeds.
2. Behaviour change vs 4.3.0: no in-process fallback
| version |
state |
peekaboo see --mode screen |
| 4.3.0 |
no daemon running |
success — in-process fallback, 189 elements |
| 4.3.4 |
no daemon, no app |
FAIL — routed to a host and refused |
On 4.3.0 the command fell back to the caller when no host existed; on 4.3.4 it always prefers a host, so previously working plain invocations now fail. If that is intentional, a documented fallback would help.
3. SCK coordination blocks all host capture while an unrelated Screen-Recording app is open
With another app that simply holds Screen Recording running (Claude Desktop), but not capturing, host capture failed on every route with:
ScreenCaptureKit coordination cannot be proven for potential host processes: PID 16481 (generation ...)
Blockers: PID 16481, generation ..., /Applications/Claude.app/Contents/MacOS/Claude
The ownership check did not dispatch ScreenCaptureKit.
The engine docs say the lease "scans and refuses owner-unaware live processes" and that "a potential uncoordinated host is not proof of actual SCK use" — yet the check keyed on a merely running app here, making host capture impossible on an ordinary desktop. The coordination error disappeared as soon as that app quit. Suggest scoping the scan to processes with an actual SCK session/lease, or documenting that any Screen-Recording-entitled app must be closed.
Impact
Automation on a background host cannot use default see at all; callers must pass --no-remote. Host-side element detection is unavailable.
Workaround in use
PEEKABOO_NO_REMOTE=1 PEEKABOO_CAPTURE_ENGINE=classic — reliable (193 elements repeatedly), with or without a daemon/app running and with other SCK-capable apps open.
Notes
Summary
Two capture problems on a launchd-managed background host (macOS 26.6.2, arm64, Mac mini M4 Pro) after upgrading 4.3.0 → 4.3.4. Both make every host-routed
seeunusable; caller-local (--no-remote) works reliably.Environment: Peekaboo 4.3.4 CLI (Homebrew
openclaw/tap),Peekaboo.app4.3.4 installed (Bridge host on~/Library/Application Support/Peekaboo/bridge.sock), caller is a launchd Node process holding Screen Recording + Accessibility + Full Disk Access.1. Bridge host refuses screen capture when element detection runs (persists in 4.3.4)
Related: #710 — same signature, whose follow-up isolated AX element detection as the trigger.
Measured with no daemon running, no app running, and no other SCK-capable app open:
peekaboo see --mode screen --jsonINTERACTION_FAILED— "The desktop observation provider returned response evidence that did not match the requested unexpected application evidence."peekaboo see --mode screen --no-elements --jsonpeekaboo see --capture-engine classic --mode screen --jsonpeekaboo see --no-remote --mode screen --jsonSo default routing dispatches to an on-demand Bridge host and is refused; only disabling element detection, or bypassing the host entirely, succeeds.
2. Behaviour change vs 4.3.0: no in-process fallback
peekaboo see --mode screenOn 4.3.0 the command fell back to the caller when no host existed; on 4.3.4 it always prefers a host, so previously working plain invocations now fail. If that is intentional, a documented fallback would help.
3. SCK coordination blocks all host capture while an unrelated Screen-Recording app is open
With another app that simply holds Screen Recording running (Claude Desktop), but not capturing, host capture failed on every route with:
The engine docs say the lease "scans and refuses owner-unaware live processes" and that "a potential uncoordinated host is not proof of actual SCK use" — yet the check keyed on a merely running app here, making host capture impossible on an ordinary desktop. The coordination error disappeared as soon as that app quit. Suggest scoping the scan to processes with an actual SCK session/lease, or documenting that any Screen-Recording-entitled app must be closed.
Impact
Automation on a background host cannot use default
seeat all; callers must pass--no-remote. Host-side element detection is unavailable.Workaround in use
PEEKABOO_NO_REMOTE=1 PEEKABOO_CAPTURE_ENGINE=classic— reliable (193 elements repeatedly), with or without a daemon/app running and with other SCK-capable apps open.Notes