forget
Permanently delete specified memories or text matches, with optional dry-run preview and full audit logging for erasure requests.
Instructions
TRULY DELETE memories — the one op that removes content (everything else is append-only: supersession
only demotes). Use for an erasure / right-to-be-forgotten request, a poisoned or false memory, or a hard
correction. Pass ids (memory ids to drop) and/or where_contains (delete every memory whose text
contains this substring, case-insensitive). Verified forgetting: the records are deleted AND their ids are
scrubbed from every survivor's links + supersession pointers + the caches, so a forgotten memory cannot
resurface via recall or a later consolidation pass. dry_run=True PREVIEWS the match (returns
{would_forget, ids, sample, dry_run:True} with a few matched texts) and deletes NOTHING — always dry-run a
bulk where_contains first. Returns {forgotten, ids, scrubbed_links}.
basis (the decision reason), request_id (the DSAR/ticket this belongs to), authorized_by (the
authorising principal's public key) and authorization (their signature) are recorded with the erasure
as the Art.30 account of WHY and on WHOSE authority. None of them was on this surface, so an erasure
performed over MCP left a record that it happened and nothing about who ordered it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| basis | No | ||
| dry_run | No | ||
| request_id | No | ||
| authorization | No | ||
| authorized_by | No | ||
| where_contains | No |