ADR 031 Permanent Removed Registration Purge - joeroberts/release-radar GitHub Wiki
- ID: ADR-031
- Status: Accepted
- Date: 2026-10-18
- Date meaning: Owner decision recorded October 18, 2026; not an ADR publication date.
- Implementation: Implementation and verification are tracked in issue #282.
- Approval qualification: Owner approved the exact decision paragraph and recording a new accepted ADR for issue #282; implementation, owner-state purge and delivery remain separately bounded.
Decision
Release Radar supports an explicit owner-confirmed permanent purge of one exact removed project registration, separate from Archive and Remove from Tracking. Purge deletes that registration’s associated retained application records, including identifying audit history, command receipts, and RR-owned execution metadata. Database deletion is atomic; safe coordination with exact-registration metadata removal must preserve recoverability and must not report completion while identifying app-owned records remain. Active or unresolved worker resources block purge with an actionable explanation. Stale or repeated requests cannot affect another registration. The database transaction records one non-identifying audit event stating that a permanent purge completed. This is an explicit exception to ADR-021’s project and registration identity requirement. It contains no project name or ID, registration identity or generation, removal ID, repository/root path, ticket or phase identity, source thread/session identity, copied payload, identifying counts, digest, or other linkage to the purged records. No identifying tombstone, purge receipt, or equivalent replacement record remains. Ordinary delivery mutations retain existing audit requirements. Archive and Remove from Tracking retain history-preserving behavior. Other registrations, repository/worktree files, Git data and external services remain unchanged. Existing backups and exports are outside the purge boundary and may restore previously purged history; forensic secure erasure is not claimed.