- Enhanced system prompt to explicitly request thinking out loud
- Added instructions for models to share their reasoning process
- Increased temperature for o3 model to encourage more verbose output
- Set maxTokens to 4096 to ensure room for explanations
This should help make o3's thought process visible to users.
- Enhanced stop_watcher to properly remove both trigger and watch
- Added SwiftPM conflict detection to prevent concurrent build issues
- Improved status messages with success/warning indicators
- Fixed issue where Poltergeist wouldn't properly restart after stopping
The watcher now handles edge cases better and provides clearer feedback about its state.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced system prompt with explicit screenshot-after-launch guidance
- Added comprehensive AppleScript quoting rules and examples
- Strengthened task completion requirements with checklist
- Added dialog handling best practices
- Introduced new 'see' tool that combines screenshot + UI detection
- Updated CLI agent command to support 'see' tool with proper emoji
- Fixed compilation issues with DetectedElements
This improves agent's ability to handle app dialogs, complete all task
requirements (including specific output phrases), and use proper
AppleScript syntax.
* feat: Add build staleness detection for debug CLI
- Add debug-only staleness check using git config 'peekaboo.check-build-staleness'
- CLI will exit with error if current git commit differs from build commit
- Helps prevent Claude Code from using outdated binaries after source changes
* feat: Enhance build staleness detection with file modification checks
- Add buildDate timestamp to Version.swift generation
- Create separate BuildStalenessChecker.swift file
- Add comprehensive file modification time checking using git status
- Parse git status --porcelain=1 output to identify modified files
- Compare file modification times against build timestamp
- Provide clear error messages for both commit and file staleness
- Support clean/comprehensive staleness detection for Claude Code workflows
* docs: Add Debug Build Staleness Detection section to README
- Document how to enable/disable staleness checking via git config
- Explain both git commit and file modification staleness detection
- Provide clear examples and benefits
- Highlight usefulness for AI-assisted development workflows
* docs: Simplify staleness detection README section
Replace verbose documentation with single concise paragraph as requested
* fix: Remove test comments from main.swift
Clean up debugging comments that were accidentally left in the code
* Update Apps/CLI/Sources/peekaboo/main.swift
- Modified build scripts to extract git commit, date, branch, and dirty state
- Enhanced Version.swift with fullVersion property containing git metadata
- Updated help menu to display version with git info (branch/commit, date)
- Created build-swift-debug.sh for quick debug builds with version info
- Now shows version like: Peekaboo 3.0.0-beta.1 (spec-v3/6c4adea, 2025-07-26 04:00:23 +0200)
This makes it easy to verify if running the latest version based on git commit.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created SwiftUI test app at Playground/ for testing all Peekaboo automation features
- Includes comprehensive UI elements: clicks, text input, controls, gestures, drag/drop, keyboard
- Added OSLog integration with categorized logging (Click, Text, Menu, Window, etc.)
- Created playground-log.sh utility inspired by vtlog for easy log viewing
- Features: color-coded output, category filtering, search, JSON export, time ranges
- Added wrapper script at scripts/playground-log.sh for project root access
- Updated CLAUDE.md with comprehensive Playground documentation
- All UI elements have accessibility identifiers for automation testing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move core libraries to Core/ directory (PeekabooCore, AXorcist)
- Move applications to Apps/ directory (Mac, CLI)
- Move TypeScript server to Server/ directory
- Move scripts to Scripts/ directory
- Archive deprecated PeekabooInspector (now integrated into Mac app)
- Update all build configurations and paths
- Update CI/CD workflows for new structure
- Fix build scripts to use new paths
This reorganization provides:
- Clear separation between core libraries, apps, and server
- Flattened Mac app structure (removed double nesting)
- Consistent naming conventions
- Better code sharing through PeekabooCore
- Easier maintenance and development
- Adopted vtlog script from VibeTunnel project for PeekabooInspector
- Configured to work with com.steipete.PeekabooInspector subsystem
- Added comprehensive documentation to CLAUDE.md
- Provides easy access to macOS unified logging output with filtering options
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Homebrew expects the version string to include the "Peekaboo" prefix.
This commit:
- Reverts the version generation to include "Peekaboo" prefix
- Updates all version tests to expect the prefix format
- Ensures compatibility with Homebrew's version requirements
All tests now pass with the expected format: "Peekaboo X.Y.Z"
The Swift tests expect Version.current to contain only the semantic version
number (e.g. "2.0.3") without the "Peekaboo" prefix. This was causing the
version format tests to fail in CI.
- Updated build-swift-universal.sh to inject only the version number
- Regenerated Version.swift with the correct format
- All version tests now pass
- Updated CLI to output "Peekaboo X.X.X" instead of just version number
- Fixes Homebrew formula test that expects "Peekaboo" in --version output
- No functional changes, just formatting improvement
- Actually fixed LC_UUID load command generation (v2.0.1 fix was incomplete)
- Binary now includes LC_UUID for both x86_64 and arm64 architectures
- Verified with otool that LC_UUID is present in the universal binary
- This ensures proper dyld loading on macOS 26+
- Fixed LC_UUID load command preservation during binary stripping
- Updated strip command to use -u flag to retain UUID for macOS 26+ compatibility
- Ensures proper debugging and crash reporting support on newer macOS versions
- Generate enum instead of struct in build script
- Prevents formatting conflicts during release process
- Maintains alignment with SwiftFormat enumNamespaces rule
- Add npm run inspector script for MCP inspector tool
- Synchronize Swift CLI version with package.json (1.0.0-beta.9)
- Update macOS version requirement to v14 (Sonoma) for n-1 support
- Add Swift compiler warnings check in prepare-release script
- Convert tests/setup.ts from Jest to Vitest syntax
- Update server status tests to match new format
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace non-existent server_status command with list apps
- Update command names to match actual Swift CLI (apps not running_applications)
- Fix expected JSON structure to match actual output
- Add unit test templates for all Swift components:
- ApplicationFinderTests: Test app discovery and fuzzy matching
- WindowManagerTests: Test window listing and filtering
- PermissionsCheckerTests: Test permission detection
- ImageCommandTests: Test command parsing and validation
- ListCommandTests: Test list command variations
- Enhance release script with thorough CLI testing:
- Test all commands with various arguments
- Validate JSON output structure
- Test error handling for invalid inputs
- Check permission status reporting
- Add dedicated Swift CLI integration test phase
- Update RELEASING.md to highlight automated checks
- Check peekaboo binary exists and is included in package
- Verify binary has executable permissions
- Ensure binary contains both arm64 and x86_64 architectures
- Test binary execution with --help flag
- Check if the current version is already published on npm
- Prevent accidental republishing of existing versions
- Run this check early in the release process
- Add prepare-release.js script that performs all pre-release checks
- Checks git status, dependencies, TypeScript, Swift, and builds
- Runs all tests including integration tests
- Verifies package contents and structure
- Add npm run prepare-release command
- Document in CLAUDE.md
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>