Repository navigation
v4.9.7
4.9.7 - 2026-10-23
Highlights: Report window close through the daemon as closed when an app keeps the closed window alive; let see observe Chrome windows whose titles carry the app name or are elided; close apps that re-exec themselves with --foreground; and keep the Mac chat, menu bar and Inspector accurate.
- Report
window closethrough the daemon or Bridge as closed when the app keeps the closedNSWindowalive, instead of exiting 1 with an indeterminate postcondition: the Bridge readback now applies the same exact-window Accessibility presence check as the in-process path. Thanks @goutamadwant! #1131, fixes #1129. - Let
peekaboo seeobserve Chrome and other apps whose Accessibility window title appends the application name or whose WindowServer title is middle-elided, instead of failing with "inconsistent response evidence: window-context window title". Thanks @L1uYun! #1130. - Close windows of apps that re-exec themselves with
window close --foreground, whose frontmost PID AppKit reports as -1. Thanks @SebTardif! #1124. - Classify Dock separators and the Trash from their Accessibility subroles, so
peekaboo dock listhides separators unless--include-allis passed, reports included separators asseparatorinstead of blankunknownitems, and identifies a localized Trash (such as "Papierkorb") astrash. #1120. - Use the Mac app's saved Vision model for image analysis even when its provider does not report vision support (OpenRouter, OpenAI-compatible, LM Studio and many Ollama models), surfacing the provider's error instead of silently switching models. Thanks @SebTardif! #1127.
- Keep the Mac chat's streaming answer together when you queue a follow-up, and keep Retry on the prompt that failed. Thanks @SebTardif! #1126.
- Show a failed Mac agent tool as failed, not completed, in the menu bar, while cancelled tools stay cancelled. Thanks @SebTardif! #1134.
- Highlight the Inspector control in the front window under the pointer, including floating panels and popup items past their window, instead of the smallest control anywhere on screen; windows of untracked apps such as the Dock now stop the hover from reaching what they cover. Thanks @SebTardif! #1133.
- Place Inspector highlight boxes on the correct display when a display does not start at the primary display's origin. Thanks @SebTardif! #1132.
- Restore source builds after the pinned MCP Swift SDK commit became unreachable upstream when its pull request branch was rebased. #1135.
- Remove the unused public
DialogError.inputSuppressedUnderTestscase from PeekabooAutomationKit along with the dead test-only dialog typing hook that threw it; release builds could never throw it, so only SwiftPM consumers that switch over everyDialogErrorcase need to drop that branch. #1123.
Verification
Run: https://github.com/openclaw/Peekaboo/actions/runs/40027354350
Verified on xcode-27: arm64, x86_64 under Rosetta, and an independent arm64 runtime audit.
Toolchain and notarization submissions:
{
"schemaVersion": 1,
"repository": "openclaw/Peekaboo",
"tag": "v4.9.7",
"commit": "5639e70501010ca9dcae5f594a0b57dd69e9b395",
"teamId": "FWJYW4S8P8",
"authority": "Developer ID Application: OpenClaw Foundation (FWJYW4S8P8)",
"toolchain": {
"build": {
"xcode": "Xcode 27.1\nBuild version 27A9275",
"swift": "Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)\nTarget: arm64-apple-macosx27.0.0",
"sdk": "27.0"
},
"sign": {
"xcode": "Xcode 27.1\nBuild version 27A9275",
"swift": "Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)\nTarget: arm64-apple-macosx27.0.0",
"sdk": "27.0"
}
},
"submissions": {
"dmg": "49e56865-83ab-4a68-a853-2c9d11c3e7f4",
"app": "9d527509-3080-4750-9d24-b79476b87508",
"cli": "b1f7cf90-ea21-4cfb-aa05-15942105d24f"
},
"buildNumber": "4090799",
"edSignature": "J63yDO9tcaY8hjhMx79PCcl5RoaKBdnYK6/dPD8+3S4XLtyrBMJ6te4LVIg5I7UMJTBB+azoNN8cqeKyuCDlCg==",
"digests": {
"Peekaboo-4.9.7.app.zip": "ad87379580bdc9a2d96a62f1d3db7545b18306f8fcd96d1b50b4eee033959ed0",
"peekaboo-macos-universal.tar.gz": "8a4136b9efd4c3a5591840375b024009a3cfb1b5fe994f62268cc755fb37744c",
"Peekaboo-4.9.7.dmg": "7af21a490c4ff57a183557935cef54a01ce75cc24e515fdf51a3d831cb2573bb",
"peekaboo-macos-x86_64.tar.gz": "b9abefba42b23fda37e1c682e2493a6aa403b6c72b0eefa9773bea517960cb58",
"peekaboo-macos-arm64.tar.gz": "147a81a9b31c1b7b7bd5f720674ad7de71951698138d379679678a9ccfdd0a38"
},
"downloaderEntitlements": {
"bundle": "Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc",
"entitlements": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n"
}
}Checksums:
59febb752aa646a1c9203c9ee33dad7b12f6e1b2e7b5a6e22fa469db7031b719 ASSET-INVENTORY.json
ad87379580bdc9a2d96a62f1d3db7545b18306f8fcd96d1b50b4eee033959ed0 Peekaboo-4.9.7.app.zip
7af21a490c4ff57a183557935cef54a01ce75cc24e515fdf51a3d831cb2573bb Peekaboo-4.9.7.dmg
7f4b6d1998f735e77485b7111575cac92126f30cf5fd4a5ccf79b80d3d5604e6 RELEASE-NOTES.md
1bb0e451a75669c1916430539baae091779ae5f3ab5a044ff19c34361ae8dc4c SIGNING-MANIFEST.json
4657d87e137bb4a66ceeb143b8b3b4bc0842b012b17458cc4eaabb16254b54bf appcast-entry.json
827ceaa347ac07ec90e223b71090107304804ace54fa9149d84bfeda9af53e0a appcast.xml
147a81a9b31c1b7b7bd5f720674ad7de71951698138d379679678a9ccfdd0a38 peekaboo-macos-arm64.tar.gz
8a4136b9efd4c3a5591840375b024009a3cfb1b5fe994f62268cc755fb37744c peekaboo-macos-universal.tar.gz
b9abefba42b23fda37e1c682e2493a6aa403b6c72b0eefa9773bea517960cb58 peekaboo-macos-x86_64.tar.gz
b87fd98c8d2e99ed7d2d904a609503c484131bdd944cea45cc6974fab92b9bd7 steipete-peekaboo-4.9.7.tgz
npm
- Package: @steipete/peekaboo@4.9.7 (
latest) - Tarball: https://registry.npmjs.org/@steipete/peekaboo/-/peekaboo-4.9.7.tgz
- Integrity:
sha512-JMGqx1jsHMLGyPfG769aAj1ZE5xbG6iHKi/9QWnlEfUX0zGDnX2YwBWRcZSSlWvGLsJ/l+Ocgg1kh7sq1ga5vQ==; the registry tarball is byte-identical to thesteipete-peekaboo-4.9.7.tgzasset listed inchecksums.txt. - Homebrew:
openclaw/homebrew-tapformula updated to v4.9.7, with arm64 and x86_64 checksums matching the release assets.