Hundreds of conversations.
Mariremembers every one.
Who said what, who prefers what, what you promised and to whom. Mari's memory is durable, searchable, and never quietly wiped.

Episodic, daily, curated. Each tier reaches her a different way.
Every conversation you've ever had becomes one of three things. Episodic: every turn embedded the moment it commits, recallable by meaning across years of history. Daily: a structured digest written each night, addressable by date ('what did we decide on March 4'). Curated: a small set of foundational facts she earned about you, always in her head, never recalled, never lost. Different sources, different lifecycles, one shared brain.

While you sleep, she consolidates the day in three sleep-like phases.
Once a day, around 3 AM UTC, Mari runs a sweep. Light phase: she pulls the day's conversations and task outcomes, filters out planner noise. REM phase: one focused reflection call writes a summary, surfaces highlights, and proposes durable facts. Deep phase: she reconciles each proposed fact against everything she already knows (semantic match against the existing pool, exact match on the normalised key) and renders her curated memory file. Idempotent: a reboot mid-sweep never double-consolidates.

What you said sticks. What she guessed has to prove itself first.
When a fact lands from a dream, it carries a class. Explicit (you stated it, corrected a preference, set an identity) gets promoted that same night and lives in her always-in-head curated tier. Inferred (she sensed a pattern from your behaviour) starts as a candidate. To graduate, it needs to recur on two or more distinct dream days, or be surfaced by real recall three or more times. The bar is real. Guesses don't pollute her sense of you until they earn it.

Before she answers, she remembers what's relevant, and shows it.
Every message you send, before the language model sees the system prompt, she searches her memory pool, applies a 30-day temporal decay (curated facts never decay), drops near-duplicates with a greedy de-dup pass, and injects a 'relevant memory' block into the prompt. So a question about your client lands with the three facts she knows about that client already in context. When a recall surfaces an inferred fact, a quiet reinforcement counter ticks, bringing it closer to promotion.

Every night's sweep is a row you can open and read.
Open the Dreams tab in your home dashboard. Every day Mari has consolidated is a row, sorted newest first. Expand any row and see her summary, her highlights, the facts she learned (promoted), the ones still on probation (staged), and the ones she skipped because they paraphrased something she already knew (with the matching fact shown). The trail is per-fact. You can see exactly why she did or didn't keep a thing.

Up to 180 days of history, replayed safely with a dry-run preview.
Brought Mari in mid-relationship? Click 'Backfill' on the Dreams tab. She replays the past, up to 180 days, day by day, through the same sweep. Idempotent on the day key, so she never double-consolidates a day she already swept. Run a dry-run first to see exactly which days she would touch (no model calls, no writes), then confirm the real run. The same value-aware retention rules apply.
Six phases, every owner, every day, idempotent.
Once per UTC day, around 3 AM, Mari runs the same six phases over your day. If she crashes mid-sweep, she picks up exactly where she left off. She never double-consolidates.

Ingest
She pulls every conversation turn of the day, excluding planner and executor plumbing sessions. She also pulls completed task outcomes as compressed blocks.
Light
She cleans the input. Drops orchestration noise, keeps the real signal. Empty day? Skip with an audit row, no model call.
REM
One focused reflection call against the day's content returns a summary, the day's highlights, and a list of candidate durable facts (each classed as explicit or inferred).
Dedup
Two layers: exact match on the normalised key (bumps the times-seen counter), semantic match against everything she knows (paraphrase caught, skipped).
Render
Promoted facts are sorted by score and written into her curated memory file, capped by a byte budget. Lowest score gets evicted first, not oldest. Foundational facts are safe.
Graduate
Inferred candidates that have recurred on two or more dream days, or been recalled live three or more times, get promoted. The bar is real. Guesses earn their way in.
Different sources, different lifecycles, one shared brain.
Memory is not one big bucket. Each tier exists for a different reason, and each one reaches her a different way. Together, they're why she sounds like she remembers you.
Episodic / semantic
Every conversation turn, the moment it commits
Found by meaning on every owner turn, injected as 'relevant memory'
Daily digest
Nightly Dreams Light and REM phases
Date-addressable lookup ('what was March 4'), also searchable by meaning
Curated facts
Nightly Dreams Deep phase (promotion)
Always in her system prompt. She carries it, doesn't recall it
The numbers, plain and uncosmetic.
No hand-waving. The actual thresholds and cadences behind how she remembers you.
Top-tier embedding model, half-precision vectors
Once per owner per UTC day, plus boot catch-up
Paraphrases caught before they pollute her memory
Inferred facts must recur or be recalled live
Episodic and daily decay. Curated facts are evergreen
Idempotent, dry-run preview, owner-scoped

Durable, isolated, idempotent. Built into the schema.
Six invariants govern how your memory is kept. They're not guarantees printed on a marketing page, they're database policies and unique keys.
- She never stores memory on disposable disk. Every fact is in the database under per-owner isolation
- She never lets one owner read another owner's memory. Every read is wrapped in a per-owner transaction
- She never embeds your memory through a privileged path. The gateway role cannot bypass isolation, ever
- She never silently rebuilds her brain on redeploy. Restarts touch nothing in the memory tables
- She never double-consolidates a day. Every nightly sweep is idempotent on owner and day
- She never hides what she learned. Every fact, promoted or staged, has a row you can open and read
Memory is the spine of everything else she does.
A great agent without memory is just a chatbot. Follow any thread to see how memory weaves through her work.
Let her start remembering you.
Connect Mari in five minutes. By tomorrow night, the first day she's spent with you will already be a row you can open. Your first $10 in credits are on us.


