release v1.5.1
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:
+10
-19
@@ -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
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user