Skip to main content

Module runlog

Module runlog 

Source
Expand description

The run-quality corpus: every recorded outcome, across every session.

crate::session::RunStats is written one row per finished run. This is the reader that puts them side by side, which is the whole point of having recorded them: one run’s counters say almost nothing, and a thousand runs’ counters say what normal looks like and when it stopped.

§Why this reads the transcripts instead of keeping a ledger

A second file would be faster and would be a second source of truth. The transcript already holds the rows, written by the process that produced them; a ledger beside it can disagree with it, and then someone has to decide which is right. Same reasoning as the TUI reading a trigger’s last answer back from the session record rather than caching it.

The cost is that a scan reads files, so every scan is bounded — newest-first, with a session cap and an optional cutoff. A corpus reader that must read everything before it answers is one nobody runs interactively, and doctor runs in one pass with no network and no model.

§What it deliberately does not do

No judgement. Nothing here decides that a rate is bad, because “bad” depends on what a run was for, and the thresholds belong with the reader that acts on them. This module counts.

Structs§

Corpus
Every run the scan looked at, newest session first.
RunRow
One finished run, with enough of its session to be identifiable.
Scan
How to bound a scan. Both limits are honest about cost rather than about relevance: the caller decides how much reading it can afford.