Skip to content

Mobile: 1:1 agent DMs have no entry point to the live agent activity transcript #6565

Open

Description

@Tony-ooo

Summary

On mobile, a 1:1 DM with an agent offers no way to view the agent's live activity transcript. The same conversation on desktop shows the activity pane fine, and channel conversations expose the transcript through the members sheet — but the mobile DM surface has no entry point at all, even though the data layer already delivers everything needed.

Current behavior (mobile)

The live agent activity transcript lives in AgentActivitySheet
(mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart). Its
only call site is the channel members sheet bot row:

  • mobile/lib/features/channels/members_sheet.dart:50-59 — openActivity(ChannelMember bot) → AgentActivitySheet

In a 1:1 DM there is no path to that sheet:

  • mobile/lib/features/channels/channel_detail_page/app_bar.dart:7-13 — _showsMembersAction returns false for DM channels with exactly 2 participants, so the members button (and its working-bot dot + "View activity" menu) never renders in a 1:1 agent DM.
  • mobile/lib/features/channels/channel_detail_page/app_bar.dart:195-326 — _DmAppBarTitle renders avatar/name/presence with no tap handler, so there is no profile or activity affordance from the DM header.
  • mobile/lib/features/profile/user_profile_sheet.dart — no activity-related action either.

Result: while an agent works in a DM, the phone shows only "typing…" with no way to watch tool calls / progress, for minutes at a time.

Why this looks like a small fix

Everything behind the sheet already works for DMs:

  • mobile/lib/features/channels/agent_activity/observer_subscription.dart:135-149 subscribes owner-scoped to kind 24200 observer frames globally (not per-channel).
  • observerSubscriptionProvider (observer_subscription.dart:357-373) includes frames where frame.channelId == null || frame.channelId == key.channelId.
  • Observer frames carry the turn's channel UUID, and DM turns are channel-scoped like any other channel (crates/buzz-acp/src/pool.rs keys sessions by channel_id; crates/buzz-acp/src/observer.rs stamps channel_id onto every event), so opening the sheet keyed to the DM channel id shows the DM transcript.

The gap is purely a missing UI entry point on the mobile DM surface.

Expected behavior

From a 1:1 agent DM on mobile, a user should be able to open the agent's live activity transcript — e.g. via a tappable DM header (profile → View activity), or a working-indicator affordance in the DM itself, consistent with how channels expose it today.

Desktop comparison (verified working)

Desktop opens the session pane inside any channel view, DMs included:

  • desktop/src/features/channels/ui/ChannelScreen.tsx:775 — AgentSessionProvider wraps ChannelScreen unconditionally.
  • desktop/src/features/channels/ui/useChannelAgentSessions.ts:210-230 — openAgentSession falls back to the active channel id, scoping the pane to the DM.
  • Entry points: members sidebar "View activity" (ChannelScreen.tsx:972), composer activity accessory while working (ChannelPane.tsx:741-751), and profile popover "View activity log" (UserProfilePopover.tsx:496).

(See also #6439 for a separate desktop regression about inline tool calls not rendering at the bottom of DMs.)

Related but distinct

Environment

  • Mobile app (Flutter), current main verified at 040b203.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions