diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b9cc0ad612..2e87a1fc77d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/apps/macos/Package.resolved b/apps/macos/Package.resolved index a1c70410ff6..11b658910f0 100644 --- a/apps/macos/Package.resolved +++ b/apps/macos/Package.resolved @@ -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" } }, { diff --git a/apps/macos/Package.swift b/apps/macos/Package.swift index ab6f796d1c3..5f1736992c3 100644 --- a/apps/macos/Package.swift +++ b/apps/macos/Package.swift @@ -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"), ], diff --git a/skills/peekaboo/SKILL.md b/skills/peekaboo/SKILL.md index d751349372e..57ca78e6ae8 100644 --- a/skills/peekaboo/SKILL.md +++ b/skills/peekaboo/SKILL.md @@ -31,6 +31,20 @@ cache and support `--json`/`-j` for scripting. Run `peekaboo` or `peekaboo --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`.