feat(profile): embed live activity feed in profile aux panel#1380
Draft
tellaho wants to merge 20 commits into
Draft
feat(profile): embed live activity feed in profile aux panel#1380tellaho wants to merge 20 commits into
tellaho wants to merge 20 commits into
Conversation
62606eb to
618f550
Compare
36b91b0 to
be9f530
Compare
be9f530 to
dcb1ea5
Compare
Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Synthesize a minimal profile activity agent for declared-owned relay agents so observer and active-turn bridges track the same pubkey. - Relax the profile live activity embed to accept the shared activity-agent shape instead of requiring a full local managed-agent record. - Extract the activity-agent resolver from the oversized profile panel to keep desktop file-size guards intact. - Add an E2E regression covering a viewer-owned relay-only agent switching from the static activity row to the live activity embed. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Derive profile embed scope from observer feed data so the pane stays mounted after turn_completed, matching full activity panel behavior without changing active-turn store semantics for working badges. - Add profileActivityFeedScope helper subscribing to observer + active-turn stores - Render embed when feed has content, not only during live turns - Switch header to "Recent activity" and drop elapsed timer after completion - Export syncAgentObserverEvents for test harness replay - Extend E2E seed helper with turn_completed and regression coverage Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Turn the embedded profile activity preview into a full-card ingress that opens the full activity feed scoped to the currently selected channel. - Replace the explicit open-full label with a flattened accent pill that displays friendly last-live relative time such as "Just now", "1m ago", and "1h ago". - Track latest activity timestamps per channel so persisted and live previews can render accurate last-live labels. - Disable embedded transcript row pointer events and auto-tail the compact transcript so preview clicks route to the activity feed while new turns stay visible. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Tighten the embedded activity preview so auto-tailed transcripts use a real flex height chain and include scrollable bottom breathing room. - Flatten compact preview message rendering by adding data-role hooks for assistant and user message shells, avatars, and bubbles. - Scope compact preview typography and line-height overrides so embedded activity rows read denser without changing the full activity feed. - Restyle the preview surface with a muted fill, top and bottom gradient overlays, a Latest Activity footer label, and a floating last-live pill. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Adjust the compact activity preview edge fades so the top fade is shorter and the bottom label fade has more vertical coverage. - Keep the Latest Activity label inside the non-interactive overlay while preserving the muted preview treatment. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Remove Markdown compact/tight variants so Markdown inherits font sizing and line height from its rendering container. - Add an explicit compact transcript variant for the profile activity preview instead of relying on deep selector overrides. - Render agent sent-message previews through Markdown so formatting is consistent with other transcript messages. - Keep compact preview text small while preserving the full activity feed's normal chat bubble layout. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Remove the visible assistant avatar, name, and timestamp header from activity feed message rows so agent output no longer reads like a chat-authored message. - Move assistant message timestamps to the message body hover title, matching the timestamp tooltip pattern used by other activity rows. - Increase transcript row spacing to `gap-4` across top-level rows and turn groups for a less cramped feed. - Apply `leading-5` to non-compact agent activity markdown renderers while preserving the compact profile preview at `text-xs leading-4`. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Restyle runtime activity user messages as transparent bordered cards and agent sent-message cards as muted bubbles. - Add overflow-aware max-height clamping with matching bottom fades for clipped transcript cards. - Open source channel messages when clicking non-compact transcript bubbles that have message links. - Make non-compact user and agent avatars open the matching profile panel while keeping compact preview avatars passive. - Pass the agent pubkey through compact message summaries so avatar profile navigation can target the right agent. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Increase the profile live activity embed from h-48 to h-56 so the compact transcript preview shows another h-8 of content. - Use tighter compact-preview transcript spacing for top-level rows and turn groups while preserving the full activity feed spacing. - Keep the existing preview ingress overlay and auto-tail behavior unchanged so clicks still open the full activity feed. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Show the active channel name under the Latest Activity label when the embedded activity preview is channel-scoped. - Increase the bottom gradient overlay from h-20 to h-28 so both overlay text lines remain readable over transcript content. - Preserve the existing preview click behavior and channel switcher state while adding the scoped label. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Increase the Latest Activity overlay label to text-base and the scoped channel label to text-sm for better readability. - Expand the lower gradient overlay from h-28 to h-36 so the larger two-line label has enough contrast over transcript content. - Remove the top gradient overlay so the compact activity preview content remains unobscured above the footer label. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Replace the profile activity channel chip row with an Embla carousel that switches channel previews inside the clipped embed card, with progress dots and a fixed overlay that updates from the active slide index. - Add shadcn-style Carousel wrapper and embla-carousel-react dependency - Refactor ProfileLiveActivityEmbed to one slide per channel with lazy-mounted ManagedAgentSessionPanel instances (data-mounted on each slide) - Keep overlay gradient, Latest Activity label, channel name, and dots static while only slide content translates within the rounded frame - Update channels E2E for current labels and add multi-channel dot switching coverage including lazy-mount assertions Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Make compact activity feed typography consistently use compact text sizing across tool rows, sent-message previews, todo summaries, and shared activity row labels. - Avoid conflicting `text-sm` and `text-xs` classes in compact message containers so compact sizing wins reliably. - Remove the top overlay fade from the profile activity card and strengthen the bottom fade for better label and carousel-dot readability. - Preserve the refined carousel dot hit targets and compact activity label treatment in the profile preview card. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
835b230 to
df07da3
Compare
Only render pagination when two or more channel slides exist, and update the single-channel profile activity E2E to assert dots stay hidden. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Make expandable activity row summaries full-width instead of shrink-wrapped so grouped labels stay aligned to the left edge in compact profile previews. - Preserve the existing row spacing, chevron behavior, and open-state coloring while preventing centered-looking group labels such as `Ran 4 commands`. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
- Add a loading empty state for agent transcripts so active profile activity embeds show a spinner while waiting for ACP events to arrive. - Pass the live pending state from the profile activity feed into the managed session panel with copy that sets expectations for incoming events. - Move compact embed vertical padding from the panel wrapper to the transcript scroll container so transcript content can scroll and clip against the card bounds correctly. 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.
Summary
Stacked on PR-3 (the activity-feed rebuild). When a managed agent is live, the Profile auxiliary panel replaces the static "Activity log → View" ingress row with an embedded live activity feed (
h-48, ~192px). Clicking the embed — or pressing Enter/Space — opens the existing full activity view. When the agent is idle, the original ingress row is shown unchanged.What changed
Activity log → Viewingress with an embeddedh-48live feed whenuseActiveAgentTurnsreports the agent is live.ManagedAgentSessionPanel/AgentSessionTranscriptListcomponents (same feed, height-constrained).#channelpill switcher swaps the feed (viachannelIdintoManagedAgentSessionPanel). Falls back to the next active channel if the selected one goes idle.Checks (Bart, in-worktree)
pnpm exec biome check✅pnpm typecheck✅pnpm test✅pnpm check:file-sizes && pnpm check:px-text✅desktop-test,rust-tests,desktop-tauri-test,mobile-test✅Notes
tho/activity-feed-rebuild; base will retarget tomainonce PR-3 lands. Review of the rebuilt feed itself belongs in PR-3.c1de233b(embed),6a52216d(per-channel scoping + switcher).Co-authored-by: Taylor Ho taylorkmho@gmail.com
Signed-off-by: Taylor Ho taylorkmho@gmail.com