Skip to content

feat: session manager modal - #82

Open
tcsenpai wants to merge 4 commits into
patoles:mainfrom
tcsenpai:feat/session-manager
Open

tcsenpai wants to merge 4 commits into
patoles:mainfrom
tcsenpai:feat/session-manager

Conversation

@tcsenpai

@tcsenpai tcsenpai commented Sep 9, 2026

Copy link
Copy Markdown

Stacked on #76 (folder-prefixed tabs + rename); the diff includes those commits until #76 lands.

Adds a ☰ button in the top bar that opens a modal listing every tracked session: live indicator, display name, folder and full cwd, status and last activity. Click opens the session, ✎ renames it inline (Enter saves, Esc cancels the rename, a second Esc closes the modal), ✕ dismisses it, a filter box narrows by name or path, backdrop click closes.

Custom names live in a shared useSessionNames hook (localStorage) and the label helpers in lib/session-label.ts, so tabs and modal stay in sync.

https://claude.ai/code/session_01AGs5TZo6yxv7NHARHawyJf

Sessions from different projects all showed only their first user message,
making tabs ambiguous in the standalone app and in multi-workspace setups.

- Plumb the session cwd through SessionInfo and lifecycle events for all
  three sources (Claude JSONL watcher, Codex rollout watcher, dev relay).
- Session tabs prefix the label with the folder name when running standalone
  or when sessions span more than one cwd; single-workspace VS Code is unchanged.
- Right-click a tab to rename it inline (Enter saves, Esc cancels, empty
  resets). Names persist in localStorage keyed by session id.

Claude-Session: https://claude.ai/code/session_01AGs5TZo6yxv7NHARHawyJf
Adds a ☰ button in the top bar that opens a modal listing every tracked
session: live indicator, display name, folder and full cwd, status and last
activity. Click opens the session, double-click or ✎ renames it inline, ✕
dismisses it, a filter box narrows by name or path, Esc or backdrop closes.

Custom names move into a shared useSessionNames hook (localStorage) and the
label helpers into lib/session-label.ts, so tabs and modal stay in sync.

Claude-Session: https://claude.ai/code/session_01AGs5TZo6yxv7NHARHawyJf
@cla-assistant

cla-assistant Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

- Session labels were truncated server-side at 14 chars, which made tabs
  unreadable; the limit is now 60 and the tab truncates with an ellipsis.
- Tabs are larger (11px, more padding, max 260px), show the folder as a
  small chip, glow when selected, and dim when the session is idle.
- Tabs are ordered by last activity, most recent first.
- A newly started session no longer steals the selection when the user is
  already looking at one; auto-select only happens when nothing is selected.

Claude-Session: https://claude.ai/code/session_01AGs5TZo6yxv7NHARHawyJf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant