Fix Run Checks remark network error and prepare v0.2.5 changelog
This commit is contained in:
parent
e33fc22cf0
commit
d095a23944
@ -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",
|
||||||
|
|||||||
@ -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():
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user