Skip to content

v0.3.3 — automation hotfix

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 04 Jul 17:45

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.executable to 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 annotations so 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.ps1

Commits

  • 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