Skip to content

feat(agent-org): agent Org member views can show ambiguous Group Chat content and overlapping pinned headers #651

Description

@ShiboSheng

Problem

During manual validation of #642, the Agent Org member view exposed three related UI problems:

  1. The expanded Root Session lists every materialized member, including members that never received a task. In the observed run, Implementer and Reviewer had activity, while Planner and Tester had no tasks, messages, or events. The empty members still looked like normal selectable destinations in parts of the UI.
  2. Opening an inactive member can leave or activate the shared Group Chat view. Because Group Chat contains Implementer and Reviewer events, it can look as if the inactive member contains another members transcript. The breadcrumb and view selector do not make this distinction clear enough.
  3. When an active member transcript is scrolled to the top, the member or pagination controls, pinned turn header, and first activity row can visually crowd or overlap one another.

The persisted data was checked: Planner, Tester, Implementer, and Reviewer have distinct Session mappings. Planner and Tester have no activity, so this is not Run–Session ownership corruption.

Reproduction

  1. Open an Agent Org with Planner, Implementer, Reviewer, and Tester members.
  2. Run a task that assigns work only to Implementer and Reviewer.
  3. Expand the Root Session in the sidebar.
  4. Open Tester or Planner and observe the empty member state and current Group Chat/member selector state.
  5. Open Implementer and scroll the transcript to the very top.
  6. Observe the pinned controls and first transcript row.

Expected behavior

  • Inactive members are consistently marked, disabled, hidden, or given an explicit empty state.
  • The UI clearly distinguishes Group Chat from a members private activity.
  • Switching to an inactive member never presents merged or stale content as if it belonged to that member.
  • The pinned controls and transcript content do not overlap at the top of the panel.
  • The behavior remains correct after refresh and full application restart.

Scope

This was discovered while validating #642, but #642 PR 1 contains no TypeScript, TSX, or CSS changes. It is separate from exact Run–Session ownership and from the planned multi-Run deletion PR.

Acceptance criteria

  • Sidebar and member switcher use a consistent rule for inactive members.
  • Inactive-member navigation has an explicit, understandable result.
  • Group Chat mode is visually unambiguous in the breadcrumb and selector.
  • No member can appear to contain another members private transcript.
  • The transcript top area has no pinned-header overlap at supported window sizes.
  • Add focused frontend tests for switching between Group Chat, active members, and inactive members.
  • Add visual or rendered E2E coverage for the pinned-header boundary if the existing harness supports it.

Metadata

Metadata

Assignees

Labels

Effort: MediumUXImprovements to user experience, workflow smoothnessbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions