MMuhammad Ahmed CheemaBump version to 2.2.1
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: Chinese input paste handling Made-with: Cursor | 6 个月前 | |
Bump version to 2.2.1 Version sync across Types.swift, server.py, ghost-vision. README: badge, tarball URL, star count (500+), line count (~7,000). | 6 个月前 | |
Add self-learning recipes (ghost_learn) for v2.2.0 3 new MCP tools: ghost_learn_start, ghost_learn_stop, ghost_learn_status. User performs a task manually while Ghost OS observes via CGEvent tap + AX enrichment, then Claude synthesizes the recording into a replayable recipe. New files (Sources/GhostOS/Learning/): - LearningTypes.swift: ObservedAction, ElementContext, LearningSession, errors - LearningRecorder.swift: CGEvent tap lifecycle, background thread, os_unfair_lock - EventHandlers.swift: key/mouse/scroll handling, AX enrichment, secure field detection - AppSwitchDetector.swift: frontmost app polling for app switch detection - LearningDispatch.swift: MCP tool handlers with JSON serialization Modified files: - MCPTools.swift, MCPDispatch.swift: 3 new tool definitions and dispatch cases - Doctor.swift: Input Monitoring permission check (optional, warning only) - SetupWizard.swift: Optional Input Monitoring setup step - GHOST-MCP.md: Rule 13 (Self-Learning Mode), tool count 26->29 - README.md: What's New v2.2.0 section - Types.swift: Version bump to 2.2.0 Thread safety: os_unfair_lock on all shared state, lock-protected local copy pattern for app switch detection, max duration safety timer (600s). Privacy: 3-tier secure field detection, restricted bundle ID filtering. Reviewed by 2 adversarial review agents (P0/P1/P2 classification, all fixed). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Add self-learning recipes (ghost_learn) for v2.2.0 3 new MCP tools: ghost_learn_start, ghost_learn_stop, ghost_learn_status. User performs a task manually while Ghost OS observes via CGEvent tap + AX enrichment, then Claude synthesizes the recording into a replayable recipe. New files (Sources/GhostOS/Learning/): - LearningTypes.swift: ObservedAction, ElementContext, LearningSession, errors - LearningRecorder.swift: CGEvent tap lifecycle, background thread, os_unfair_lock - EventHandlers.swift: key/mouse/scroll handling, AX enrichment, secure field detection - AppSwitchDetector.swift: frontmost app polling for app switch detection - LearningDispatch.swift: MCP tool handlers with JSON serialization Modified files: - MCPTools.swift, MCPDispatch.swift: 3 new tool definitions and dispatch cases - Doctor.swift: Input Monitoring permission check (optional, warning only) - SetupWizard.swift: Optional Input Monitoring setup step - GHOST-MCP.md: Rule 13 (Self-Learning Mode), tool count 26->29 - README.md: What's New v2.2.0 section - Types.swift: Version bump to 2.2.0 Thread safety: os_unfair_lock on all shared state, lock-protected local copy pattern for app switch detection, max duration safety timer (600s). Privacy: 3-tier secure field detection, restricted bundle ID filtering. Reviewed by 2 adversarial review agents (P0/P1/P2 classification, all fixed). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Bump to v2.1.0: ghost_annotate, ghost_hover, ghost_long_press, ghost_drag 4 new MCP tools (26 total): - ghost_annotate: labeled screenshots with numbered interactive elements and click coordinates - ghost_hover: move cursor to trigger tooltips, CSS :hover, menu navigation - ghost_long_press: press and hold for context menus and Force Touch previews - ghost_drag: drag between points or elements for file moves, sliders, list reordering Review fixes: mouseUp error handling in drag, duration clamping in long_press, coordinate clamping in annotate for scrollback text areas. Updated README, GHOST-MCP.md, recipe engine, version bump across all 3 files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Bump to v2.1.0: ghost_annotate, ghost_hover, ghost_long_press, ghost_drag 4 new MCP tools (26 total): - ghost_annotate: labeled screenshots with numbered interactive elements and click coordinates - ghost_hover: move cursor to trigger tooltips, CSS :hover, menu navigation - ghost_long_press: press and hold for context menus and Force Touch previews - ghost_drag: drag between points or elements for file moves, sliders, list reordering Review fixes: mouseUp error handling in drag, duration clamping in long_press, coordinate clamping in annotate for scrollback text areas. Updated README, GHOST-MCP.md, recipe engine, version bump across all 3 files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Enhance screenshot functionality and documentation - Update `ghost_screenshot` to capture windows behind others or in different Spaces without requiring focus. - Improve error handling for screenshot failures, providing specific messages based on the failure reason. - Add detailed rules for web app interaction and Gmail email patterns in GHOST-MCP.md. - Refactor `FocusManager` to include polling for focus verification after activation attempts. - Streamline screenshot capture logic in `ScreenCapture` and `VisionPerception` for better reliability and error reporting. | 6 个月前 | |
Fix python3 path resolution in vision setup and model download Swift's URL(fileURLWithPath:) resolves bare names like "python3" relative to the current working directory, not via the system PATH. This caused ghost setup to fail for every fresh Homebrew install when downloading the ShowUI-2B model: ERROR: Failed to run python3: Error Domain=NSCocoaErrorDomain Code=4 "The file "python3" doesn't exist." UserInfo={NSFilePath=/Users/.../python3} Two interacting bugs: 1. setupVision() skipped venv creation when the ghost-vision launcher existed (always true on Homebrew installs), leaving no venv python for the model download step. 2. downloadModel() fell back to bare "python3" when the venv was missing, which runShellLive() resolved as <CWD>/python3 instead of searching PATH. Changes: - setupVision(): Set up the Python venv whenever mlx_vlm is unavailable, regardless of whether the ghost-vision launcher exists. - downloadModel(): Add resolveAbsolutePythonPath() that checks common absolute paths then falls back to `which python3`, matching the pattern already used in setupPythonVenv(). - VisionBridge.findPython(): Add /usr/bin/python3 to candidates and a PATH fallback via `which` for pyenv/conda/nix/asdf users. Fixes #1 | 6 个月前 |