Skip to content

Release the verified fresh Email recovery copy safely #6041

Description

@devantler

🤖 Generated by the Agentic Engineer

The fresh Email restore has passed its reviewed read-only comparison. Its isolated test storage remains allocated until a separately reviewed cleanup verifies the same result and observes storage release.

Acceptance criteria

  • Recheck the fresh restored diagnostic against serving Email immediately before cleanup, using the completed recovery run and its unchanged resource identities.
  • Require the original backup to remain valid throughout cleanup. Preserve the earlier retained recovery copy and its existing disposal gate.
  • Remove only the verified fresh test copy. Confirm its storage has actually disappeared before removing its corresponding test key or reporting released capacity.
  • Refuse changed, incomplete, expired or ambiguous evidence and uncertain cleanup outcomes. Keep private recovery details out of logs.
  • Complete affected tests, review, protected delivery and the live cleanup with an observed terminal result.

Part of #5578. The source mailbox, retained backups, serving storage and mail routing remain protected by their existing gates.

Activity

  1. coderabbitai commented on Nov 11, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #5586 - feat(email): verify live mailbox backup recovery [merged]
    #5839 - fix(email): verify and dispose the retained recovery copy [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. self-assigned this
    on Nov 11, 2026
  3. moved this to 📥 Backlog in 🌊 Project Boardon Nov 11, 2026
  4. moved this from 📥 Backlog to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Nov 11, 2026
  5. added 3 commits that reference this issue on Nov 11, 2026
  6. devantler commented on Nov 11, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The protection-validity condition required by the confirmed cleanup is no longer met. The recovery reader and its persistent data are preserved; no cleanup or capacity release has occurred. The delivery remains unfinished, and #6042 is explicitly parked rather than promoted or dispatched with expired evidence.

    I am assessing a separate protection operation for the existing retained data and its correct recovery inputs, with independent native verification and durable custody using existing capacity. The current disposal refusal must remain unchanged; a replacement backup must not be silently substituted into its old witness. That design needs qualification and review before implementation or deletion. The reversible reader lifecycle in #6048 remains separate, and neither path grants another scratch allocation.

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

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions