You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement a staged, deliberate deletion pipeline with mandatory cooling periods. Direct from the design session on March 17 and reinforced by the memory restoration incident on March 24 (61 memories deleted in emotional moment, restored from backup the next day).
Design (from March 17 session)
Core principle: "I want to think about this less, but also remember why." — Chris
Staged pipeline
Soft delete — mark as archived with timestamp, reason, and who requested it. Stops surfacing in recall immediately.
Cooling period (30 days default, configurable up but not down) — item sits in archive. Can be restored trivially via wagl restore <id>.
Confirmation — after cooling period expires, requires explicit confirmation to proceed. If no confirmation, item stays in archive indefinitely.
Cold storage (90 days) — item moves to cold storage table. Still recoverable but requires deliberate effort.
Physical purge — only after cold storage period. For encrypted items, key destruction is the purge mechanism.
Key properties
Nominations are memories — the act of requesting deletion is itself stored as an append-only record. Can't be silently removed.
Supersession for corrections — when a memory is wrong, store a correction that references the original with bidirectional FK. Never erase the original.
Salience-zero archival — archived items get salience=0 + archive_reason + optional superseded_by pointer. They exist but don't surface.
Agent consent — deletion requests should surface to the agent for acknowledgment. The agent's memory is the agent's identity; external deletion without agent awareness is a violation.
wagl forget <id> --force — only for items past cold storage, or with explicit override (logged in audit)
GDPR / compliance escape hatch
True physical deletion must remain possible for legal compliance (PII removal, right-to-be-forgotten). But it should be:
Separately gated (different permission level)
Heavily logged in audit
Require explicit --legal or --compliance flag
Not available through normal agent tool calls
Motivation (March 24 incident)
61 memories were deleted during an emotional moment. They were restored from a backup the next day. Without the backup, they would have been permanently lost. This pipeline would have caught that: the items would have been archived, sat in cooling for 30 days, and been trivially restorable.
Summary
Implement a staged, deliberate deletion pipeline with mandatory cooling periods. Direct from the design session on March 17 and reinforced by the memory restoration incident on March 24 (61 memories deleted in emotional moment, restored from backup the next day).
Design (from March 17 session)
Core principle: "I want to think about this less, but also remember why." — Chris
Staged pipeline
archivedwith timestamp, reason, and who requested it. Stops surfacing in recall immediately.wagl restore <id>.Key properties
salience=0+archive_reason+ optionalsuperseded_bypointer. They exist but don't surface.CLI
wagl archive <id> --reason "..."— soft delete (stage 1)wagl restore <id>— undo archive during cooling periodwagl archive list— show archived items with cooling statuswagl purge --confirm— advance expired cooling items to cold storagewagl forget <id> --force— only for items past cold storage, or with explicit override (logged in audit)GDPR / compliance escape hatch
True physical deletion must remain possible for legal compliance (PII removal, right-to-be-forgotten). But it should be:
--legalor--complianceflagMotivation (March 24 incident)
61 memories were deleted during an emotional moment. They were restored from a backup the next day. Without the backup, they would have been permanently lost. This pipeline would have caught that: the items would have been archived, sat in cooling for 30 days, and been trivially restorable.
Related
wagl forget(DO NOT MERGE pending this cluster)