feat(composer): add live activity feed (experiment)#1575
Draft
tellaho wants to merge 4 commits into
Draft
Conversation
Replace the plain agent list in the below-composer 'Agents working' popover with an h-48 merged live activity preview. Per-agent observer transcripts for the channel's working agents are interleaved into one chronological stream (stable k-way merge on item timestamps), rendered with the compact transcript presenters from the agent activity view, and badged per consecutive same-agent run. - composerLiveActivity.ts: channel-scoped merge + consecutive-run grouping helpers, capped at 80 entries for the preview window - ComposerLiveActivityFeed.tsx: compactPreview-variant feed with auto-tail via useAnchoredScroll (memoized entry snapshot so streaming updates re-anchor without effect churn) and explicit agent-badge click-through buttons — no nested interactive wrappers - useObserverEvents.ts: useAgentTranscripts hook for index-aligned multi-agent snapshots with referential caching to keep useSyncExternalStore stable - BotActivityBar.tsx: popover widened to w-80, feed above a compact per-agent footer that keeps the existing click-through rows Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Add a 'Composer live activity' entry to preview-features.json and gate
the merged live activity feed in the agents-working popover on
useFeatureEnabled("composerLiveActivity"). When the experiment is off,
the popover renders exactly the pre-feed layout (w-64, plain agent list
with sm avatars) so prod behavior is unchanged by default. The existing
agents-working/typing composer affordance is untouched either way.
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…ivity * origin/main: fix(desktop): hydrate reactions for Inbox context messages (#1596) fix: cleanup old screenshots that my agents committed (#1598) chore(release): release Buzz Desktop version 0.3.46 (#1585) fix(desktop): preserve agent model/provider when persona snapshot fields are blank (#1583) feat(acp,desktop): identify and reap stale agent harness processes (#1582) feat(desktop): active-draft badge, send-from-drafts confirm dialog, thread-deleted state (#1581) fix(desktop): treat baked build env vars as satisfying required agent config (#1580) feat(desktop): add "Copy image" to image right-click context menu (#1579) fix(nest): use buzz-dev symlink name for dev builds (#1587) fix(composer): address image-editor follow-up nits on #1491 (#1565) fix(desktop): render black static boot screen (#1570) feat(agents): group activity tool bursts (#1571) feat(desktop): aggregated overview rail, commit detail page, and full breadcrumbs (#1573) fix(desktop): fetch profiles for reaction actors and thread-reply authors (#1550) refactor(desktop): unify EditAgentDialog styling with PersonaDialog (#1540) feat(desktop): add 10-minute message grouping window (#1578) feat(desktop): unify sidebar section actions into a per-section ⋮ menu (#1577) feat(desktop): emoji avatar picker for agents + reliable picker scroll (#1576) Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…ivity * origin/main: feat(desktop): restart-required badge from spawn-time config hash (#1602) feat(desktop): boot-time reconcile of managed agents to relay events (#1601) feat(desktop): canonical <PubKey> component — hover to view/copy full keys, owner "you" labels (#1589) Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Category: new-feature
User Impact: Users can opt into a composer popover that previews live agent activity while keeping the current agents-working indicator as the default experience.
Problem: The composer only showed that an agent was working, which made it hard to understand what the agent was doing without opening the full activity surface. The observer path also needs real production testing, so the new UI needs to be safely hidden from everyone who has not opted in.
Solution: This adds an off-by-default Composer live activity experiment and uses it to switch the agents-working popover between the existing compact agent list and the new merged live activity preview. The default behavior stays unchanged, while the experiment gives us a production-safe way to validate observer-backed activity in the composer.
File changes
preview-features.json
Adds the Composer live activity preview feature so it appears in Settings → Experiments and remains off by default.
desktop/src/features/channels/ui/BotActivityBar.tsx
Gates the composer popover on the new experiment. The disabled state keeps the existing narrow agents-working list, while the enabled state renders the wider live-activity feed with the compact agent footer.
desktop/src/features/channels/ui/ComposerLiveActivityFeed.tsx
Adds the popover feed that merges working agents' observer transcripts, renders compact activity rows, and preserves click-through into the full agent activity surface.
desktop/src/features/channels/ui/composerLiveActivity.ts
Adds the channel-scoped merge and grouping helpers used to build a stable multi-agent activity preview.
desktop/src/features/channels/ui/composerLiveActivity.test.mjs
Covers the merge, channel filtering, stable ordering, grouping, and preview-size behavior for the new feed projection.
desktop/src/features/agents/ui/useObserverEvents.ts
Adds a multi-agent transcript hook so the composer preview can subscribe to several agent transcripts without creating unstable snapshots.
Reproduction Steps
Screenshots/Demos
Experiment off — existing fallback behavior
Experiment on — live activity feed
Validation
pnpm typecheckpnpm lintpnpm test(1928/1928 passing)desktop-tauri-testCoordination: buzz://message?channel=18557e3b-8753-435b-a609-bb52de029a47&thread=cf8703e2c9205e94a641d1ce4b85d00458d9aadbce91ec4d384c1474f5ad575f