Commit Graph

22 Commits

Author SHA1 Message Date
Peter Steinberger
72da780b00 feat: Add script to automate Homebrew tap updates 2025-07-03 22:10:56 +01:00
Peter Steinberger
d0676c4990 feat: Add proper code signing and Info.plist embedding for macOS permissions
- Add Info.plist with bundle identifier and usage descriptions
- Embed Info.plist into binary using linker flags in Package.swift
- Add Developer ID code signing to build script (with ad-hoc fallback)
- Update version to 2.0.0 in Info.plist
- Enable runtime hardening for notarization readiness

This ensures Peekaboo works properly with macOS permissions system and can be distributed via Homebrew with proper code signing.
2025-07-03 22:02:10 +01:00
Peter Steinberger
33dc9bf2c4 feat: Add Homebrew distribution, improve CLI UX, and enhance permissions visibility
- Set up Homebrew tap at github.com/steipete/homebrew-tap for easy installation
- Add automated Homebrew formula updates via GitHub Actions
- Show help menu when peekaboo is called without arguments
- Add combined capture + analyze mode with --analyze flag
- Rename server_status to permissions for clarity
- Add prominent permissions block to main help menu
- Add standalone 'peekaboo permissions' command
- Add https://peekaboo.boo to SEE ALSO section
- Improve discoverability for AI agents with clear permission requirements
- MCP server maintains backward compatibility while Swift CLI uses cleaner naming
2025-07-03 20:23:49 +01:00
Peter Steinberger
7590df1063 Improve CLI help menus to follow Unix conventions
- Redesigned all help menus with examples-first approach
- Added SYNOPSIS sections showing command structure
- Moved environment variables to bottom (Unix convention)
- Added more practical examples and common workflows
- Added exit status documentation for scripting
- Improved formatting for better readability
- Added standalone CLI build script with install option
- Updated README with comprehensive CLI documentation
2025-07-03 16:22:06 +01:00
Peter Steinberger
bd49a9c772 Fix SwiftFormat/SwiftLint consistency
- Generate enum instead of struct in build script
- Prevents formatting conflicts during release process
- Maintains alignment with SwiftFormat enumNamespaces rule
2025-05-27 01:30:32 +02:00
Peter Steinberger
731b89b779 Prepare release 2025-05-27 00:21:29 +02:00
Peter Steinberger
7bf63a225c Implement missing best practices
- 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>
2025-05-26 23:46:03 +02:00
Peter Steinberger
32bf6b9eaf Release testing 2025-05-25 21:21:53 +02:00
Peter Steinberger
3a9a467308 Fix missing args test to properly capture error output 2025-05-25 21:00:38 +02:00
Peter Steinberger
93a1baf596 Fix Swift CLI integration tests to match actual command structure 2025-05-25 19:41:12 +02:00
Peter Steinberger
61d6ef0cee Fix invalid command test to properly capture error output 2025-05-25 19:38:14 +02:00
Peter Steinberger
7fadd6e5f1 Update invalid command test to match actual Swift CLI behavior 2025-05-25 19:36:15 +02:00
Peter Steinberger
4e640fc297 Fix Swift CLI invalid command test to match actual error output 2025-05-25 19:34:25 +02:00
Peter Steinberger
228ee053b2 Fix JSON structure expectations in Swift CLI tests
- Update to expect success/data wrapper in JSON responses
- Match actual Swift CLI output format
2025-05-25 19:30:43 +02:00
Peter Steinberger
41a43117d6 Remove duplicate errorOutput variable declaration 2025-05-25 19:29:38 +02:00
Peter Steinberger
b51a418ec3 Fix Swift CLI tests in release script
- 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
2025-05-25 19:29:04 +02:00
Peter Steinberger
f4a41f8355 Add comprehensive Swift unit tests and enhanced CLI testing
- 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
2025-05-25 19:12:21 +02:00
Peter Steinberger
1ff703b185 Add comprehensive binary verification to release script
- 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
2025-05-25 18:52:39 +02:00
Peter Steinberger
e988a98c70 Add version availability check to release preparation script
- Check if the current version is already published on npm
- Prevent accidental republishing of existing versions
- Run this check early in the release process
2025-05-25 18:50:11 +02:00
Peter Steinberger
19807ffbd4 Add comprehensive release preparation script
- 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>
2025-05-25 18:38:57 +02:00
Peter Steinberger
857ce73b94 rename swift-cli to peekaboo-cli 2025-05-25 01:28:06 +02:00
Peter Steinberger
eab4e5a394 Add build dir, prepare package 2025-05-23 05:57:06 +02:00