// docs

Chat History

Nothing S.E.N.T.R.I says or does is lost. Conversations come back when ServerEngine starts, past ones can be searched in the Logs tab, and every turn is written to disk as a record you can audit.

Where history is kept

Kept asWhat it gives you
Your sessionsThe main chat and every agent in the Agent Workspace, saved and restored with their context when ServerEngine starts.
The history viewA S.E.N.T.R.I view in the Logs tab where past conversations can be read back and searched.
Transcript filesPlain-text records under Logs\Sentri: one chat file per user per day, and one file for every unattended run.

Sessions survive a restart

Closing ServerEngine does not cost you a conversation. The main chat and every agent in the Agent Workspace come back with their context when the app starts, so you pick up where you left off.

  • Swap the model in the middle of a conversation and the history stays.
  • The main agent can hold chats on more than one provider at a time.
  • New chat, or /newchat in the prompt line, starts a fresh conversation and resets the context. The old one is not deleted: it stays in the history, and the transcript file marks the break with New conversation started.
  • Messages you send from WhatsApp go to the main chat, so they are part of its history too.

The history view

The Logs tab has its own S.E.N.T.R.I history view. Open it to read back an earlier conversation, or search it to find the one where something was decided.

Transcript files

Alongside the view, every turn is written to plain-text files under C:\ProgramData\ServerEngine\Logs\Sentri. They are there for audit: readable in any editor, easy to archive, and independent of the app.

Interactive chat

Chat in the app goes to Chat-<USERNAME>-yyyy-MM-dd.txt, one file per user per day. The username is in the name because the folder is shared machine-wide, so on a shared admin box every operator keeps their own history. Each turn is stamped with the time, who spoke, and which model and provider answered:

Chat history format
[hh:mm:ss] ── User [<USERNAME>] ──
patch my servers

[hh:mm:ss] ── S.E.N.T.R.I (<model> / <provider>) ──
Checking 12 hosts for pending updates…

[hh:mm:ss] ── System ──
New conversation started

Empty or interrupted turns are skipped, so a reply you stopped with Esc leaves no half-written block behind.

Unattended runs

A scheduled or API-triggered prompt is a job, and its output is the transcript: it is written while the run happens, so you can watch the agent work live in the console. When the run ends, a durable copy is saved as yyyy-MM-dd_hhmm_<jobId>.txt in the same folder, with the provider, model, effort and allowed skills at the top. The full format is on the Logs page.

Masking

Transcripts follow the mask sensitive data setting, which is on by default: chat history is masked before every write, and an unattended transcript when its file is written.

The live transcript is not masked

While an unattended run is still going, the copy served by GET /api/v1/jobs/<id>/output is unmasked, because masking happens when the file is written. Keep that in mind before putting the endpoint on a shared dashboard.

Retention

Nothing under Logs\Sentri is deleted automatically. The files grow until you archive or remove them, so point your backup or archiving job at that folder if the record matters to you.

History is not memory

History is the full record of what was said. Memory is the short list of facts the agent carries into the next conversation: your preferences, your corrections and how your estate is wired.