You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
1.0.89
Feat: a search result explains itself and can be walked (#141, #146)
Every hit, not the first. The match #N line gains ‹ 2/12 › when a session's prompts hit more than once, stepping the snippet through them; the main-side search now returns up to 20 hits per session, each with its prompt time
The prompts around a hit, one click (▸) away on the match line: the prompt before (↑) and after (↓). The smallest useful version of the reader in #66 — user prompts only; assistant text is not in the index
by match chip while searching: order results by when the match happened instead of the session's last activity, so the session where you typed the word an hour ago is not buried under one touched five minutes ago. Off by default — "what was I just working on" is the commoner question
match path / match assistant / match recap / match reply lines say which field a row matched in when that field is not on the row (the path, the assistant's mined references, a recap the row is not showing, a reply hidden behind a recap). Fields that render — title, branch, project name, badge, first/last prompt — already carry the highlight, so they add no line: vertical space stays the scarce resource
Feat: switch to a running session by its terminal (tty) first, title second (#142 C0). Three /branch siblings deliberately share a title, and the title-first match sent every one of their rows to the same iTerm2 tab; a process has exactly one tty, so that is what the click matches now (iTerm2 and Terminal.app; Ghostty has no per-tab tty, #63, and keeps title-then-cwd). Running rows that share a title show their tty (·ttys003) so they can be told apart on screen. The order follows where the pid came from: a pid read from Claude Code's own registration file is exact and goes tty-first; a pid the detection had to guess (a same-cwd match or a terminal-tab title, for a process whose registration names a session the history does not know yet) keeps the old title-first order, because a guessed tty can point at a sibling — the case that made title-first the safe choice in 2026-03. Both keys are tried when the session has a title, only the order changes; without one, tty is the only key (src/terminal-switch.ts, flow diagrams in docs/claude-session-integration-design.md)
Feat: a memory warning chip beside ● live when the machine is under pressure — swap past 8GB, or macOS's own pressure level at warn (amber) / critical (red) — with the figures in the live chip's tooltip otherwise. Read from sysctl vm.swapusage and kern.memorystatus_vm_pressure_level on the same refresh as the process table, so it costs nothing extra. Added the night 42 claude processes at 5.1GB pushed a 32GB machine to 18GB of swap: swap was the number that said so first
Feat: normal app mode's window can be resized and reopens at its last position and size (a remembered window that would land on an unplugged display is ignored); the header is already a drag region, so the macOS title-bar double-click action applies to it. Line caps follow the width: the character caps on title, messages, branch, reply and recap were tuned for the 800px default and now scale up with the list's measured width (never down), so a wider window shows more of each line rather than more empty space; the Projects list grows with the window instead of stopping at 480px with a scrollbar mid-window; a ⤢ beside the shortcut label in the header (normal mode only) resets the window to its default size and position, since macOS zoom only restores the previous user size (#148, both steps). Menu-bar mode is re-asserted at every show — default size, centred, not resizable — so a window resized in normal mode does not carry its size across a mode switch
Fix: tooltips now show. Every hint in the switcher (chips, badges, controls, the per-process figures) is drawn by the app instead of relying on the native title tooltip, which Chromium paints only while the window is the key window — a frameless popup the pointer merely crosses usually is not, so the hints almost never appeared
Fix: a session parked at Claude Code's context-limit prompt no longer shows as working forever — no hook fires there, so a working status untouched for 10 minutes is shown as idle (#110)
Docs: README on keeping the machine responsive — sessions grow with time, Spotlight should skip ~/Library/Application Support/Claude and ~/.claude, and what the swap chip means