No raw transcript archive
The session database is not designed to store word-for-word plaintext conversations.
The Companion can understand what you share without turning your raw conversations into a permanent transcript.
Your original message is used while that request is being processed, then removed from the runtime flow.
Your raw conversation is not written to the database as a word-for-word plaintext record.
The small amount of session context that needs to persist is stored as encrypted ciphertext.
The system keeps no more than three recent sanitized context summaries.
When you send a message, the original text has to remain in memory briefly so The Companion can understand the request that is currently being handled. In the current architecture, raw text is request-scoped. It is used during the early stages of processing and released after the semantic context needed for the response has been formed.
Continuity is therefore not built by keeping a word-for-word plaintext transcript of your conversation in the database.
Before semantic context is used further, the system removes certain identifiers it can recognize. The aim is to preserve the relationships between facts, time, negation, uncertainty, and emotions you actually expressed while reducing identifying information that is not needed.
“My name is Dimas. My email is dimas@example.com. I've applied for jobs again and again and still haven't been called back. I'm starting to feel ashamed.”
“My name is [name redacted]. My email is [email redacted]. I've applied for jobs again and again and still haven't been called back. I'm starting to feel ashamed.”
Current sanitization can recognize certain patterns, including authentication secrets, email addresses, links, device identities, account numbers, phone numbers, some address patterns, and some name patterns. It is not a guarantee that every piece of sensitive information will always be recognized.
To keep a conversation coherent, The Companion may retain up to three recent sanitized context summaries.
Those summaries are not stored as a readable transcript. Before a session checkpoint is persisted, it is encrypted with AES-GCM. The database stores the nonce, ciphertext, and only the session metadata needed to operate the service.
Session state is temporary. Production settings cap its lifetime at 24 hours, and expired records are removed through a purge process.
A language-model provider is part of how some responses are generated. That is part of the privacy boundary, so it should be stated plainly.
Used temporarily inside the request that is currently running.
The current-turn meaning after sanitization and de-identification.
The sanitized context, response instructions, and, when needed, up to three earlier sanitized context summaries.
The primary synthesis payload does not use the original raw input or a plaintext transcript. The current implementation also sends requests with store: false. That is a request-level instruction. Provider-side processing and retention remain governed by the provider's applicable terms.
The Companion is not designed to know as much as possible about someone. Its architecture is intended to carry only enough context for the conversation to continue.
The session database is not designed to store word-for-word plaintext conversations.
Private conversations are not designed to build advertising profiles or to be traded as a source of revenue.
The Companion is not designed to turn conversations into a permanent psychological profile about a user.
Operational observability is designed to carry information such as route, status, latency, body size, authentication or rate-limit outcomes, and build version. It is not designed to carry fields containing message content or conversation responses.
The website and API use HTTPS, the domain uses DNSSEC, and the public website, application, and API surfaces are separated. No system can promise zero risk. Technical safeguards still need to be paired with limits on data and access.
Do not enter passwords, PINs, OTP codes, full card numbers, API keys, access tokens, or other authentication secrets into The Companion. Sanitization can reduce exposure to certain categories of information, but it is not a reason to send information the conversation does not need.
Sensitive payment information will be handled through a payment provider when payment features are available, rather than requested inside The Companion's conversation space.
Privacy does not mean nothing is processed. It means the service should take no more than it needs.
Messages have to be processed for the service to respond. Some sanitized meaning may be kept temporarily so a conversation can retain continuity. Your raw words are not turned into a permanent plaintext transcript.
You should be able to inspect that boundary, not simply take our word for it.Raw text lifecycle: raw input is marked non-serializable at runtime and cleared after TC-03 forms safe context. Runtime includes lifecycle checks to detect raw text that remains.
Continuity: TC-09 limits RecentNarratives to three semantic narratives.
Persistence: the session checkpoint is serialized, encrypted with AES-GCM, then stored in tc_active_sessions as a nonce and ciphertext.
Retention: production configuration accepts a session TTL between 1 and 24 hours and rejects values above 24 hours.
Provider boundary: the synthesis payload uses sanitized_narrative and optional prior_session_context, not the original raw input.
Safety explains when conversation is no longer enough. Terms and Payments explain the relationship around the service itself.