Repository navigation
Highlights: Stop idle global observers from burning CPU whenever other applications launch or quit, honor request timeouts in collectAll, subscribe to every requested notification, and report fast observer-removal failures without retrying in-call.
Fixed
- Report a failed native removal from the deprecated
AXObserverManager.removeObserver(for:notification:)every time and keep the registration for an explicit retry; a removal that failed before the call began waiting was previously retried inside the same call and could report success. - Stop idle global observers from burning CPU when unrelated applications launch or quit: index workspace applications by identity instead of
NSRunningApplication's constant hash, and stop re-reading resolved PIDs on every snapshot (each launch invalidated AppKit's cached LaunchServices metadata for every application). An idlepeekaboo mcpwith ~600 running applications drops from ~0.68 s to ~0.02 s of CPU per launch and quit (openclaw/Peekaboo#1005). - Honor the request timeout during
collectAlltraversal and retain elements collected before the deadline. Thanks @SebTardif. - Subscribe to every requested observation notification, reject invalid names before registration, and roll back a failed request without disturbing existing observers. Thanks @SebTardif.
Changed
- Update SwiftFormat to 0.63.1, setup-swift to 1.14.1, and CodeQL Action to 4.38.2 for validation and toolchain setup fixes.
Installation
- Universal macOS archive · SHA-256
- Apple Silicon archive · SHA-256
- Intel archive · SHA-256
- Swift Package Manager: AXorcist 0.2.2.
- Homebrew:
brew install openclaw/tap/axorc(formula).
Verification
- Release preparation #98, CI, CodeQL, and main CI at the release commit.
- Swift 6.2.4 and Swift 6.4 CI passed, including formatting, lint, dependency fixtures, source-only packaging regressions, and universal/thin packaging. Locally, 295 tests passed and
make checkwas clean. - Built from the signed
v0.2.2tag in a clean checkout. Each archive contains a single mode-0755axorcwith the Foundation Developer ID signature, hardened runtime, secure timestamp, and macOS 14 minimum; the universal binary carries arm64 and x86_64. All three Apple notarizations were accepted, and each executable satisfies the onlinenotarizedrequirement. - The workspace-monitor CPU fix was measured end-to-end in Peekaboo for openclaw/Peekaboo#1005: an idle
peekaboo mcpwith ~594 running applications dropped from ~0.68 s to ~0.02 s of CPU per unrelated application launch and quit.