Skip to main content

Forget Omega memory

Omega forgetting deletes an exact or bounded set of authorized memories and returns durable, content-free proof of the result. Retention policy and legal hold remain authoritative; a valid request can be held instead of deleted.

Use this operation when a user or administrator must remove one memory, a known set of memories, or a narrowly defined scope.

Choose a selector

Send a request to:

POST /v1/graymatter/omega/forget

Choose one selector style:

  • memoryRef for one memory;
  • memoryRefs for 1 through 500 exact memory IDs; or
  • one or more scoped selectors such as memoryTypes, sourceChannel, applicationRef, projectRef, createdBefore, or expiredBefore.

Do not combine exact references with scoped selectors. The server derives principal, tenant, owner, ACL visibility, retention policy, and the final target set.

Forget one memory

{
"memoryRef": "41151b6f-d4fd-413a-b450-f44a3a0fd25e",
"reasonCode": "user-request",
"idempotencyKey": "forget-41151b6f-v1"
}

Forget a bounded scope

{
"memoryTypes": ["working", "episodic"],
"sourceChannel": "codex:workspace:example",
"createdBefore": "2026-01-01T00:00:00Z",
"maxEntries": 100,
"reasonCode": "retention-cleanup",
"idempotencyKey": "workspace-example-cleanup-2026-01-v1"
}

Set maxEntries to the largest result you intend to delete, up to 500. If the authorized target set exceeds the bound, narrow the selector rather than treating a partial deletion as complete.

Verify the result

The response includes:

  • eventRef, the durable deletion event;
  • deletionStatus, which can be deleted, replayed, held, or degraded;
  • proofStatus, which can be verified, held, or degraded;
  • selected, deleted, and residual counts; and
  • legalHoldApplied and the retention policy version.

Read the proof later with:

GET /v1/graymatter/omega/forget/events/{eventId}

The event read is authorized. An event ID is not a public receipt and does not reveal deleted memory content.

Application behavior

  • Report held as a legal-hold outcome, not a successful deletion.
  • Treat any nonzero residual count or degraded proof as incomplete and follow the returned flags.
  • Preserve the eventRef in the requesting workflow or compliance record.
  • Reuse an idempotency key only for the same logical selector and reason code.
  • Never send tenant, owner, principal, audit, or policy fields in the request.