Skip to content

feat: Multi-agent session grouping and timeline view#65

Merged
leonardocardoso merged 13 commits into
mainfrom
feature/60-61-session-grouping-timeline
Mar 30, 2026
Merged

feat: Multi-agent session grouping and timeline view#65
leonardocardoso merged 13 commits into
mainfrom
feature/60-61-session-grouping-timeline

Conversation

@leonardocardoso
Copy link
Copy Markdown
Member

@leonardocardoso leonardocardoso commented Mar 29, 2026

Summary

  • Parent-child session grouping: Agent sessions discovered from {sessionId}/subagents/ directories are grouped under parent sessions with expandable rows, type badges, and descriptions
  • Gantt timeline view: Apple Charts-based timeline showing concurrent agent execution with color-coded bars and click-to-navigate
  • Project selection restored: Clicking project name shows ProjectSessionsView in detail pane with accent-bordered session cards
  • Bug fixes: ESC dismissing search overlay, stuck loading on re-selecting same session, sessions list width stability

Closes #60
Closes #61

Test plan

  • Unit tests for SessionGroup.group() — 8 tests covering grouping, sorting, orphans, edge cases
  • Screenshot test for multi-agent session view (testMultiAgentSessions)
  • Full build succeeds
  • Manual: verify agent sessions appear grouped under parents with expand/collapse
  • Manual: verify timeline view shows Gantt chart when clicking timeline button
  • Manual: verify clicking project name shows ProjectSessionsView
  • Manual: verify re-selecting same session doesn't cause stuck loading

Replace .onExitCommand/.onKeyPress(.escape) with NSEvent local
monitor that intercepts ESC at the event level before TextField
consumes it.
Scan {sessionId}/subagents/ directories to discover agent sessions
and link them to parent sessions. Group sub-agents under parents in
the sidebar with expandable rows, type badges, and agent count.
Add a Gantt-chart timeline view using Apple Charts to visualize
concurrent session execution.
Replace HSplitView with HStack + custom draggable divider to
prevent the split from rebalancing when detail pane content changes.
Width is persisted via @SceneStorage.
…selection

Guard against re-assigning a stub session over a loaded one when tapping
an already-selected row. Also re-enable project selection on header click.
Chevron toggles collapse, project name sets selectedProject.
Clicking a project name now shows the project detail view with session
cards in the detail pane, restoring the previous behavior.
@leonardocardoso leonardocardoso changed the title feat: Multi-agent session grouping and timeline (#60, #61) feat: Multi-agent session grouping and timeline view Mar 30, 2026
@leonardocardoso leonardocardoso merged commit 008b6c8 into main Mar 30, 2026
1 check passed
@leonardocardoso leonardocardoso deleted the feature/60-61-session-grouping-timeline branch March 30, 2026 01:09
leonardocardoso added a commit that referenced this pull request May 16, 2026
* fix: ESC key dismisses global search overlay

Replace .onExitCommand/.onKeyPress(.escape) with NSEvent local
monitor that intercepts ESC at the event level before TextField
consumes it.

* feat: Multi-agent session grouping and timeline view (#60, #61)

Scan {sessionId}/subagents/ directories to discover agent sessions
and link them to parent sessions. Group sub-agents under parents in
the sidebar with expandable rows, type badges, and agent count.
Add a Gantt-chart timeline view using Apple Charts to visualize
concurrent session execution.

* fix: Prevent sessions list from shrinking on session selection

Replace HSplitView with HStack + custom draggable divider to
prevent the split from rebalancing when detail pane content changes.
Width is persisted via @SceneStorage.

* Increase line limit for session and agent row titles to 2 lines

* Fix stuck loading when re-selecting same session and restore project selection

Guard against re-assigning a stub session over a loaded one when tapping
an already-selected row. Also re-enable project selection on header click.

* Separate project collapse and selection into distinct tap targets

Chevron toggles collapse, project name sets selectedProject.

* Show ProjectSessionsView when project selected without a session

Clicking a project name now shows the project detail view with session
cards in the detail pane, restoring the previous behavior.

* Fix project selection: clear session on click, remove scroll-to-top, add accent border to project session cards

* Move sub-agents badge inside the session row's highlighted area

* Move agent badge inline into session row to prevent overlap

* Add unit tests for SessionGroup grouping logic

* Switch session browser screenshot to dark mode

* Update session browser screenshot to dark mode
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.

Phase 3: Concurrent session timeline view Phase 2: Parent-child session grouping

1 participant