# Conversation history

A conversation belongs to the tab that produced it, and it stays there so you can leave the panel and come back to work in progress. It is workspace data under the same isolation as everything else. It is not memory: nothing you type changes how Connect behaves tomorrow unless you deliberately turn it into a memory, a standing instruction or a knowledge source.

- **Status:** Available
- **Audience:** both
- **In the app:** #/home, #/inbox
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/assistant/history/

## History and memory are different things

This is the distinction most worth holding on to. **History** is what was said in one tab. **Memory** is what Connect knows about your business, held at four tiers — workspace, channel, endpoint, contact — and read by the engine every time it does anything. Telling the Assistant a fact in conversation puts it in the first and not the second.

The consequence surprises people: a correction you made in chat last week has no effect on a reply drafted this morning, because the drafting engine never read your chat. It read memory, knowledge and the standing instructions. Making a correction stick is a deliberate act, and [Correcting what Connect knows](/docs/assistant/assistant-memory/) is the page for it.

| Destination | How it gets there | What reads it |
|---|---|---|
| Conversation history | Automatically, by being typed | You, and the same tab later |
| Memory | You ask for it to be remembered; a memory row is written at a tier | The engine, on every piece of work in scope |
| Standing instruction | Set deliberately as a durable direction | The engine, as a rule rather than a fact |
| Knowledge | Added as a source, from which facts are extracted | Grounded answers on any channel |
| Nowhere durable | The default, if you do none of the above | Nothing beyond the tab |

## Where it is kept and who can see it

A conversation is workspace data. It sits behind the same three isolation layers as every other read — the tenant allowlist in the middleware, the SQLAlchemy workspace kernel, and row-level security in the database — so it is not reachable from another workspace at all. Inside your own workspace it is not a private diary: an administrator working the same workspace is working the same data.

Anything the conversation *did* is recorded separately and permanently. An approval, a follow-up, a memory written, a file created: each is a row in the system that owns it plus an entry in the decision log, which holds what was decided, under which rule, and what happened. Deleting a conversation would not and should not remove those.

> **Note** Connect does not train a model on workspace data. Conversations exist to make a tab resumable and to let you turn something you said into a deliberate, visible change — not as training material.

## Starting clean

1. Open a new tab rather than continuing an old one when the subject changes.
   - Result: The new tab has no conversation, no pinned subject, no attached files and its own scroll — the cleanest start available.
2. Close the finished tab.
   - Result: Its conversation goes with it, along with any unconfirmed proposal and any draft that was never saved. Everything it committed is already elsewhere.
3. If a wrong fact has been established in a long thread, correct it in memory rather than arguing with the thread.
   - Result: The correction is what the engine reads. The thread stays as a record of the exchange, which is usually what you want.

A long conversation is not free. Every earlier turn is context the model carries into the next answer, and the more of it there is, the more likely an old assumption survives past its usefulness. Two short threads generally beat one long one.

## What history cannot do for you

**Prove what happened** — The decision log does that. A conversation shows what was said; the log shows what was done, by whom, under which rule.
**Carry between tabs** — Each tab keeps its own. If you need the same context twice, pin the same subject in both rather than expecting one to know about the other.
**Act as a to-do list** — A commitment left in a conversation is invisible to everything else. Turn it into a follow-up — including the `task` channel, which is work for a person and is never sent by anything.
**Change behaviour** — Only memory, knowledge, standing instructions and the autonomy rules do that.

## Questions

### Can I delete a conversation?

Closing the tab is how a conversation ends in normal use. What was committed by it — approvals, follow-ups, memories, files — stays, because those are workspace records with their own audit entries and are not part of the chat.

### Does a long conversation cost more?

Yes, in the ordinary sense that a longer prompt is more work for the model. For a customer workspace that use counts against the plan's allowance. It also costs accuracy: old turns keep steering answers long after they stop being relevant.

### Will the Assistant remember this conversation tomorrow?

The tab will still hold it. The engine that drafts replies and places calls will not have read it — that engine reads memory, knowledge and rules. If a fact from the conversation should change behaviour, write it to memory deliberately.

## Related

- [Assistant tabs](https://connectbyjbrh.com/docs/assistant/tabs/)
- [Correcting a fact without leaving the Assistant](https://connectbyjbrh.com/docs/assistant/assistant-memory/)
- [Memory in Connect](https://connectbyjbrh.com/docs/memory/)
- [Relationship memory versus chat history](https://connectbyjbrh.com/research/relationship-memory/)
- [Knowledge in Connect](https://connectbyjbrh.com/docs/knowledge/)
- [Follow-ups in Connect](https://connectbyjbrh.com/docs/follow-ups/)

## What this page is based on

- `docs-source/sources/GENERAL.md` §6 — memory tiers and `directives()`
- `docs-source/sources/GENERAL.md` §5 — the audit trail records refusals too
- `docs-source/sources/GENERAL.md` §2 — three isolation layers on every read
- Connect capability registry (`docs-source/facts.py`) — `memory_tiers`, `audit_trail`
