Skip to content

[Feature]: Visually group sidebar agent rows by multi-pane tab #14289

Description

@pstanton237

Problem or use case

The sidebar renders one agent row per terminal pane, but the rows are presented as a flat list under the worktree card.

When multiple agent sessions run in split panes within the same terminal tab, there is no visual indication that those rows belong to one tab. At a glance, it is difficult to distinguish these two cases:

  • several independent tabs with one agent each
  • one tab containing several agent panes

The ambiguity becomes more noticeable during parallel work, especially when the pane labels are similar. In practice, I have repeatedly mistaken sibling panes for independent tabs and had to inspect the terminal layout to reconstruct which sessions belong together.

Current UI

The rows below belong to panes in the same tab, but they appear as unrelated sibling rows.

Current Orca sidebar showing agent rows from panes in the same tab without visual grouping

Proposed solution

Add a lightweight tab-level group when multiple sidebar agent rows belong to the same terminal tab.

  • Show the tab title and pane count in a small parent row.
  • Nest the related agent rows beneath that parent.
  • When a pane has a user-assigned title, use it as the child row label; otherwise retain the current label fallback.
  • Keep each agent row's existing status, provider icon, timestamp, and exact-pane navigation behavior.
  • Leave single-pane tabs unchanged so the common case does not gain another hierarchy level.
  • Use the experimental new card style as the initial design baseline.

Concept mockup

Group only multi-pane tabs. Single-pane tabs remain unchanged.

Current and proposed Orca sidebar comparison showing tab-aware grouping for multi-pane tabs

The grouping can remain presentational: sidebar agent rows already carry their terminal tab identity, so rows can be grouped without changing the underlying agent model.

Orca already supports assigning a title to an individual pane through Set Title… and persists it per layout leaf in titlesByLeafId. However, the sidebar conversation-name path currently resolves from tab-level title fields and does not read the pane's assigned title. Surfacing that existing title on the grouped child row would make parallel agents easier to identify without introducing another naming model.

If this direction fits the sidebar information architecture, I would be happy to implement it after the interaction and scope are agreed on.

Alternatives or additional context

Prefixing every row with its tab title would clarify ownership, but it repeats text and still does not express the hierarchy as clearly. Wrapping every single-pane tab would add unnecessary visual noise.

Related work:

Those changes affect row labels, state, or content. This proposal is specifically about showing the tab-to-pane relationship in the sidebar. It would complement #11069 and #11070 by making tab ownership visible even when child rows use pane-specific labels, but it would not replace their title-resolution work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions