Hundreds of conversations.MariMariremembers every one.

Who said what, who prefers what, what you promised and to whom. Mari's memory is durable, searchable, and never quietly wiped.

Mari at a three-tier wooden shelf installation: marbles for episodic memory, journals for daily, framed prints for curated facts
Three tiers, not one bucket

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.

Mari at her desk at 3 AM, soft moonlight, reading the day's transcript
She dreams at 3 AM UTC

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.

Mari at a wooden table sorting handwritten cards between two trays: Explicit with green-check seals, Inferred with amber question-mark seals
Explicit vs inferred, kept honest

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.

Mari at a chat UI with a relevant-memory panel visible above the latest message
Recall, every turn

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.

Mari at a long wooden wall with a horizontal copper timeline rail, polaroids and handcrafted memory cards pinned beneath dated labels
The timeline you own

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.

Mari in front of a tall library shelf of leather-bound monthly chronicle volumes, one row glowing softly violet as it is replayed
Backfill the past

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.

A night in the life of your memory

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.

Mari at her night atelier with six work-stations along a long wooden table, each station a different stage of the nightly memory work
Dreams · One night6 phases, idempotent
01

Ingest

She pulls every conversation turn of the day, excluding planner and executor plumbing sessions. She also pulls completed task outcomes as compressed blocks.

02

Light

She cleans the input. Drops orchestration noise, keeps the real signal. Empty day? Skip with an audit row, no model call.

03

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).

04

Dedup

Two layers: exact match on the normalised key (bumps the times-seen counter), semantic match against everything she knows (paraphrase caught, skipped).

05

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.

06

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.

What lives in each tier

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.

Tier 1

Episodic / semantic

Written

Every conversation turn, the moment it commits

Surfaces

Found by meaning on every owner turn, injected as 'relevant memory'

Tier 2

Daily digest

Written

Nightly Dreams Light and REM phases

Surfaces

Date-addressable lookup ('what was March 4'), also searchable by meaning

Tier 3

Curated facts

Written

Nightly Dreams Deep phase (promotion)

Surfaces

Always in her system prompt. She carries it, doesn't recall it

The receipts

The numbers, plain and uncosmetic.

No hand-waving. The actual thresholds and cadences behind how she remembers you.

Embedding dimension
3072

Top-tier embedding model, half-precision vectors

Sweep cadence
~03:00 UTC

Once per owner per UTC day, plus boot catch-up

Semantic dedup match
0.92

Paraphrases caught before they pollute her memory

Graduation bar
2 nights / 3 hits

Inferred facts must recur or be recalled live

Temporal decay
30-day half-life

Episodic and daily decay. Curated facts are evergreen

Backfill window
180 days

Idempotent, dry-run preview, owner-scoped

What she will never do with your memory

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

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.

Mari with a glowing wooden card-catalog drawer, the memory archive metaphor