---
title: Auto-delete old message content (opt-in communications retention)
---

# Auto-delete old message content (opt-in communications retention)

## What it is

### What it does

Omniscio can hold a lot of **communications content** on your behalf — text
messages it has sent or received (SMS, Telegram, Slack, incoming webhooks),
email samples it learned your writing style from, voiceprint data, meeting
recordings and transcripts, and the daily digests it builds from all of the
above. By default that content is kept indefinitely.

**Communications retention** is an opt-in setting that automatically, permanently
deletes that content once it is older than a window you choose. It is a privacy
control: turn it on, pick a number of days, and from then on Omniscio erases old
message content so it does not pile up forever.

It is **off by default** — nothing is ever deleted until you deliberately turn it
on. When you do, there is no "undo": the deletion is permanent, including every
derived copy (for example the daily digest built from a message). Because it is
permanent, two safety steps stand between turning it on and the first deletion —
see _The safety net_ below.

## Where to find it

**Settings → System → "Auto-Delete Old Message Content."**

- A toggle turns the feature on or off. It is **off by default.**
- Turning it on shows a confirmation dialog (the deletion is permanent) and then
  reveals a **"Delete message content older than (days)"** box.
- The window must be between **30 and 3650 days** (1 month to 10 years). Turning
  the feature on seeds a sensible **one-year (365-day)** default you can then
  change.

You can also read or set the window over Omniscio's CLI control server, because it
is a normal setting (`communicationsRetentionDays`, where `0` means off) — the
same `GET`/`PATCH /settings` route every setting uses.

## How it behaves

### What gets deleted — and what never does

When the window is on and past the grace period, Omniscio permanently deletes, on
its normal daily housekeeping pass, anything **older than your window** in:

- **SMS, Telegram, Slack, and incoming-webhook messages** (and an SMS
  conversation once its last message is gone).
- **Email-summarizer samples** — the sampled emails Omniscio kept to learn your
  style.
- **Voiceprint data** — the voice corpus and comparison records.
- **Daily digests** — the derived summaries built from the above.
- **Meeting recordings and raw transcripts** — the audio file on disk **and** the
  raw transcript text.

It **never** touches:

- Your **agent sessions** and their chat history.
- Your **saved vault / KMS notes** and saved contacts.
- Your **meeting notes** — the summary, enhanced notes, and action items Omniscio
  wrote from a meeting are kept even though the raw recording and transcript are
  deleted. You keep the useful record; only the bulky raw source goes.
- Anything in your projects, tasks, or team data.

The rule is: **raw communications content is cleaned up; your curated work is
kept.**

### The safety net

Because there is no undo, turning the feature on does **not** immediately delete
anything. Two things happen first:

1. **A one-time notice.** The moment you turn it on, Omniscio raises a single inbox
   notice — "Communications auto-deletion is on" — that spells out exactly what
   will be deleted and what is kept, with a one-click button back to the setting.
   It appears once, so you always know the feature is armed before it does
   anything.
2. **A 30-day grace period.** The first deletion does not run until **30 days
   after** you turned the feature on. If you change your mind within the first
   month and turn it back off, nothing was ever deleted. Turning it off clears the
   countdown; turning it on again later starts a fresh 30-day grace and shows the
   notice again.

Together the opt-in choice, the one-time notice, and the 30-day grace are the
safety on a permanent, no-undo action.

### Turning it off

**Settings → System → "Auto-Delete Old Message Content"** and turn the toggle
off. That stops all future deletions immediately and clears the grace countdown.
Content that was already deleted while it was on cannot be recovered, but nothing
further is deleted once it is off.

### How it relates to other retention in Omniscio

Omniscio has a few independent cleanup mechanisms; this is the opt-in one for
communications:

- **Session retention** (always on) bounds the bulky diagnostic rows inside agent
  sessions — it is about database size, not privacy, and it never deletes your
  actual conversation. See _Conversation-message retention_.
- **Meeting transcript retention** is a separate, narrower meetings-only setting.
  Communications retention can also clean up meeting raw transcripts/audio on your
  chosen window, independently of that setting, and always keeps the derived
  meeting notes.
- **Scratchpad auto-delete** is the sibling opt-in control for scratchpad notes,
  in the same Settings → System area.

## For agents

### Where it lives in code

- [src/main/db/queries-communications-retention.ts](../../src/main/db/queries-communications-retention.ts)
  — the purge core: `resolveCommsRetentionCutoff` (the OFF / grace / cutoff
  decision) and `purgeCommunicationsRetention` (the age-delete over the covered
  tables, the SMS FK-parent sweep, and the meetings raw-transcript reuse).
- [src/main/app/startup/data-retention.ts](../../src/main/app/startup/data-retention.ts)
  — wires the sweep into the daily retention tick and fs-removes the returned
  meeting audio files (non-fatal).
- [src/main/services/settings-apply.ts](../../src/main/services/settings-apply.ts)
  — the `communications-retention-notice` side-effect that stamps the grace anchor
  and raises the one-time notice on the OFF→ON edge.
- [src/renderer/src/features/settings/sections/general/GeneralSettings.tsx](../../src/renderer/src/features/settings/sections/general/GeneralSettings.tsx)
  — the toggle, the confirm-on-enable dialog, and the days input.

The full engineering contract (test-locked invariants + safe-change checklist) is
[.claude/memory/contracts/communications-retention-contract.md](../../.claude/memory/contracts/communications-retention-contract.md).

## Related

Communications retention is one of several independent cleanups; the always-on sweep it sits
beside is described in the conversation-message-retention contract below, and its closest
opt-in sibling — auto-deleting old scratchpad notes, in the same Settings area — is on the
[scratchpads](scratchpads.md) page.

- [conversation-message-retention (session DB trim)](../../.claude/memory/contracts/conversation-message-retention-contract.md) — the always-on session sweep this sits beside.
- [scratchpads.md](scratchpads.md) — the sibling opt-in "auto-delete old scratchpad notes" control.
