Read a session's transcript once at launch, not twice

Reading the last status back from the transcript -- added so a restart
stops claiming an exited session is idle -- walked the whole file a second
time, after `Transcript::open` had just walked it for the sequence number.
Both answers are wanted at the same moment by the same caller, so the cost
was paid per session at exactly the point a restart is trying to be quick.

`Transcript::open` now finds both in its one pass and reports the status it
saw. The free function goes; a transcript knowing what it last recorded is
where that belongs anyway.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VETa8afmpWaYezLCqJhDB8
This commit is contained in:
irisandClaude Opus 5 committed 2026-08-29 05:39:54 -04:00
1 parent 3a74bd9c35
commit c1a468432d
2 files changed
+63 -32

No files matched your search

+1 -3
View File
@@ -906,9 +906,7 @@ fn launch(
// that has something to say corrects this within its first poll;
// one adopting a process that has been quiet says nothing, and
// this is then the only true answer available.
status: Mutex::new(
transcript::last_status(&transcript_path).unwrap_or(SessionStatus::Idle),
),
status: Mutex::new(transcript.last_status().unwrap_or(SessionStatus::Idle)),
last_activity: Mutex::new(now()),
model: Mutex::new(meta.model.clone()),
permission_mode: Mutex::new(meta.permission_mode.clone()),