Skip to content

feat: harden mac deployment and align assistant docs#3

Open
dunova wants to merge 2 commits intovimalinx:masterfrom
dunova:codex/mac-release-hardening
Open

feat: harden mac deployment and align assistant docs#3
dunova wants to merge 2 commits intovimalinx:masterfrom
dunova:codex/mac-release-hardening

Conversation

@dunova
Copy link

@dunova dunova commented Mar 3, 2026

Summary

This PR hardens macOS deployment, aligns deployment docs with actual runtime behavior, and improves diagnostic signal quality.

What changed

  1. Packaging and dependency hardening
  • Restrict Python support to >=3.10,<3.13 in pyproject.toml.
  • Add required ASR runtime dependencies: torch and torchaudio.
  • Mark Linux-only dependencies with platform markers (evdev, PyGObject).
  1. Auto-deploy robustness
  • Update scripts/auto-deploy.sh to:
    • support explicit interpreter via VIBEMOUSE_PYTHON_BIN
    • auto-fallback from Python 3.13+ to python3.12 when available
    • detect and backup mismatched existing .venv
    • upgrade pip/setuptools/wheel before install
  1. Deploy path consistency
  • Update vibemouse/deploy.py default ExecStart to always use current interpreter:
    • python -m vibemouse.main run
  • Avoid cross-env PATH ambiguity from which vibemouse.
  1. Doctor quality improvements
  • Add transcriber-deps check in vibemouse/doctor.py to validate required ASR imports.
  • Improve non-Linux behavior:
    • skip Hyprland bind check outside Linux/Hyprland sessions
    • skip systemd user service check outside Linux
  • Keep Linux checks unchanged for primary path.
  1. Transcriber error readability
  • Improve import-failure diagnostics in vibemouse/transcriber.py with concrete exception class/message.
  1. Documentation alignment
  • Update both deployment guides and both READMEs:
    • Python version recommendation/constraint
    • torch/torchaudio requirement
    • non-Linux --skip-systemctl guidance
    • first-run model download expectation
    • macOS permission notes
  1. Tests
  • Extend tests for new doctor/deploy behavior:
    • tests/test_doctor.py
    • tests/test_deploy.py

Verification

  • python -m compileall vibemouse
  • python -m unittest discover -s tests -p "test_*.py"

Result: all tests passed (137/137).

Notes

  • This PR does not change the front/rear button state machine behavior.
  • OpenClaw routing and fallback chain are preserved.

@vimalinx
Copy link
Owner

vimalinx commented Mar 3, 2026

Thanks a lot for the effort on this PR 🙏 — especially the deployment/doctor/doc improvements in commit c910081.\n\nI reviewed the second commit (34160a4) carefully as well. It effectively replaces the current VibeMouse codebase with an OpenClaw STT plugin structure, which is a different product direction than our current runtime line (mouse listener -> recording -> transcription -> output/gesture/workspace).\n\nTo keep maintenance safe and avoid breaking active users, we decided to run a platform-branch strategy:\n- platform/linux\n- platform/macos\n- platform/windows\n\nWould you be open to splitting this into:\n1) a focused mac hardening PR (keep the c910081 direction), and\n2) a separate experimental plugin PR/branch for openclaw-stt-plugin exploration?\n\nReally appreciate the work here — there are several pieces we definitely want to carry forward. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants