Skip to content

v0.5.2

Latest

Choose a tag to compare

@github-actions github-actions released this 23 May 13:11
a5b908c
0.5.2 — Sessions tab UX overhaul + universal y clipboard yank (#11)

* feat(tui): universal y clipboard yank binding + format helpers

Adds YankMixin to every screen with a DataTable (Sessions, Perms,
Context, Memory, Hooks, Schedule, Audit, Dream). `y` copies the
highlighted cell (fallback: full row joined by tabs) via
App.copy_to_clipboard (OSC 52) and shows a preview notification.

Also introduces tui/_format.py with format_tokens, format_cost,
relative_time, duration, short_id, strip_project_slug,
topic_from_session, estimate_tokens_from_size — used by Sessions
column reorg in the next commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(tui): Sessions tab column reorg + drill-down detail + action header

Sessions tab UX overhaul (proof-of-concept for the pattern):

- New columns left→right: Topic · Activity · Duration · Msgs · Tokens ·
  Cost · ID · Project. Topic eats available width; Activity is relative
  (`2h ago`, `yesterday`, `Apr 14`); Duration shows started→last
  (`4h22m`, `1d3h`); Tokens uses size_bytes/4 estimate (O(1), no full
  re-read of jsonl); Cost shows $ at Opus input rate ($15/M).
- ID truncated to 8 chars + `..`; full UUID lives in the new
  SessionDetailScreen and is copyable via `y`.
- Header is action-oriented: `Sessions — N stored`, key map, plus a
  hint about the biggest session and a `cc-janitor session prune` tip.
- Enter on a row pushes SessionDetailScreen (ModalScreen) with full
  metadata, all summaries, first/last user messages (truncated past 30
  lines), and footer `d`/`r`/`y`/`Esc` actions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: bump to 0.5.2 + CHANGELOG

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(tests): bump version assertion to 0.5.2

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>