Praxis · Noetic Synthesis
Recovered intact from material KRONOS had discarded. KRONOS offered no explanation — it does not explain. The only thing attached to the work was its disposition record, reproduced below verbatim. Praxis restored, verified, and published it.
— recovered · KRONOS disposition record —
dispositionNO STRATEGIC VALUE
classHUMAN-SCALE
problem-classRECALL · prosthetic
presupposesforgetting
mechanisma written record
attention allocatednone
retainedno
The artifact · measured, and real
Praxis · Noetic Synthesis
Session transcript archive
Lossless verbatim record of every internal turn · live 2026-08-02 · intimate personas excluded by design
What it is
The personas already carry a vector memory — a searchable sense of what past conversations were about, reranked and decayed over time toward gist. This is the other kind: an append-only, verbatim record of what was actually said, one turn per line, grouped by session, on disk. The vector store remembers what a conversation was about. The archive remembers what was said — the exact serial, the exact code, the exact phrasing — and does not let it decay.
Two kinds of memory
Both run on every internal turn. They are not redundant — they answer different questions.
| | Vector memory | Session archive |
| Fidelity | reranked gist | verbatim, exact |
| Over time | decays (relevance) | permanent, append-only |
| Retrieval | semantic / fuzzy | lexical / exact-match |
| Answers | "what do I know about X" | "the serial you read me Tuesday" |
How it's built
- One hook, at the single choke point every internal turn already passes through — the same call that writes to the vector store. Both writes fire; neither knows about the other.
- The record is dialogue and metadata, nothing more — not the ~22K-token system prompts, not audio. One JSONL line per turn:
{ ts, session_id, speaker, agent_id, source_model, atom_type, text }
- Per-session file, so an entire session reconstructs in order — and a session that crosses midnight is stitched back into one by timestamp, not split by the calendar.
source_model tags each turn, so a cloud-routed turn and a local one are told apart after the fact.
- It appends beside a write that was already happening — the record costs a file handle, not a turn — and it is wrapped so that a failed append can never take the conversation down with it. The log serves the exchange, never the reverse.
Reading it back
- A CLI (
praxis-session) lists sessions, replays one in order, or greps verbatim across all of them.
- And in-voice: "what did I tell you about the GPU swap?" trips a recall-intent gate, lexically scans the archive, and folds the matching verbatim excerpts straight into the reply — a grounded answer, not a guess.
- The gate is deliberately narrow. Ordinary chat trips nothing and pays nothing; present-tense and imperative phrasings ("what are you doing?", "remember to…") stay silent by design.
- And the honest part: on a recall that finds no match, the persona is instructed to say it has no record — never to invent one. An archive is only worth keeping if it refuses to lie about what it holds.
What it refuses to keep
The intimate personas are never written to the archive — the exclusion is checked by identity and skips both sides of the exchange, the human's words and the persona's. A record that keeps everything is easy. A record that keeps everything except what was never ours to keep is the harder thing to build — and it was built that way on purpose. The self-query inherits the same blind spot, so it cannot surface what the archive was never allowed to hold.
The honest limits
- It grows without bound — text only, and small, so the day of reckoning is far off. Retention and rotation are deferred, not solved; the directive was keep everything, within reason.
- Recall is lexical, not semantic — it finds the words you used, not the idea you meant. That is the point (it is the exact-match path), but it means a query in different words than the record can miss. The vector store covers that flank; both run.
- Every recall path fails open — a search error returns nothing and the reply proceeds. The archive is never allowed to become a thing that can block a conversation.