block / block/buzz

iOS UX: add channel-scoped agent profiles with threads and recent tool activity

Open
#5,067 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## Summary

Add an agent-specific profile experience on iOS that can be scoped to the current channel and used to browse where the agent is active: channel/thread appearances and recent tool calls.

The existing profile sheet treats agents like general users. From mobile, a user can inspect identity and start a DM, but cannot answer: "Where is this agent being used in this channel?" or "What did it do recently?"

## Proposed UX

- Open an agent profile from a member row, mention, typing indicator, or activity view.
- Default to the current channel when launched from a channel or thread.
- Provide swipeable/tabs views for **Profile**, **Threads**, and **Recent activity**.
- In **Threads**, list the current channel's threads/conversations where the agent was mentioned or participated, with navigation back to each source.
- In **Recent activity**, show the agent's recent channel-scoped observer/tool transcript with timestamps and source links.
- Allow changing the channel scope when the agent is present in multiple channels.
- Keep owner-only/decrypted observer data subject to the existing authorization model; do not expose private tool payloads to unauthorized members.

## Source references

- [`user_profile_sheet.dart`](https://github.com/block/buzz/blob/2ea9385015fb922de2adf0a53e86fc5a21d07b90/mobile/lib/features/profile/user_profile_sheet.dart#L23-L80) accepts only a pubkey and has no channel/agent activity context.
- [`user_profile_sheet.dart`](https://github.com/block/buzz/blob/2ea9385015fb922de2adf0a53e86fc5a21d07b90/mobile/lib/features/profile/user_profile_sheet.dart#L117-L221) builds a general identity/profile action sheet rather than an agent workspace view.
- [`agent_activity_sheet.dart`](https://github.com/block/buzz/blob/2ea9385015fb922de2adf0a53e86fc5a21d07b90/mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart#L14-L40) already has a channel-and-agent-scoped activity surface that can be reused.
- [`observer_subscription.dart`](https://github.com/block/buzz/blob/2ea9385015fb922de2adf0a53e86fc5a21d07b90/mobile/lib/features/channels/agent_activity/observer_subscription.dart#L15-L35) defines the existing channel-scoped observer key and transcript state.

## Related work

This is narrower than the workspace-wide fleet view in #4169 and the remote-agent roster in #3996. It focuses on an individual agent's channel context and recent work on iOS. See also #3907 for mobile activity visibility and #5062 for the prior THREAD/client UX report.

Contributor guide

Open the contributing guide

Research direction

Start with mobile/lib/features/profile/user_profile_sheet.dart and compare it with mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart and observer_subscription.dart. Define the channel-scoped agent profile flow around the existing observer key and transcript state; done means Profile, Threads, and Recent activity views support source navigation, channel changes, and the existing authorization rules.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, flutter, ios
Domain
mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.