diff --git a/CHANGELOG.md b/CHANGELOG.md index b0af0b8..962fe23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +## [1.6.0] - 2026-08-11 + +### Fixed +- A restart mid-task no longer unschedules that task forever. An execution row left + `running` excluded its task from every future minute, silently; startup now releases them. +- Timeouts are recorded as `timeout` instead of a generic failure. The status existed but was + unreachable, so all 18,785 executions since December contain zero of them. + +### Added +- `orphaned` execution status — an execution whose process died, whose outcome is unknown. + Distinct from `failed`, which asserts the work did not succeed. + ## [1.5.1] - 2026-08-11 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index c30668e..f858917 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,7 +9,7 @@ It is the homelab's cron. Recurring work belongs here rather than in a systemd t ## Live contract -`http://localhost:8090/openapi.json` — 10 paths, `version: 1.4.0` (verified 2026-08-09). Human +`http://localhost:8090/openapi.json` — 10 paths, `version: 1.6.0` (verified 2026-08-11). Human docs at `/docs`. Generated from running code, so read it instead of inferring routes. **Every route except `/health` requires `Authorization: Bearer $SCHEDULER_API_KEY`.** An diff --git a/pyproject.toml b/pyproject.toml index fc1deff..509f98a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "the-scheduler" -version = "1.5.1" +version = "1.6.0" description = "System-wide maintenance orchestration - backups, doc mirroring, cleanup, task automation" readme = "README.md" requires-python = ">=3.12"