diff --git a/containers/backupchecks/src/backend/app/changelog.py b/containers/backupchecks/src/backend/app/changelog.py index 3524256..5d8a63a 100644 --- a/containers/backupchecks/src/backend/app/changelog.py +++ b/containers/backupchecks/src/backend/app/changelog.py @@ -3,6 +3,60 @@ Changelog data structure for Backupchecks """ CHANGELOG = [ + { + "version": "v0.2.1", + "date": "2026-03-20", + "summary": "Patch release with inbox improvements, bug fixes for missed run detection, objects sorting, and the inbox sidebar badge.", + "sections": [ + { + "title": "Added", + "type": "feature", + "subsections": [ + { + "subtitle": "Inbox", + "changes": [ + "Re-parse all now shows a live progress modal with a progress bar instead of blocking the browser; a new batch endpoint processes 50 messages at a time and the browser loops automatically until all messages are done, showing parsed / auto-approved / no match / errors stats in real time" + ] + }, + { + "subtitle": "Jobs export/import", + "changes": [ + "Export schema bumped to v2: each job entry now includes the linked Cove account and Cloud Connect account objects", + "Import accepts both v1 and v2 files and automatically re-links Cove and Cloud Connect accounts on import if not already linked to a different job" + ] + } + ] + }, + { + "title": "Fixed", + "type": "bugfix", + "subsections": [ + { + "subtitle": "Missed run detection", + "changes": [ + "Weekly inference now only looks at the last 90 days so old time slots are forgotten within 3 months after a schedule change", + "Monthly jobs that accumulated enough weekly hits no longer trigger daily missed runs; a cadence guard (median gap >= 20 days) routes them to monthly inference instead", + "Monthly inference limited to the last 180 days so schedule changes are reflected within 6 months", + "MIN_OCCURRENCES for weekly inference raised from 3 to 5 to reduce false positives during transitional periods" + ] + }, + { + "subtitle": "Run Checks and Job Detail modals", + "changes": [ + "Objects list sort order: Warning items with a non-empty error_message were ranked as Critical instead of Warning; fixed so only error/failed/failure status triggers the Critical rank", + "Mail iframe height in Run Checks modal no longer collapses to near-zero; flex rules moved to the correct wrapper element" + ] + }, + { + "subtitle": "Inbox", + "changes": [ + "Inbox badge in the sidebar now stays visible on all pages, not only the dashboard" + ] + } + ] + } + ] + }, { "version": "v0.2.0", "date": "2026-03-20", diff --git a/docs/changelog.md b/docs/changelog.md index 967429b..c19b7a2 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,19 @@ +## v0.2.1 + +### Added +- **Inbox: Re-parse all progress indicator** — "Re-parse all" now opens a progress modal with a live progress bar instead of blocking the browser; a new `POST /inbox/reparse-batch` endpoint processes 50 messages per call (8 s time budget) and the browser loops automatically until all messages are done, showing parsed / auto-approved / no match / errors stats in real time +- **Jobs export/import: Cove and Cloud Connect account links** — export schema bumped to `v2`; each job entry now includes the linked `cove_account` and `cloud_connect_account` objects; import accepts both `v1` and `v2` files and automatically re-links accounts on import (by `account_id` / `user+section+repo_name`) if not already linked to a different job + +### Fixed +- **Missed run false positives** — stale schedule inference caused jobs to be marked missed after a schedule change or after long operation: + - Weekly inference now only looks at the last 90 days, so old time slots are forgotten within 3 months + - Monthly jobs that accumulated enough weekly hits (after ~21 months) no longer trigger daily missed runs; a cadence guard (median gap ≥ 20 days) routes them to monthly inference instead + - Monthly inference limited to the last 180 days so schedule changes are reflected within 6 months + - `MIN_OCCURRENCES` for weekly inference raised from 3 → 5 to reduce false positives during transitional periods +- **Objects list sort order in Run Checks and Job Detail modals** — items with a warning status and a non-empty `error_message` were ranked as Critical instead of Warning; fixed so only `error`/`failed`/`failure` status triggers rank 0 +- **Mail iframe height in Run Checks modal** — iframe collapsed to near-zero height due to missing flex rules on the wrapping element; fixed by moving `flex: 1 1 auto; min-height: 0` to `#rcm_mail_iframe_body` and setting `height: 100%` on the iframe itself +- **Inbox badge disappearing on non-dashboard pages** — `inbox_count` was only injected in the dashboard route; fixed by adding a Flask `context_processor` that injects it globally for all authenticated requests + ## v0.2.0 This release is a significant update since `v0.1.27` (released on February 23, 2026).