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
A project may now sit with no session at all. Closing the last one no
longer spawns a replacement, and opening a project no longer seeds a first
session — both land on an empty screen, the same shape as the no-project-open
landing screen, with a button that opens a session when you want one. The
sidebar's "+" still picks the kind. An empty project stays empty across a
restart, Home included.
The stored Claude session id is now a provider session id. lich runs four
provider CLIs, but the column, the struct field, the store method and the
hook payload were all still named after Claude alone. The sessions table's claude_session_id is renamed to provider_session_id on open (existing ids
carry over — the rename is the migration, nothing is stranded); store.Session.ClaudeSessionID becomes ProviderSessionID
(providerSessionId over the wire), and SetClaudeSession becomes SetProviderSession. The /session-start hook now takes provider_session_id and still accepts the old claude_session_id so plugin
releases before v0.3.0 keep working — see docs/hooks/session-start.md.
Resume itself stays Claude-only: --resume is a Claude Code flag.
Fixed
Dragging a tab or session card no longer scrolls its strip. Reorder drags
are clamped to the strip's own axis, so pulling a project tab downward (or a
session card sideways) can't overflow the container and trigger dnd-kit's
auto-scroll on the cross axis. The dragged tab and session card also stay
solid instead of turning into a see-through ghost — the old opacity fade is
gone, and the card no longer sits in its translucent hover state (the pointer
rides it for the whole drag) while sliding across its neighbours.
Zoom now works on layouts with a dedicated "+" key (German, for one).
The chords matched only the physical Equal/Minus keys, so on those layouts
nothing claimed the press and Chromium's own zoom ran instead — the exact
double-zoom the physical-key matching was built to prevent. The typed
character is now checked as a fallback.
Stale results can no longer outrace fresh ones in the footer badges. A
slow git-status poll resolving late could overwrite the newer status the
session hooks had just fetched, and the pull-request badge kept showing the
previous directory's PR while the new lookup was in flight.
The command palette reopens clean. Toggling it closed with the hotkey
kept the previous filter and cursor for the next open; and Ctrl+F no longer
opens the terminal search box hidden beneath an open palette.
A failing file picker now says so with an error toast instead of
failing silently.
The self-update download no longer dies on a normal connection. The
binary download shared the 5-second timeout meant for small metadata reads,
and that timeout covers the whole transfer — so on anything but a very fast
link the download was cut mid-stream and self-apply (Windows/macOS) failed
every time. The download now gets its own generous ceiling.
A renamed worktree session keeps its name across keep/resume. Resuming a
kept worktree re-created the session with the "automatic title" flag reset,
so the next AI-generated title overwrote the name you chose. The flag now
survives the park/resume cycle.
Holding a hotkey no longer fires it repeatedly. Key auto-repeat on
Ctrl+Shift+T could spawn a stack of sessions from one held chord (and
Ctrl+K would flap the palette); hotkeys now fire once per press.
A failed in-place restart can be retried. If launching the successor
process failed (say, the binary mid-swap by the package manager), the
restart coordinator latched anyway and every later /restart silently did
nothing until the app was relaunched by hand.
Sessions that exit on their own no longer leak their PTY handle, and
closing a session during its spawn round-trip no longer strands the PTY or
drops a queued update command.