Skip to content
Castellan
Reeve's icon

Concept · Reeve

Read as

History: commands, failures and past AI sessions

How Reeve's history tools answer from this PC's own history (the commands run, what failed, what an earlier AI session decided) and how they keep likely secrets out.

Article
1209
Applies to
Reeve 0.17.2
Last reviewed
For
For developers
Written for Reeve 0.17.2. Reeve is at 0.17.3 now (1 small release since: what changed).

What it's for#

An AI session shouldn't have to ask you what you ran, what broke yesterday, or what an earlier session decided. Four tools answer from this PC's own history instead. Reeve's page has the same answers under History.

ToolReadsAnswers
commandsThe transcripts your terminal AI assistant keeps on this PC (every command it ran, with folder, time and exit code; the last 30 days unless you say), PowerShell's history (every PowerShell host), and Git Bash's ~/.bash_historyCommands found by words (all of them, any case), folder or time, newest first; repeats shown once, with a count
errorsThe same transcripts, and the failed runs triage has seenThe last 7 days' failures, grouped: the same program and subcommand failing with the same error line is one group, with its count, when it was first and last seen, and an example
sessionsThe same transcriptsWithout a query, the most recent sessions: when, folder, branch, prompts, pull requests and title. With one, the places where every word appears: a prompt, the assistant's words, a command run or a file changed
sessionOne transcript, by id (its first 8 characters will do)What was asked, the files changed and the commands that failed, by code; then the local model's summary of what was decided, done, and left undone

How it decides#

Code decides everything but session's summary.

  • A failure is a command the transcript records with a nonzero exit code, or a run triage found FAILED. A search that found nothing (grep, rg, findstr, test, diff and the like exiting 1) isn't one.
  • PowerShell's history keeps no folder or time, and Git Bash's keeps no folder (and times only with HISTTIMEFORMAT). A folder or since leaves those out, and says so.
  • Transcripts can run to tens of megabytes, so they're read as a stream, and Reeve remembers how far it read each one. A search stops after 25 seconds and says how many older sessions it left unread.

Secrets#

The history is read where it lies, and goes nowhere but the answer to the assistant that asked (and, for a summary, the local model on this PC). Before either, every command, prompt and message is redacted: likely secrets become REDACTED. That covers:

  • tokens of the common providers' known shapes, and JSON web tokens;
  • bearer and Authorization headers;
  • passwords in URLs and connection strings;
  • secret-named variables, keys and flags (GITHUB_TOKEN=, "password":, --token, curl -u user:pass and the like);
  • private keys, and any long random-looking word.

It errs toward hiding, and searches match the redacted text, so a query can't find out whether a secret was typed. It works by pattern, so a secret in a shape it doesn't know can still get through: treat the answers as you would the history itself.

What's stored#

Nothing new of the history itself. Reeve's one record is of the failed runs triage has seen: when, which log, why it failed and its first error line, redacted as written; only the newest 500 are kept.

The page's History asks Reeve with the page's own token, so another web page open in your browser can't read your history through Reeve's port.

Is this page right?

If something on it is wrong or out of date, tell us and we'll fix the page.

Still stuck? Write to support@castellan-software.com and mention article 1209. Every version of Reeve, and what changed in it, is in its release notes.