Commit graph

10 commits

Author SHA1 Message Date
rcourtman
eab73d2453 Fix PBS backup identity matching 2026-06-03 11:43:20 +01:00
rcourtman
bd62b6d8ad add VerifyIntent rollup substrate
Extend ProtectionRollup with a tri-state VerifyIntent (verified / stale /
unknown) plus LastVerifiedAt, derived at read-time from the existing
recovery_points.verified column. Stale means: a successful backup exists
but no verification-bearing point has landed within
BackupVerifyStaleWindow (7d, package-level constant for the MVP). Both
fields are omitempty so existing rollup snapshot consumers see no shape
change until they opt into the verify loop.

The SQL ListRollups path projects verified into the filtered CTE and
folds MAX(CASE WHEN verified=1 THEN ts_ms END) into the per-subject
aggregate. The in-memory BuildRollupsFromPoints mirrors the same logic
via the new ComputeVerifyIntentAt helper so mock mode and the persisted
store agree.
2026-05-12 22:23:55 +01:00
rcourtman
a9967c3e69 fix(recovery): preserve canonical pbs guest continuity 2026-03-29 11:38:35 +01:00
rcourtman
4782186bd6 refactor(recovery): improve scan-first recovery identity 2026-03-28 00:45:17 +00:00
rcourtman
8a240f8312 fix(recovery): prefer canonical item names over raw ids 2026-03-28 00:04:12 +00:00
rcourtman
c49b599739 fix(recovery): migrate legacy point schema before indexing 2026-03-27 09:21:28 +00:00
rcourtman
2c3cf7d6b2 fix(recovery): tolerate malformed persisted metadata 2026-03-26 22:39:59 +00:00
rcourtman
ce3511568d feat(recovery): add canonical item type filtering 2026-03-26 01:28:53 +00:00
rcourtman
ce9900218e Normalize recovery subject labels across rollups 2026-03-24 19:46:00 +00:00
rcourtman
778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00