EACI Development Journal · Memory & Context

How Do You Sync Multi-Layer AI Companion Memory?

Browser state, cloud history, compact memories, and bridge snapshots each have a different lifetime. Sync works when those roles stay explicit.

Memory & Context ~10 min issue-tagged
Issue this fixes

The Veil has immediate conversation state, browser persistence, cloud history, extracted memory records, and bridge-local snapshots. Treating them as replicas creates duplicates and makes old text look authoritative everywhere.

The practical design assigns each layer a purpose: recent turns for flow, cloud history for account continuity, scored memories for retrieval, and bridge memory for the local channel. Merges preserve tags and timestamps where available.

What was actually going wrong

Blindly concatenating all layers inflated prompts and let the same event arrive through several storage paths.

What I tried

What finally worked

Memory records are normalized, scoped, deduplicated, and retrieved separately from the short conversation slice.

Why it worked

Each store keeps its own responsibility while the prompt builder decides what is relevant for the current turn.

What I learned

Continuity comes from coordinated memory layers, not maximum duplication.

Where EACI uses this today

Main companion turns combine recent chat with permitted account, local, and topic memory.

This journal covers real engineering on EACI Companion / The Veil. Companions include Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael. Journal articles stay family-safe in content. See Privacy and Ethics.