[Bug] Agent View "last changed" timestamp reflects file mtime instead of actual conversation activity
Bug Description
Agent View "last changed" time is based on transcript file mtime, not conversation activity — making the timestamps useless
The session list in Agent View shows a "last changed" time per session. In practice this reflects the session transcript file's mtime, which Claude Code bumps with non-conversational, timestamp-less bookkeeping writes (e.g. the {"type":"last-prompt","leafUuid":...} resume-pointer record) whenever a session is merely opened/previewed/resumed/forked or touched by a background job. So sessions with no actual new activity float to the top with a fresh time.
Verified on my own transcripts (~/.claude/projects/<proj>/*.jsonl) by comparing file mtime to the last timestamped event inside each file:
- A session whose last real message was yesterday 13:27 showed a file mtime of today 14:27 — a ~25-hour discrepancy. Its final record was a last-prompt record with no timestamp field.
- Other stale sessions were off by 30 min / 52 min / 189 min.
- Genuinely active sessions were correct (~0 min drift).
It is not a timezone bug (timestamps are stored UTC; that would be a constant offset, not random drift).
Impact: the "last changed" column is otherwise very useful for finding your recent work, but because the times track file touches rather than conversation activity, the ordering and times are effectively meaningless.
Suggested fix: derive "last changed" from the last record that carries a real conversation timestamp, rather than the file mtime / last written record.
Environment Info
- Platform: darwin
- Terminal: xterm-256color
- Version: 2.1.197
- Feedback ID: 3e381ff7-4520-4554-b9a5-01e229ad216d
Errors
[]