v0.3.3 — automation hotfix
Fix: scheduled tasks broke on Python 3.9 fallback
Impact: Anyone who ran bash scripts/install_automation.sh (or the Linux/Windows equivalent) hit a TypeError on the first RunAtLoad / cron tick. The generated task called python3 via bare command name, and in headless scheduler environments (launchd, cron, Task Scheduler) PATH is minimal — on macOS python3 silently resolves to system Python 3.9, which cannot parse PEP 604 union syntax (list[str] | None) used by several workflow scripts.
Fixes
- install_automation.sh / .ps1 / _linux.sh: probe for a Python 3.10+ interpreter (python3.13 → python3.10 → homebrew → framework → py.exe), reject anything below 3.10, resolve
sys.executableto a real absolute path (bypassing pyenv/asdf shims), and write that absolute path into the generated LaunchAgent plist / cron entry / Windows Scheduled Task. - run_all.py: add
from __future__ import annotationsso the runner itself can at least load on Python 3.9 (other workflow scripts still need 3.10+, but this gives a more informative error path). - README / README.en: badge + requirement corrected from Python 3.9+ to 3.10+.
Migration
Re-run the installer for your platform — it will bootout the old task, overwrite the plist/cron/Task, and self-heal:
# macOS
bash scripts/install_automation.sh
# Linux
bash scripts/install_automation_linux.sh
# Windows PowerShell
.\scripts\install_automation.ps1Commits
- 5fde5e9 fix(runner): add future annotations for older Python fallback
- ef0254f fix(install): pin absolute Python 3.10+ interpreter in scheduled tasks
- c140565 docs(readme): require Python 3.10+ (was 3.9)
Full changelog: cfec8c1...v0.1.1