Skip to content

v1.3.0

Choose a tag to compare

@pegiadise pegiadise released this 24 Sep 12:13
· 6 commits to main since this release

Catches up with the current Claude Code session format and makes day-to-day browsing smoother. The first launch rebuilds the index once (a few seconds).

Added

  • r renames a session, writing the same entry as Claude Code's /rename, so claude --resume shows the new name too. The session keeps its place in date order.
  • Pull requests linked to a session show as a PR #N badge, are searchable (#N), and open with o.
  • Claude Code's latest "while you were away" recap is pinned at the top of the preview.
  • ↑/↓ (and Ctrl+N/Ctrl+P, PgUp/PgDn) move through search results without leaving the search input.
  • s sorts search results too: relevance → date → size → duration → messages.
  • Preview: g/G jump to the top/end, Space and Ctrl+D/Ctrl+U page, ← returns to the list; → in the list opens the preview.
  • ? works from the preview pane; the help screen lists every key, grouped by pane.
  • Pasting into search inputs is a single edit (bracketed paste).
  • Config enter = "safe" makes Enter resume without --dangerously-skip-permissions (default stays "yolo").
  • CLAUDE_CONFIG_DIR is honoured when locating sessions.

Changed

  • The default scope is the current project: the enclosing git checkout (or the launch directory) and everything below it, so launching from repo/src finds sessions started at repo/, and worktrees inside the repo count.
  • c copies a ready-to-run cd <dir> && claude --resume <id> and keeps sessy open (it used to exit).
  • Deleting asks for y; pressing d twice no longer deletes.
  • Esc in the list clears an active search before it quits, keeping the selected session.
  • The status bar shows only the keys that work in the focused pane and never wraps.
  • --project searches across all projects instead of only the launch directory.
  • --print exits with status 1 when you quit without picking, and every pick key (Enter, l, p) prints instead of launching. After resuming, sessy exits with claude's exit code.
  • --purge keeps pinned sessions.
  • Durations over a day read 3d4h; exports are named <name>-<id>.md so sessions with the same name don't overwrite each other, and include the session ID and PR links.
  • The list title shows which project is in scope; the preview shows its scroll position on the right.

Fixed

  • Sessions renamed with a recent Claude Code showed no name (custom-title entries were ignored).
  • Compaction summaries ("This session is being continued…") became titles and appeared as user messages.
  • Messages with pasted images were dropped, and image-only sessions were hidden.
  • Slash commands with arguments (/loop fix the tests) were discarded; messages from other sessions and background-task notifications counted as yours.
  • Files changed in newer sessions were missing from the files view (file-history-delta).
  • The preview joined all lines of a message into one block; paragraphs, lists, and code now keep their shape. Emoji and CJK text wrap by display width.
  • claude --resume $(sessy --print) received terminal escape codes before the session ID (since 1.1.0).
  • On macOS, ~/.config/sessy/config.toml was ignored; a malformed config is now reported in the status bar instead of being silently ignored.
  • Ctrl+letter combinations triggered the plain-letter actions (Ctrl+D opened delete, Ctrl+L resumed); Ctrl+C didn't quit while typing a search.
  • Pinning or unpinning moved the cursor to a different session and left a stale preview.
  • The list jumped to keep the selection on its bottom row when moving back up.
  • Very long sessions couldn't scroll past about 65,000 rows.
  • Very long pasted queries froze the search box, and long queries now scroll horizontally.
  • Idle CPU use with a large session selected (the whole conversation was re-wrapped 20 times a second), and a background parse was started for every keypress while scrolling the list.
  • Titles and previews could carry terminal control sequences from pasted logs.
  • The index and its search-text cache could fall out of sync after a crash or when two instances ran at once.
  • --recent with an absurdly large value overflowed; old agent-*.jsonl subagent transcripts were listed as sessions.
  • Running the test suite overwrote the real bookmarks file.

Full Changelog: v1.2.0...v1.3.0