Skip to content

Display cleaned Claude history sessions as non-resumable rows #45

Description

@gadflysu

Problem

Claude Code keeps prompt history in ~/.claude/history.jsonl even after resumable transcript files under ~/.claude/projects/<project>/<session-id>.jsonl have been cleaned by retention. Today aps only shows transcript-backed Claude sessions, so users can see fewer Claude sessions than Claude prompt history suggests.

A concrete observed case: history.jsonl contains Claude sessions for ~/workspace/coffee-beans, but the corresponding transcript JSONL files are gone, so claude -r <session-id> returns No conversation found with session ID: ....

Desired behavior

Show history-only / cleaned Claude sessions in the picker and list output as visibly non-resumable entries:

  • Load Claude history-only sessions from ~/.claude/history.jsonl when no matching transcript JSONL exists.
  • Render those rows dimmed / greyed so they are visually distinct from resumable sessions.
  • Do not attempt to launch claude --resume for those rows.
  • When the user presses Enter on a history-only row, show a concise message that the session is not resumable because the transcript was cleaned or missing.
  • Keep transcript-backed Claude sessions as the authoritative resumable source and avoid duplicate rows when both history and transcript exist.

Acceptance criteria

  • History-only rows include session ID, project path, latest timestamp, title derived from history display text, and prompt count.
  • Transcript-backed rows remain unchanged and continue to launch normally.
  • Disabled/non-resumable rows are dimmed in interactive mode and list mode.
  • Enter on a disabled row stays in the picker and reports the not-resumable reason instead of exiting or launching Claude.
  • Tests cover deduplication between history.jsonl and transcript JSONL, row rendering state, and disabled selection behavior.

Notes

history.jsonl is not a full transcript. It should not be treated as sufficient for claude --resume; it is only useful for surfacing cleaned/orphaned session history.

Executor should create a plan file after deciding the data model for resumability state and how picker status/error messaging should handle disabled rows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions