fix(macos): route Peekaboo through app bridge

This commit is contained in:
Peter Steinberger 2026-06-15 09:14:16 -04:00
parent dd7f2ef002
commit 66079161d7
4 changed files with 22 additions and 6 deletions

View file

@ -30,6 +30,7 @@ Docs: https://docs.openclaw.ai
- Memory, state, diagnostics, and config: split header-too-large embedding batches, keep QMD memory search enabled in transient mode, avoid SQLite WAL on NFS volumes, preserve recovery scheduling outside stuck-session warning backoff, and keep shell environment fallbacks contained in config write tests. (#92650, #92618, #92639, #91247, #92752) Thanks @mushuiyu886, @TurboTheTurtle, @849261680, and @gnanam1990.
- UI/mobile/TUI: preserve dashboard session parent lineage, WebChat backscroll, reset soft command args, sidebar session picker interactivity, collapsed workspace files, resolved `/model` confirmation refs, and stale foreground iOS Gateway reconnects. (#90658, #92622, #91353, #92705, #92779, #92773, #92552) Thanks @luoyanglang, @TurboTheTurtle, @zhouhe-xydt, @NianJiuZst, @shakkernerd, @NarahariRaghava, and @Solvely-Colin.
- Release and test reliability: extend slow Gateway/full-suite watchdogs, split local full-suite shards when throttled, stabilize plugin auth marker fixtures, avoid brittle provider-ref error text, and keep QA Lab bootstrap selection assertions aligned with flow-only scenarios. (#92652)
- macOS Peekaboo bridge: update the embedded Peekaboo package to 3.5.2 and route bundled-skill CLI commands through the OpenClaw app bridge so they inherit its Screen Recording and Accessibility grants.
- Agent routing: route subagent RPC callbacks addressed to an agent-shaped `--to` target to the correct session key instead of falling back to the main session, so WeChat (and other channel) session-key callbacks reach the intended subagent session. (#90231) Thanks @zhangguiping-xydt.
- QQBot delivery: keep markdown table chunks self-contained across message boundaries by preserving table state across block deliveries, flushing unfinished table-row fragments as plain text, and detecting short pipe-terminated rows by column count so split rows are not sent as malformed markdown. (#92428) Thanks @sliverp.

View file

@ -1,5 +1,5 @@
{
"originHash" : "ae9f37f50cff0d32d189e60948f61e2fa1704e997a6ef4ad5e37f6a11c165ea4",
"originHash" : "4f7b315ce0e0a16d150d8d74dce445628c03d8926485ad2f5595e091b4d33440",
"pins" : [
{
"identity" : "axorcist",
@ -42,8 +42,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/steipete/Peekaboo.git",
"state" : {
"revision" : "ee0e3185431788dad533ffca77cd75315aa3d26f",
"version" : "3.4.1"
"revision" : "1fa8eead7eeac3ff618a3111fc333ae78db043d2",
"version" : "3.5.2"
}
},
{

View file

@ -19,7 +19,7 @@ let package = Package(
.package(url: "https://github.com/swiftlang/swift-subprocess.git", from: "0.4.0"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.10.1"),
.package(url: "https://github.com/sparkle-project/Sparkle", from: "2.9.0"),
.package(url: "https://github.com/steipete/Peekaboo.git", exact: "3.4.1"),
.package(url: "https://github.com/steipete/Peekaboo.git", exact: "3.5.2"),
.package(path: "../shared/OpenClawKit"),
.package(path: "../swabble"),
],

View file

@ -31,6 +31,20 @@ cache and support `--json`/`-j` for scripting. Run `peekaboo` or
`peekaboo <cmd> --help` for flags; `peekaboo --version` prints build metadata.
Tip: run via `polter peekaboo` to ensure fresh builds.
## OpenClaw Bridge
The OpenClaw macOS app hosts Peekaboo Bridge at
`~/Library/Application Support/OpenClaw/bridge.sock`. Before running Peekaboo
from OpenClaw, select that socket so the CLI uses the app's Screen Recording
and Accessibility grants instead of starting its standalone daemon:
```bash
export PEEKABOO_BRIDGE_SOCKET="${PEEKABOO_BRIDGE_SOCKET:-$HOME/Library/Application Support/OpenClaw/bridge.sock}"
```
Confirm routing with `peekaboo bridge status --json`; `hostKind` must be `gui`
and the socket path must end in `OpenClaw/bridge.sock`.
## Features (all CLI capabilities, excluding agent/MCP)
Core
@ -187,8 +201,9 @@ peekaboo type "Line 1\nLine 2" --delay 10
Notes
- Requires Screen Recording + Accessibility permissions.
- In OpenClaw subprocesses, use the default Bridge path. Do not pass
`--no-remote` unless the calling process has its own Screen Recording grant.
- In OpenClaw subprocesses, set `PEEKABOO_BRIDGE_SOCKET` as shown above. Do not
pass `--no-remote` unless the calling process has its own Screen Recording
grant.
- Diagnose subprocess capture failures with `peekaboo bridge status --json`,
then `peekaboo permissions status --json`, then a normal Bridge-routed
capture such as `peekaboo image --mode screen --json`.