Skip to content

4.3.4: host-routed see refused on screen+element detection (no in-process fallback); SCK coordination blocks host capture while another Screen-Recording app is open #715

Description

@jnikolaidis

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions