Skip to content

feat: replace Resume Session menu with Explore Sessions window#55

Merged
gi11es merged 50 commits intomasterfrom
worktree-session-explorer
Mar 30, 2026
Merged

feat: replace Resume Session menu with Explore Sessions window#55
gi11es merged 50 commits intomasterfrom
worktree-session-explorer

Conversation

@gi11es
Copy link
Copy Markdown
Owner

@gi11es gi11es commented Mar 30, 2026

Summary

  • Replaces the right-click "Resume Session" dropdown on projects with a single "Explore Sessions" menu item that opens a dedicated session explorer window
  • Two-column layout: left pane shows bookmarks + searchable session list, right pane shows conversation timeline with per-message fork and bookmark actions
  • Adds --fork-session support to createTabInProject for branching conversations
  • AI-generated session summaries via claude --print (on-demand, cached)
  • Bookmark system lets users star specific points in conversations as reusable "save points"
  • Mid-conversation forking creates a truncated JSONL copy and launches claude --resume <id> --fork-session

Closes #52

Test plan

  • Right-click a project → "Explore Sessions" menu item appears (no more "Resume Session" submenu)
  • Clicking "Explore Sessions" opens the session explorer window with correct title
  • Sessions listed in left pane sorted by most recent, with search filtering
  • Selecting a session shows its timeline in the right pane
  • "Resume" button creates a new tab and closes the explorer
  • "Fork" button creates a new tab with --fork-session and closes the explorer
  • "Fork here" on a timeline entry creates a truncated JSONL and opens a forked session
  • Star toggle prompts for a label and adds a bookmark
  • Bookmarks appear at the top of the left pane list with gold tint
  • Clicking a bookmark selects its session and scrolls to the bookmarked message
  • Summary generation shows spinner, then updates with AI summary
  • Explorer window properly deallocates on close (no memory leak)

🤖 Generated with Claude Code

gi11es and others added 30 commits March 30, 2026 16:03
Implement the two main UI components for the session explorer:
- SessionExplorerWindowController: NSSplitView window with left pane
  containing search field and bookmark/session list table view
- SessionExplorerTimelineController: right pane with session header
  (Resume/Fork buttons) and vertical timeline of conversation turns
  with bookmark toggling and fork-at-point support

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…nce, safety)

- BookmarkManager: add dateDecodingStrategy = .iso8601 so bookmarks survive restart
- SessionExplorerWindowController: clear associated object in windowWillClose to break retain cycle
- SessionExplorerWindowController: guard against nil window in promptForBookmarkLabel (removes force unwrap)
- ContextMonitor.listSessions: revert to head-only read (8192 bytes) for first message; set messageCount to 0 for lazy computation
- SummaryManager: move readDataToEndOfFile() before waitUntilExit() to prevent pipe deadlock
- SidebarController: remove dead ResumeSessionInfo class and resumeSessionMenuAction method

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…ued sessions, show below timestamp in sidebar
gi11es added 20 commits March 30, 2026 19:49
@gi11es gi11es merged commit 64dd588 into master Mar 30, 2026
3 checks passed
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.

Turn session resume dropdown into session explorer screen

1 participant