Memory
Two memories that work together — workspace memory for what should stay true, session memory for what was said.
Sauna carries two kinds of memory that complement each other. Conversation history preserves what was said across chats: episodes, wording, context you would otherwise repeat. Workspace notes preserve what should stay true: preferences, agreements, layout, so future sessions inherit a steady picture without restating everything. Each answers a different kind of question; together they match how people work: speech first, then only some of it graduates into durable files.
Workspace memory
Workspace memory is the durable notes layer: files under memory/ and selected Markdown under documents/ (for example top-level docs and project ABOUT.md files).
- You and the assistant treat these files as the standing picture of the workspace: identity, preferences, layout, agreements, and conventions you want to inherit in future sessions.
- They are not a transcript. You do not dump whole conversations here; you refine what belongs in the long-term model.
- When the assistant's context loads, important workspace files are usually included early so conventions and identity land before this chat adds detail.
- When something should outlast this chat (a correction, a rule, where things live), that belongs in workspace memory (or an edit to an existing file), not only in message history.
If curated notes disagree with something you see right now in this chat or in the product, trust what you observe first; then update the file so the next session stays aligned.
Session memory
Session memory is the layer for past conversations: other threads, older turns, and loosely related snippets from across your history with Sauna.
Most of life shows up as speech first; only some of it graduates into memory/ files. Session memory keeps that spoken history usable across chats so the relationship feels continuous, not like a blank slate every time you open Sauna.
Vision
Sauna aims for three things at once:
- This chat is authoritative for right now: what you say in this thread wins over partial cues pulled from elsewhere.
- Past speech stays grounded: episodic questions deserve answers tied to what was actually said ("what did we agree", "last time", "the other chat"), not tone alone.
- Automatic reminders stay humble: they are orientation, not transcripts or commitments. Treating a skim like proof is exactly what we train against.
When hints from history clash with what you just said here, the assistant should trust you live, then reach for deeper recall only if it still matters.
Lifecycle reminders
Beyond curated files (workspace memory), the assistant may receive automatic session reminders. Both kinds are skims: incomplete, sometimes noisy, not a guarantee of "final" wording within a topic.
Recent threads: brief summaries of other conversations (not this one), so background elsewhere is not invisible. Entries may have nothing to do with today's topic; think sticky notes on the desk, not meeting minutes. Timestamps matter: older lines can be valid history and still wrong for "where we are now."
Moment-linked fragments: from turn to turn, short excerpts from past chats can surface because they roughly match how this conversation has evolved, including echoes of what was just reasoned about or briefly produced by tools. Matches can be wrong (different subject, stale line before a later correction). Order and ranking do not promise the newest or authoritative version of a story.
Together these reminders exist so neither you nor the assistant starts from zero when continuity might matter. They do not replace deliberate recall when wording, promises, chronology across threads, or cross-chat synthesis matters.
Going deeper than skims
Your messages remain indexed and searchable. When stakes rise, the assistant can search the archive, browse threads, open one conversation as a whole, or ask a synthesized question across stored chats instead of patching from fragments.
Default stance: claims about another thread (what was decided, quoted, or promised) should rest on that kind of retrieval before speaking, not on shortcuts through reminders alone.
What you feel as the user
You mostly see one conversation. Occasionally you benefit from hints from the archive: continuity without forcing every answer through manual recap. When accuracy matters, you can still insist on precision about past speech, or watch the assistant verify before asserting something about another chat.
If an older snippet conflicts with your latest message here, what you say live wins.
Using both together
The agent will use workspace memory when the question is about lasting rules, identity, or how the workspace is arranged. It will reach for workspace files under memory/ and curated docs.
The agent will use session memory when the question is about what was literally said or promised in speech, whether in this chat or another. That means search and related session actions.
Neither replaces the other. Session memory handles speech and episodes; workspace memory handles what should stay true session after session. When something discovered in chat becomes durable truth, capture it in memory/ (or update an existing note); session memory does not replace deliberate curation.
