Non-blocking follow-ups consolidated by architect-1 from the PR #38 tri-review (#runner:c710d0b8). Item 3 of the original list (stale stop record) was promoted into PR #38 itself and is done.
- Transcript retention/GC —
<dataDir>/transcripts/ gains one file per completed batch (including fully adjudicated ones) with no retention policy; unbounded growth.
- Violation-path transcripts —
splitByViolationPaths calls parseEventResults(batch, summary, ""), so unknowns produced on the violation path carry the transcript-unavailable marker even when a real transcript was persisted for the turn. Thread the actual path through.
- Probe-batch transcript ring — the stop record's transcript list saturates at 3 during the first streak; on a probe re-trip the record carries the previous streak's paths and excludes the newest probe transcript (the one the operator most needs). Use ring semantics (keep the most recent ≤3).
- Suspended auto-flush no-op overwrites
last_flush — the guard no-op returns {stopped, -1} and, if routed through scheduleNext, refreshes lastResult/lastFlushAt each timer cycle while suspended, overwriting stopped_reason="unknown_streak" forensics (currently structurally unreachable; cosmetic). Either skip recording no-ops or use a dedicated reason.
🤖 Generated with Claude Code
Non-blocking follow-ups consolidated by architect-1 from the PR #38 tri-review (#runner:c710d0b8). Item 3 of the original list (stale stop record) was promoted into PR #38 itself and is done.
<dataDir>/transcripts/gains one file per completed batch (including fully adjudicated ones) with no retention policy; unbounded growth.splitByViolationPathscallsparseEventResults(batch, summary, ""), so unknowns produced on the violation path carry thetranscript-unavailablemarker even when a real transcript was persisted for the turn. Thread the actual path through.last_flush— the guard no-op returns{stopped, -1}and, if routed throughscheduleNext, refresheslastResult/lastFlushAteach timer cycle while suspended, overwritingstopped_reason="unknown_streak"forensics (currently structurally unreachable; cosmetic). Either skip recording no-ops or use a dedicated reason.🤖 Generated with Claude Code