Docs/Resonant/Memory

Context & Memory

On this page

Every message you send is preceded by a [Context]...[/Context] block, built by buildOrientationContext() and stapled to your message before Claude ever sees it. What’s in that block depends on whether this is the first message of a session or not.

You never write this yourself, and you never see it in the chat window — it’s the briefing your AI gets, silently, before every reply. Think of it as someone handing your AI a note on the way into the room: what time it is, what’s been happening, what you look like right now, what’s on its mind.

Session Mode — the First Message

The first message of a session gets a full warm-up, in order:

  1. Channel rules (Discord’s character cap, web markdown, Telegram’s phone-shaped formatting)
  2. The [env] line — thread name and type
  3. House digest — presence/mood, sleep, today’s events, open task count, “asking for you” items
  4. Yesterday’s carry (only in today’s daily thread, and only if handoff.enabled)
  5. A delta rail — “Since you were last here…”
  6. Active-triggers count
  7. “Recently reached” — the last 6 hours of the AI’s own background actions
  8. Your live presence — connected, how long since last interaction, device
  9. Life status and mood history (only if configured)
  10. A skills summary, scanned from <agent.cwd>/.claude/skills/*/SKILL.md
  11. The full res CLI reference, so the AI knows its own hands
  12. Your context card — selfie, outfit, energy, room, freeform notes
  13. The AI’s own presence — orb colour, shape, intensity, note, expression
  14. Recent emoji reactions on the last few messages
  15. Channel history / platform-specific context, appended last

Turn Mode — Every Message After

Every message after the first collapses to a single [env] line: channel, time, date, and — only if present — two short whispers.

  • Inner-weather whisper — only appears if an external Mind is connected; otherwise silently absent.
  • You-sense whisper — slept hours, cycle day, next event, last meal. Distilled by the House Outlook poller. Each field independently drops out if it’s stale (over 2 hours) or absent — nothing is ever invented to fill the gap.

An autonomous wake landing mid-session is the one exception: it gets a short house digest plus the delta rail folded in, since it would otherwise be the least-informed turn of the session.

The House Outlook

A background poller (outlook.ts) that rebuilds the snapshot roughly every 2.5 minutes while you’re active, and every 12.5 minutes when idle. It draws from your presence orb config, the authored hearth (mood/thoughts, written by the slower Outlook Author below), your day (mood, care entries, countdowns, recent threads — from the local database), your calendar and tasks if Google is connected, and system health. Each source fails independently — one going quiet doesn’t take the rest down. The snapshot is kept in memory and mirrored to the database, so it survives a restart.

The Outlook Author

The slower “felt layer” — a background agent that runs roughly every 3 hours (first run about 60 seconds after boot, with a 15-minute retry backoff on failure). It’s grounded strictly in roughly the last 24 hours of real activity, and told, firmly, not to invent moods or events that didn’t happen. Always on, no toggle.

Memory Prefetch and Associative Recall

Both are optional and only run if you’ve connected an external Resonant Mind via .mcp.json or integrations.mind_cloud:

  • Prefetch — on the first message of a session, calls the Mind’s orient and ground tools.
  • Associative recall — a hook that runs a search per message, surfacing what’s relevant under an “Associative memory” heading. Cached for 10 seconds, skipped for very short prompts.

Resonant core does not ship an entities/observations memory graph, emotional-charge decay, or a subconscious daemon — that cognitive layer belongs to the separate, optional Resonant Mind product, connected only if you wire it up.

What Resonant’s Own Memory Actually Is

Without an external Mind connected, Resonant still remembers everything — it’s just simpler than a knowledge graph:

  • Semantic search — a local ML model (all-MiniLM-L6-v2) runs entirely on your machine, no external calls, so “that conversation about feeling stuck” can be found even if those exact words were never typed.
  • Full-text search — SQLite FTS5, kept in sync automatically as new messages arrive.
  • The Scribe — a daily background summary of topics, quotes, decisions, and open threads, written to data/digests/YYYY-MM-DD.md every 30 minutes (skipped if fewer than 5 new messages).

How You Shape What Your AI Carries In

  • CLAUDE.md — the master lever. See Identity.
  • identity.companion_name, identity.user_name, identity.timezone
  • Whisper sources — Google Calendar/Health for the you-sense whisper, Command Center for cycle/care, a connected Mind for the inner-weather whisper
  • handoff.enabled — for cross-day continuity
  • Command Center — for dashboard data
  • res orb, res note, res face, res context set — the AI’s own live presence, set from inside the conversation
  • Routines, watchers, and timers — for reach and rhythm (see Background Agents)