Find a coding agent's transcript on disk and read its recent rendered messages.
Everything here is pure over strings, slices, and injected directories: no ~, no
environment reads, no spawned processes. The binary passes in sessions_dir,
projects_dir, a process-table snapshot, and an env lookup. The rules come from
Plannotator's last implementation (see docs/decisions.md, decision 9).