Harden backup integrity and restore workflows #9

Merged
kleb merged 6 commits from feature/audit-hardening into main 2026-08-09 19:04:15 +02:00
Owner

Summary

  • harden prune, CBT capture, restore preflight, and rescue target identity invariants
  • bound write verification, retry listing, image pipelines, and snapshot/tree pagination
  • add crash-durable state updates, readiness telemetry, durable restore warnings, and cache invalidation
  • complete multi-volume image restore, TUI maintenance, run pagination, and web/CLI usability flows

Verification

  • go test -count=1 ./...
  • go vet ./...
  • go build ./...
  • go build -tags webdist ./cmd/kbackupd
  • selected Go race suites for durability, retry, run history, scheduling, and restore
  • npm --prefix web run check (58 tests)
  • npm --prefix web run build
  • npm --prefix web run e2e (15/15)
  • pinned Go and TypeScript protobuf regeneration
  • Windows-native and Debian restore/durability test suites
  • gofmt and git diff --check

Notes

  • Existing repository formats remain compatible; new persisted-state behavior is crash-durable and fail-closed.
  • The pre-existing local data/ directory was not included.
  • Repository key rotation, automatic destructive retention policy, maintenance notifications, and a durable snapshot catalog remain separate product/design work.
## Summary - harden prune, CBT capture, restore preflight, and rescue target identity invariants - bound write verification, retry listing, image pipelines, and snapshot/tree pagination - add crash-durable state updates, readiness telemetry, durable restore warnings, and cache invalidation - complete multi-volume image restore, TUI maintenance, run pagination, and web/CLI usability flows ## Verification - `go test -count=1 ./...` - `go vet ./...` - `go build ./...` - `go build -tags webdist ./cmd/kbackupd` - selected Go race suites for durability, retry, run history, scheduling, and restore - `npm --prefix web run check` (58 tests) - `npm --prefix web run build` - `npm --prefix web run e2e` (15/15) - pinned Go and TypeScript protobuf regeneration - Windows-native and Debian restore/durability test suites - `gofmt` and `git diff --check` ## Notes - Existing repository formats remain compatible; new persisted-state behavior is crash-durable and fail-closed. - The pre-existing local `data/` directory was not included. - Repository key rotation, automatic destructive retention policy, maintenance notifications, and a durable snapshot catalog remain separate product/design work.
Collaborator

kReview review

Verdict: no findings

No findings to address in the reviewed diff.

No findings to address across the reviewed diff.

Excluded as generated or vendored (not reviewed): build/windows/Build-WinPE.ps1, build/windows/README.md.

Reviewed by kReview at 9f2bceeaa3. This comment is conservative and based only on the PR diff, metadata, and supplied repository context.

Est. cost ~$44.03 total (16.7M in / 64.6k out) · this run ~$4.63 (2.6M in / 6.9k out) / gpt-5.6-sol.

<!-- codex-forgejo-review --> <!-- codex-forgejo-review-head:9f2bceeaa3d1bfc1e22fccd5d2f82d244ddd2e74 --> ## kReview review **Verdict:** no findings No findings to address in the reviewed diff. No findings to address across the reviewed diff. _Excluded as generated or vendored (not reviewed):_ `build/windows/Build-WinPE.ps1`, `build/windows/README.md`. _Reviewed by kReview at `9f2bceeaa3`. This comment is conservative and based only on the PR diff, metadata, and supplied repository context._ _Est. cost ~$44.03 total (16.7M in / 64.6k out) · this run ~$4.63 (2.6M in / 6.9k out) / gpt-5.6-sol._ <!-- codex-forgejo-review-state:eyJoZWFkU2hhIjoiOWYyYmNlZWFhM2QxYmZjMWUyMmZjY2Q1ZDJmODJkMjQ0ZGRkMmU3NCIsInN1bW1hcnkiOiJObyBmaW5kaW5ncyB0byBhZGRyZXNzIGFjcm9zcyB0aGUgcmV2aWV3ZWQgZGlmZi4iLCJmaW5kaW5ncyI6W10sImN1bXVsYXRpdmVDb3N0Ijp7InVzZCI6NDQuMDI1OTM1MDAwMDAwMDA0LCJpbnB1dFRva2VucyI6MTY2NTg1MDIsIm91dHB1dFRva2VucyI6NjQ1NzIsIm1vZGVsIjoiZ3B0LTUuNi1zb2wifX0= -->
kleb merged commit 7a3f62decf into main 2026-08-09 19:04:15 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kleb/kBackup!9
No description provided.