release v1.5.1
Build and Push / release (push) Successful in 2s
Build and Push / build (push) Successful in 1m14s

Also collapses a duplicated changelog section. A second "## [Unreleased]"
heading has existed at the foot of the file since 2026-08-07, above the
roadmap list -- and because it matched first, my own v1.5.0 and T-69 commits
wrote their entries into both copies. The roadmap is now "## Planned", which is
what it always was, so the two cannot collide again.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-11 11:35:29 +02:00
co-authored by Claude
parent b62024b21d
commit d91d0f2c63
2 changed files with 11 additions and 20 deletions
+10 -19
View File
@@ -6,11 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] ## [Unreleased]
## [1.5.1] - 2026-08-11
### Fixed ### Fixed
- Backups no longer freeze the API. The config backup ran its ~21 minutes of tarring on the
event loop, so the whole service was unreachable 03:05-03:25 nightly; it now runs in a
worker thread. Health reports moved off the loop too.
- The health report's permission diagnostic prints the database's own message instead of - The health report's permission diagnostic prints the database's own message instead of
asserting a cause. It claimed the user lacked INSERT on `check_history` when that grant was asserting a cause. It claimed the user lacked INSERT on `check_history` when that grant was
present and the missing one was USAGE on the sequence behind its serial id. present and the missing one was USAGE on the sequence behind its serial id.
### Notes
- Requires `GRANT USAGE ON SEQUENCE check_history_id_seq TO scheduler_user`, applied
2026-08-11. The table grant alone does not permit the insert.
## [1.5.0] - 2026-08-11 ## [1.5.0] - 2026-08-11
### Added ### Added
@@ -285,25 +294,7 @@ config_backup_executor.py 50% 📈
TOTAL 80% 🎯 TOTAL 80% 🎯
``` ```
## [Unreleased] ## Planned
### Fixed
- The health report's permission diagnostic prints the database's own message instead of
asserting a cause. It claimed the user lacked INSERT on `check_history` when that grant was
present and the missing one was USAGE on the sequence behind its serial id.
## [1.5.0] - 2026-08-11
### Added
- Backup executors report their own outcome to the homelab health record — one row in
`check_history` per run, success or failure. Replaces a monitor that inferred backup health
from file age and could not tell a failed backup from one that had not run yet.
### Notes
- Requires `GRANT INSERT ON check_history TO scheduler_user` in the `sysmon` database, applied
2026-08-11. Without it the report is refused, logged, and skipped; the backup itself is unaffected.
### Planned
- Redis integration for distributed locking - Redis integration for distributed locking
- Webhook notifications for task completion - Webhook notifications for task completion
- Task dependencies (run task B after task A succeeds) - Task dependencies (run task B after task A succeeds)
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "the-scheduler" name = "the-scheduler"
version = "1.5.0" version = "1.5.1"
description = "System-wide maintenance orchestration - backups, doc mirroring, cleanup, task automation" description = "System-wide maintenance orchestration - backups, doc mirroring, cleanup, task automation"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"