diff --git a/Apps/CLI/CHANGELOG.md b/Apps/CLI/CHANGELOG.md index ec731e2a..e98b453a 100644 --- a/Apps/CLI/CHANGELOG.md +++ b/Apps/CLI/CHANGELOG.md @@ -5,17 +5,17 @@ All notable changes to Peekaboo CLI will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased - -### Fixed -- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184. - -## [3.4.2] - 2026-06-12 +## [3.5.0] - 2026-06-12 ### Added - `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility. +### Changed +- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models. +- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository. + ### Fixed +- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184. - Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185. ## [3.4.1] - 2026-06-10 diff --git a/Apps/CLI/Sources/Resources/Info.plist b/Apps/CLI/Sources/Resources/Info.plist index 283292ff..2d83fb53 100644 --- a/Apps/CLI/Sources/Resources/Info.plist +++ b/Apps/CLI/Sources/Resources/Info.plist @@ -7,9 +7,9 @@ CFBundleName Peekaboo CFBundleShortVersionString - 3.1.1 + 3.5.0 CFBundleVersion - 3.1.1 + 3.5.0 LSMinimumSystemVersion 15.0 LSUIElement @@ -23,6 +23,6 @@ NSScreenCaptureUsageDescription Peekaboo needs screen recording permission to capture screenshots and analyze window content. PeekabooVersionDisplayString - Peekaboo 3.1.1 + Peekaboo 3.5.0 diff --git a/Apps/CLI/Sources/Resources/version.json b/Apps/CLI/Sources/Resources/version.json index 826968e3..80fb8d1e 100644 --- a/Apps/CLI/Sources/Resources/version.json +++ b/Apps/CLI/Sources/Resources/version.json @@ -1,3 +1,3 @@ { - "version": "3.4.2" + "version": "3.5.0" } diff --git a/Apps/CLI/TestHost/Info.plist b/Apps/CLI/TestHost/Info.plist index 3ebb6518..12ad507d 100644 --- a/Apps/CLI/TestHost/Info.plist +++ b/Apps/CLI/TestHost/Info.plist @@ -11,9 +11,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 3.1.1 + 3.5.0 CFBundleVersion - 3.1.1 + 3.5.0 LSMinimumSystemVersion 13.0 NSMainStoryboardFile diff --git a/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj b/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj index 7c0702d0..af3dfa5c 100644 --- a/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj +++ b/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj @@ -319,7 +319,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.mac.debug; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -359,7 +359,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.mac; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; diff --git a/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj b/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj index 367be86c..9d659a53 100644 --- a/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj +++ b/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj @@ -278,7 +278,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.inspector; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -306,7 +306,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.inspector; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; diff --git a/Apps/Playground/Playground.xcodeproj/project.pbxproj b/Apps/Playground/Playground.xcodeproj/project.pbxproj index 29ead53d..43ea29d0 100644 --- a/Apps/Playground/Playground.xcodeproj/project.pbxproj +++ b/Apps/Playground/Playground.xcodeproj/project.pbxproj @@ -291,7 +291,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.playground.debug; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -338,7 +338,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 3.4.2; + MARKETING_VERSION = 3.5.0; PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.playground; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/CHANGELOG.md b/CHANGELOG.md index b9e13cbc..9db95903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,16 @@ # Changelog -## Unreleased - -### Fixed -- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184. - -## [3.4.2] - 2026-06-12 +## [3.5.0] - 2026-06-12 ### Added - `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility. +### Changed +- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models. +- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository. + ### Fixed +- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184. - Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185. ## [3.4.1] - 2026-06-10 diff --git a/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift b/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift index d14a0095..2c6236e9 100644 --- a/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift +++ b/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift @@ -1,5 +1,5 @@ enum PeekabooMCPVersion { static let serverName = "peekaboo-mcp" - static let current = "3.4.2" + static let current = "3.5.0" static let banner = "Peekaboo MCP \(current)" } diff --git a/README.md b/README.md index bc496f03..95f05b3c 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ ![Peekaboo Banner](assets/peekaboo.png) -[![npm package](https://img.shields.io/badge/npm_package-3.4.2-brightgreen?logo=npm&logoColor=white&style=flat-square)](https://www.npmjs.com/package/@steipete/peekaboo) +[![npm package](https://img.shields.io/badge/npm_package-3.5.0-brightgreen?logo=npm&logoColor=white&style=flat-square)](https://www.npmjs.com/package/@steipete/peekaboo) [![License: MIT](https://img.shields.io/badge/License-MIT-ffd60a?style=flat-square)](https://opensource.org/licenses/MIT) [![macOS 15.0+ (Sequoia)](https://img.shields.io/badge/macOS-15.0%2B_(Sequoia)-0078d7?logo=apple&logoColor=white&style=flat-square)](https://www.apple.com/macos/) [![Swift 6.2](https://img.shields.io/badge/Swift-6.2-F05138?logo=swift&logoColor=white&style=flat-square)](https://swift.org/) [![node >=22](https://img.shields.io/badge/node-%3E%3D22.0.0-2ea44f?logo=node.js&logoColor=white&style=flat-square)](https://nodejs.org/) -[![Download macOS](https://img.shields.io/badge/Download-macOS-000000?logo=apple&logoColor=white&style=flat-square)](https://github.com/steipete/peekaboo/releases/latest) +[![Download macOS](https://img.shields.io/badge/Download-macOS-000000?logo=apple&logoColor=white&style=flat-square)](https://github.com/openclaw/Peekaboo/releases/latest) [![Homebrew](https://img.shields.io/badge/Homebrew-steipete%2Ftap-b28f62?logo=homebrew&logoColor=white&style=flat-square)](https://github.com/steipete/homebrew-tap) -[![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-0088cc?style=flat-square)](https://deepwiki.com/steipete/peekaboo) +[![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-0088cc?style=flat-square)](https://deepwiki.com/openclaw/Peekaboo) Peekaboo brings high-fidelity screen capture, AI analysis, and complete GUI automation to macOS. Version 3 adds native agent flows and multi-screen automation across the CLI and MCP server. @@ -20,7 +20,9 @@ Peekaboo brings high-fidelity screen capture, AI analysis, and complete GUI auto - Direct accessibility tools for settable values and named actions (`set-value`, `perform-action`). - Menu and menubar discovery with structured JSON; no clicks required. - Multi-provider AI through Tachikoma, including hosted, local, and OpenAI-/Anthropic-compatible providers. +- Claude Fable 5 support with 1M context and a 128K output ceiling; saved temperature/max-token settings are shared by the app and CLI and clamped to each model's capabilities. - MCP server for Codex, Claude Code, and Cursor plus a native CLI; the same tools in both. +- Warm daemon and Peekaboo.app Bridge hosts for permission-bound automation, with distinct lease-owned sockets and local fallback. - Configurable, testable workflows with reproducible sessions and strict typing. - Requires macOS Screen Recording + Accessibility permissions (see [docs/permissions.md](docs/permissions.md)). @@ -143,6 +145,8 @@ Peekaboo's provider list changes with Tachikoma and the tested model catalog. Se Google Gemini, MiniMax, Ollama, LM Studio, and compatible custom endpoints. Set providers via `PEEKABOO_AI_PROVIDERS` or `peekaboo config add`. +Agent generation settings live under `agent.temperature` and `agent.maxTokens` in `~/.peekaboo/config.json`; the +macOS Settings UI reads and writes the same values. ## Learn more - Command reference: [docs/commands/](docs/commands/) diff --git a/package.json b/package.json index 11f2305c..d3786f64 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@steipete/peekaboo", - "version": "3.4.2", + "version": "3.5.0", "description": "macOS automation MCP server with screen capture, UI interaction, and AI analysis", "private": false, "type": "module", @@ -63,14 +63,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/steipete/peekaboo.git" + "url": "git+https://github.com/openclaw/Peekaboo.git" }, "author": "Peter Steinberger ", "license": "MIT", "bugs": { - "url": "https://github.com/steipete/peekaboo/issues" + "url": "https://github.com/openclaw/Peekaboo/issues" }, - "homepage": "https://github.com/steipete/peekaboo#readme", + "homepage": "https://github.com/openclaw/Peekaboo#readme", "keywords": [ "mcp", "model-context-protocol", diff --git a/release/release-notes.md b/release/release-notes.md index 1b82e535..26f006d8 100644 --- a/release/release-notes.md +++ b/release/release-notes.md @@ -1,10 +1,12 @@ -## [3.1.1] - 2026-05-11 +## [3.5.0] - 2026-06-12 ### Added -- `peekaboo image --path -` now writes a single captured image to stdout for shell pipelines. -- The npm package now allows Intel Macs when shipping the universal CLI binary. +- `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility. + +### Changed +- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models. +- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository. ### Fixed -- Agent tool schemas now preserve MCP `anyOf`/`oneOf` parameters so Gemini no longer rejects `peekaboo agent` requests with orphan `required` entries. Thanks @bcharleson for #125. -- The macOS app release script now fails if the packaged app is missing its main executable and preserves the AppleEvents entitlement when re-signing. -- `peekaboo see --capture-engine cg` now keeps frontmost/window captures on the CoreGraphics path instead of falling through to `SCScreenshotManager`. +- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184. +- Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185. diff --git a/version.json b/version.json index 826968e3..80fb8d1e 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "3.4.2" + "version": "3.5.0" }