v2.0.18 - Scheduler engine coordination
Scheduler: GUI and headless now coordinate
If you run the desktop/GUI app and the headless Docker scheduler against the same /config, they used to both fire cron jobs - so every scheduled job ran twice. This release fixes that with a clean editor/engine split.
What changed
- No more double runs. When the headless scheduler is up it claims the "engine" role via a small heartbeat file in the shared config. Any GUI sharing that config defers all automatic runs to the engine.
- GUI is your editor and dashboard. Schedule changes you make in the GUI are picked up by the engine within ~30s, with no restart - jobs re-read their config at fire time.
- Run now is always local. Manual runs from the GUI run on demand regardless of the engine.
- Status banner. The Scheduler tab shows a banner when a 24/7 engine is handling the jobs, so you always know what is firing them.
- Desktop installs are unchanged. The heartbeat file is never created on a standalone desktop install, so single-app behaviour is exactly as before.
Notes
- Docker README updated to explain the editor/engine model and the "they won't trip over each other" guarantee.
Full changelog: v2.0.17...v2.0.18