Fixes
- Updater now ensures the scheduler cron exists (#371). Previously it only added the overlap guard to an existing crontab entry — an install whose scheduler cron went missing (or lived in a stray
/etc/cron.dfile) was left with no scheduler at all. The updater installs the flock-guarded entry in www-data's crontab whenever it's missing, removes a stray bare-metal/etc/cron.d/bbs-scheduler(that file is Docker-only and carries container paths that break bare metal), and creates/var/bbs/tmp. - S3 sync reports a clear error instead of a PHP fatal when the temp directory is unusable (e.g.
TMPDIRpointing at a directory that doesn't exist) (#371).