Skip to content

[M6-09] Qualify backup, restore, upgrade, configuration, and process #143

Description

@vicotrbb

Release 1 source: #1. The master specification is referenced, not modified by this ticket.

Execution signal: ready-for-agent means this issue is implementation-ready once every native GitHub blocker below is closed.

Outcome

Execute exact local and external Repository identity/CAS/multipart/checksum/interruption/throttle/purge cells, online incremental backup, key recovery, fresh restore, query validation, patch/minor/format upgrades, every failure phase, configuration parity/reload/migration/drift, and native/systemd/Docker/Kubernetes lifecycle.

Scope and semantic ownership

  • Milestone: M6
  • Global sequence: 142 / 149
  • Semantic owner: Recovery and Lifecycle
  • Highest useful behavior seam: Qualify backup, restore, upgrade, configuration, and process
  • Affected registered scopes: positron-backup
  • Expected project size / estimate: XL / 13
  • Completion status rule: An exact cell may become Qualified only when the frozen candidate passes the complete real-target gate and immutable evidence is retained. Any failed, missing, stale, unsupported, inconclusive, or exceptional required cell remains release-blocking.

No weaker document, implementation convenience, partial target, emulator, local diagnostic, or green subset may reinterpret the binding contract.

Native blockers

The native blocked-by graph is authoritative for execution order. Do not start implementation while a blocker is open, while an affected scope remains unlawfully scaffold-only, or while a required decision/review is missing.

Binding product and architecture references

Accepted ADRs

If implementation would change caller knowledge, semantic ownership, a public or durable format, compatibility, a non-waivable invariant, or Release 1 scope, stop and land the required accepted superseding ADR together with its contract, migration, tests, and gates.

Engineering invariants and gates

Do not weaken, skip, rename, path-filter, delete, reclassify, or silently bypass a gate, target, threshold, owner, test, corpus, fixture, hook, workflow, or evidence field.

Affected Qualification Cells

  • Q-BACKUP-001
  • Q-BACKUP-002
  • Q-UPGRADE-001
  • Q-TENANT-001
  • Q-CONFIG-001
  • Q-PROCESS-001

Each cell remains independently reportable. A passing child cannot hide a failed, unsupported, missing, unresolved, or inconclusive sibling.

Required implementation contract

  • Deliver the outcome exactly as stated above, through the named semantic owner and highest useful behavior seam.
  • Represent backup, restore, purge, and long recovery work as restartable Durable Operations with explicit irreversible boundaries.
  • Create verified incremental full-instance snapshots online and restore only into fresh storage.
  • Bind manifests, objects, keys, repository identity, signatures, audit, and Purge Tombstones.
  • Preserve interruption, cancellation, retry, retention, provider failure, and recovery truth.
  • If any affected code or artifact scope is still scaffold, activate it atomically with its owner, exact edges, risk gates, test commands, measured coverage/mutation baselines, and required threat model or format/API decision before adding behavior.
  • Preserve the registered acyclic dependency graph and keep provider/protocol/distribution types behind their adapters.
  • Return closed typed outcomes with safe details, retry class, completion state, and source context. Never use strings for control flow.
  • Declare every externally reachable input, work, memory, allocation, copy, I/O, task, queue, cache, lease, retry, and latency bound plus overload behavior.
  • Add no dependency without the complete review required by CONTRIBUTING.md.
  • Keep generated output generated and prove clean deterministic regeneration.
  • Update user/operator compatibility, migration, failure, recovery, and release-note documentation where behavior is visible.

Required tests

  • Snapshot consistency, incremental reuse, interruption, cancellation, crash, restart, retention, key recovery, signature, and registry recovery.
  • Fresh-target restore with empty-target proof, wrong identity, missing key/object, corruption, purge tombstone, and query validation.
  • Exact real-repository target tests; emulators may accelerate development but cannot qualify.
  • Include positive, boundary, negative, and adversarial cases at the lowest interface that proves the contract.
  • Assert returned outcomes, durable externally readable state, published artifacts, or public behavior—not private fields, helper calls, queue layout, or incidental ordering.
  • Keep tests hermetic, deterministic, parallel-safe, bounded, and retain seeds, clocks, entropy, schedules, fault plans, fixtures, and minimized failures.
  • A reproducible defect fix begins with a failing regression test and retains the reproducer.
  • Run all scope-selected unit, compile-fail, contract, property, integration, end-to-end, compatibility, platform, real-target, fuzz, model, fault, sanitizer, and soak suites that apply.

Evidence and completion

  • Run the authoritative cargo xtask quality profile required by the change and retain its exact revision-bound evidence.
  • Record exact source revision, artifact digests, target/environment, configuration, fixtures, dataset/workload, fault schedule, toolchain, command, duration, raw measurements, safe logs/metrics, result, owner, and verifier as applicable.
  • Retain passing, failing, inconclusive, exceptional, timeout, cancellation, and missing-tool attempts. A later pass must not erase a failure.
  • Verify no panic/unwrap/expect, unchecked indexing, ignored result, detached task, unbounded resource, ambient authority, prohibited unsafe code, secret leak, or hidden best-effort path was introduced.
  • Verify the working tree and generated artifacts are clean after the authoritative runner.
  • Do not close this issue from an ad hoc command, mock-only proof, emulator-only proof, local dirty evidence, or partial Qualification Cell.

Explicit non-goals

  • No continuous PITR, selective-tenant restore, individual-record recovery, merge restore, or in-place restore.
  • No CSI VolumeSnapshot treated as a Positron Backup Snapshot.
  • No Release 1 Metrics or Profiles implementation.
  • No replication, consensus, HA, automatic failover, follower reads, clustering, or live shard split/merge.
  • No hidden feature flags, placeholder APIs, empty adapters, speculative modules, or disabled deferred behavior.

Agent handoff checklist

  • Re-read the referenced contracts and ADRs before changing code.
  • Identify the exact semantic owner, caller-visible seam, durable publication owner, and affected Qualification Cells in the implementation PR.
  • Explain the lifecycle and failure boundaries before editing.
  • Keep implementation, qualification, publication, deployment, and release as separate states and authorizations.
  • Leave an evidence-backed status if blocked; never fabricate Implemented, Qualified, or merge eligibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:backupBackup, restore, and Tenant Purgekind:qualificationExact-artifact target qualification workphase:M6M6 Release Qualificationready-for-agentReady for implementation by an agentrelease:1Required for Positron Release 1

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions