[BUG] /resume shows only stale sessions — recent sessions missing (v2.1.89, no sessions-index.json)
Summary
/resume inside an active session shows only sessions from ~5+ days ago. Recent sessions (including today's) do not appear in the picker, even though session .jsonl files exist and are valid on disk.
Environment
- OS: macOS (Darwin 25.3.0, arm64)
- Claude Code: v2.1.89
- Mode:
--dangerously-skip-permissions(also reproduced in default mode)
Steps to Reproduce
- Run multiple sessions over several days (
cd ~/ && claude --dangerously-skip-permissions) - Accumulate 200+ session files in
~/.claude/projects/-Users-<user>/ - In a new session, type
/resume - Only sessions from ~5 days ago appear — today's 6 sessions and recent days are missing
Observed Behavior
/resumepicker shows ~5-10 old sessions, none from the last few days~/.claude/sessions-index.jsondoes not exist — appears to never have been created~/.claude/sessions/only contains entries for currently active sessions (cleaned up on exit)- All 215
.jsonlsession files are intact with valid data (verified via grep/python) claude --resume <session-id>with a direct ID works correctly
Expected Behavior
/resume should list all recent sessions sorted by last activity, regardless of how many total sessions exist.
Investigation
This appears related to the previously reported (and closed) #26123, where sessions-index.json stopped being written. In v2.1.89, the index file doesn't exist at all, suggesting the underlying indexing mechanism is still broken or was never fully fixed.
Verification commands
# Session files exist and are recent
ls -lt ~/.claude/projects/-Users-*//*.jsonl | head -10
# No index file
ls ~/.claude/sessions-index.json # not found
# Direct resume works
claude --resume <any-session-id> # works fine
Workaround
Use claude --resume <session-id> with the session ID directly. Session IDs can be found from filenames in ~/.claude/projects/.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗