Every captured sitting, searchable by text. Dashboard → Search, or:
assay search "the words you remember"
Nothing leaves the machine. No model is required. The index lives inside the store.

What you type

You typeWhat happensBadge
Words you rememberMatched literallyexact
A typo, a plural, a near-missNearest word the corpus knowsrelated, lower weight
A topic (two or more known words)Expanded into words your corpus uses around itrelated
exact always ranks above related. Your own words come first. The badge tells you which you are looking at. Click a result and you land on that turn in its session, even deep in a long sitting.

What is not indexed

Tool calls and their output are out. They are most of the rows and most of the characters — dumps, diffs, command output — and they bury the sentence you meant. Search covers messages and agent reasoning. The page says so above every result set. Change it with search.kinds in config if you disagree. The cost is yours.

How it matches (short)

  • Exact — standard ranking over an inverted index.
  • Near-misses — compare an unknown word to the vocabulary this corpus actually has. No stemmer.
  • Concepts — look at the first hits, take words distinctive to them, ask again. Two or more known words only. One word is a lookup (an error code, a name).
Rankings are fused so the two scores never have to share a unit.

When it is built

At capture, in the same call that records the turn. A turn is searchable when it exists. There is no batch job to go stale. transcripts prune and shred reach the index in the same act as the turns.

Maintenance

assay search backfill     # sittings captured before search existed
assay search compact
assay search stats
The dashboard never writes the index.

Needs two things

The Search tab needs the index tables and the content key on this machine. Missing either: a sentence naming which. Not an empty box.