Skip to content

Keep historical backup bindings stable across validation heartbeats #5793

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Description

The historical backup observation reached its native repository read, then refused the result because its deployment binding changed. The binding currently hashes entire API responses, including resource versions and regularly updated validation status. These can change while the repository, credentials and object identities remain the same.

Steps to Reproduce

  1. Bind a healthy backup location, repository and their credentials.
  2. Read repository metadata while the backup controller updates its validation status.
  3. Rebind the same deployment and observe the whole-response digest reject it.

Expected Behavior

The observation requires unchanged object identity, repository scope, usable state and credentials. Routine API bookkeeping alone should not invalidate those facts.

Actual Behavior

The protected observation held at deployment-changed and accepted no preservation result.

Acceptance Criteria

  • Reproduce rejection from bookkeeping changes with a failing test.
  • Bind the complete validated identity, scope, state and credentials without volatile bookkeeping.
  • Continue rejecting replaced objects, changed credentials, changed repository scope and unusable states.
  • Verify a complete native observation after protected deployment; metadata does not establish recoverability or authorize a reset.

Part of #5582

Activity

  1. self-assigned this
    on Nov 2, 2026
  2. added theissue type on Nov 2, 2026
  3. moved this to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Nov 2, 2026
  4. added 2 commits that reference this issue on Nov 2, 2026
  5. devantler commented on Nov 8, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Verified on 8 November 2026. All four acceptance criteria now hold, so this issue can close.

    • Criteria 1–3. fix(storage): bind historical backups across validation heartbeats #5794 merged on 3 November at 03:23Z as cedb56d. It adds a failing-first regression for routine controller updates. The binding now covers each object's identity, repository scope, ready state and credentials, and no longer compares resource versions. It still rejects a replaced object, a missing resource version, a changed credential and a changed scope. Credentials are compared only in memory.
    • Criterion 4: a complete native observation after the protected merge. Before the fix, dispatch 41547568512, at defc685, stopped at stage=deployment-changed. After the fix, dispatch 41573561049 ran on main at 55c8c37, which includes cedb56d. Both jobs passed, and it produced a complete metadata-only catalogue for both repositories (wedding-app and actual-budget) with no hold.

    As the criterion says, this result covers metadata only. It does not prove that any backup can be recovered, and it does not authorize a reset. The incompleteMetadata count that run reported for one repository belongs to the migration work in #5582, not to this binding issue.

  6. moved this from 🏃🏻‍♂️ In Progress to ✅ Done in 🌊 Project Boardon Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions