Fix Run Checks remark network error and prepare v0.2.5 changelog

This commit is contained in:
Ivo Oskamp 2026-04-13 15:42:50 +02:00
parent e33fc22cf0
commit d095a23944
4 changed files with 75 additions and 5 deletions

View File

@ -3,6 +3,47 @@ Changelog data structure for Backupchecks
""" """
CHANGELOG = [ CHANGELOG = [
{
"version": "v0.2.5",
"date": "2026-04-13",
"summary": "Consolidated release since v0.2.4 with manual schedule overrides, Autotask/remark synchronization improvements, Run Checks stability fixes, and refreshed operational documentation.",
"sections": [
{
"title": "Added",
"type": "feature",
"changes": [
"Manual schedule override support in Job Details (daily/weekly/monthly) with save/clear endpoint POST /jobs/<job_id>/schedule",
"Job Details now shows First backup detected based on earliest non-missed run",
"Remarks now support source and ticket_id metadata with migration and indexes",
"Autotask resolution text can be mirrored to active internal remarks with source=autotask_resolution and deduplication",
"Documentation Integrations section added with dedicated Cove Data Protection and Veeam Cloud Connect pages"
]
},
{
"title": "Changed",
"type": "improvement",
"changes": [
"Effective schedule resolution is now manual-first across Daily Jobs, Dashboard, Search, Job Details, and Run Checks missed-run generation",
"Missed-run grace window increased from +/- 1 hour to +/- 3 hours in Run Checks and Daily Jobs",
"Schedule inference now also includes Cove API runs (source_type=cove_api) in addition to mail-based runs",
"Run Checks now suppresses repeated Cove runs on the same local day after the first complete success run for that job/day",
"Ticket API active-state logic now uses effective status from both ticket-level and scope-level resolution",
"Settings/Autotask documentation pages were rewritten from placeholder content to current operational guidance"
]
},
{
"title": "Fixed",
"type": "bugfix",
"changes": [
"Run Checks modal mail visibility no longer remains hidden after navigating from Cove runs",
"Run Checks modal responsive behavior improved for smaller viewports so scrolling/content access remains usable",
"Run Checks Link existing Autotask ticket supports cross-company shared/umbrella tickets while preserving validation checks",
"Ticket copy action in Run Checks and Job Detail hardened with improved click handling and clipboard fallback",
"Autotask unresolved-ticket propagation to new runs fixed for edge cases where internal open-ticket rows are temporarily absent"
]
}
]
},
{ {
"version": "v0.2.4", "version": "v0.2.4",
"date": "2026-03-26", "date": "2026-03-26",

View File

@ -193,9 +193,6 @@ def link_open_internal_tickets_to_run(*, run: JobRun, job: Job) -> None:
except Exception: except Exception:
rows = [] rows = []
if not rows:
return
# Link all open tickets to this run (idempotent) # Link all open tickets to this run (idempotent)
for tid, code, t_resolved, ts_resolved in rows: for tid, code, t_resolved, ts_resolved in rows:
if not TicketJobRun.query.filter_by(ticket_id=int(tid), job_run_id=int(run.id)).first(): if not TicketJobRun.query.filter_by(ticket_id=int(tid), job_run_id=int(run.id)).first():

View File

@ -892,10 +892,16 @@ table.addEventListener('change', function (e) {
opts = opts || {}; opts = opts || {};
opts.headers = opts.headers || {}; opts.headers = opts.headers || {};
opts.headers['Content-Type'] = 'application/json'; opts.headers['Content-Type'] = 'application/json';
opts.headers['X-Requested-With'] = 'XMLHttpRequest';
if (!opts.credentials) opts.credentials = 'same-origin';
return fetch(url, opts).then(function (r) { return fetch(url, opts).then(function (r) {
return r.json().then(function (j) { return r.text().then(function (txt) {
var j = null;
try { j = txt ? JSON.parse(txt) : null; } catch (_) { j = null; }
if (!r.ok || !j || j.status !== 'ok') { if (!r.ok || !j || j.status !== 'ok') {
var msg = (j && j.message) ? j.message : ('Request failed (' + r.status + ')'); var msg = (j && j.message)
? j.message
: ((txt && txt.trim()) ? txt.trim() : ('Request failed (' + r.status + ')'));
throw new Error(msg); throw new Error(msg);
} }
return j; return j;

View File

@ -1,3 +1,29 @@
## v0.2.5
This release bundles all changes made since `v0.2.4`, including schedule management improvements, Autotask/remark synchronization, Run Checks stability updates, and a full documentation refresh.
### Added
- **Manual schedule overrides per job** — Job Details now supports saving and clearing manual schedules (`Daily`, `Weekly`, `Monthly`) via `POST /jobs/<job_id>/schedule`.
- **First backup detected in Job Details** — shows the earliest non-missed run timestamp for operational context.
- **Autotask resolution remark metadata** — remarks now support `source` and optional `ticket_id`, with migration and indexes.
- **Autotask resolution mirroring** — PSA ticket resolution text can be mirrored into internal active remarks (`source=autotask_resolution`) with deduplication.
- **Documentation Integrations section** — added dedicated pages for Cove Data Protection and Veeam Cloud Connect.
### Changed
- **Effective schedule resolution (manual-first)** — Daily Jobs, Dashboard, Search, Job Details and Run Checks missed-run logic now use effective schedule resolution (`manual` override first, inferred fallback).
- **Missed-run grace window widened** — tolerance changed from `±1 hour` to `±3 hours` in Daily Jobs and Run Checks.
- **Schedule inference coverage** — inference now also considers Cove API runs (`source_type='cove_api'`) next to mail-based runs.
- **Run Checks Cove deduplication in-day** — once a complete Cove success run is detected for a job/day, newer runs that day are suppressed in Run Checks overview/modal.
- **Tickets API active-state semantics** — effective active state now considers both ticket-level and scope-level resolution.
- **Documentation refresh** — Settings and Autotask documentation pages were replaced with current operational guidance; outdated TODO audit/Cove documents were archived.
### Fixed
- **Run Checks modal mail visibility** — navigating from Cove runs no longer leaves regular mail runs hidden.
- **Run Checks responsive behavior on smaller screens** — modal layout/scroll behavior improved so content and footer remain reachable.
- **Autotask link-existing cross-company support** — shared/umbrella tickets can be linked across companies while terminal/incomplete validations remain enforced.
- **Ticket copy action robustness** — click/copy handling improved in Run Checks and Job Details.
- **Autotask propagation to new runs** — fixed a propagation path where an open Autotask ticket could disappear on a next-day run if internal open-ticket rows were temporarily absent; unresolved ticket links are now propagated consistently.
## v0.2.4 ## v0.2.4
### Fixed ### Fixed