Skip to content

feat(desktop-messages): reveal Buzz metadata in inline chips - #6252

Draft
tellaho wants to merge 20 commits into
mainfrom
tho/buzz-chip-metadata
Draft

feat(desktop-messages): reveal Buzz metadata in inline chips#6252
tellaho wants to merge 20 commits into
mainfrom
tho/buzz-chip-metadata

Conversation

@tellaho

@tellaho tellaho commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Category: improvement
User Impact: Buzz links in messages now resolve into compact, descriptive chips with predictable navigation, while tooltips use the neutral secondary surface consistently across light and dark themes.

Problem: Raw Buzz-native links and opaque identifiers make message context difficult to scan, while oversized previews disrupt the conversation. Missing, delayed, or deleted metadata also needs a stable presentation that does not mislead users or break navigation.

Solution: Resolve native metadata into concise inline labels, retain muted secondary fallbacks and distinct deleted states, and keep every chip on the existing navigation path. Migrate shared and rich tooltips from primary to secondary semantic tokens—including dedicated huddle handling—while preserving readable contrast and authoritative project context.

File changes

desktop/src/features/communities/useCommunityInit.ts
Primes channel metadata needed to resolve native links promptly.

desktop/src/features/messages/lib/messageLinkMetadata.test.mjs
Covers message preview extraction, fallbacks, and deleted-message semantics.

desktop/src/features/messages/lib/messageLinkMetadata.ts
Normalizes fetched message metadata into compact labels and status-aware presentation.

desktop/src/features/messages/ui/SentFromThreadLine.tsx
Provides thread context to linked-message metadata resolution.

desktop/src/shared/lib/useResolvedLinkPreviews.ts
Exposes resolved preview state for native entity chips.

desktop/src/shared/styles/globals/markdown.css
Adds compact chip layout and semantic disabled-state styling.

desktop/src/shared/styles/globals/theme.css
Defines the semantic colors used by unavailable and deleted chips.

desktop/src/shared/ui/markdown.test.mjs
Exercises native-link rendering and provider-backed entity metadata behavior.

desktop/src/shared/ui/markdown.tsx
Routes native markdown links through metadata-aware chip components without changing navigation contracts.

desktop/src/shared/ui/markdown/ChannelDeepLink.test.mjs
Covers resolved, unresolved, private, archived, and forum channel presentations.

desktop/src/shared/ui/markdown/ChannelDeepLink.tsx
Renders channel names and concise channel metadata inline with stable fallbacks.

desktop/src/shared/ui/markdown/MessageLinkPill.tsx
Renders loading, ready, unavailable, DM, forum, and deleted message states compactly.

desktop/src/shared/ui/markdown/entityLinks.tsx
Enriches repository, issue, and pull-request chips and uses containing-project context in tooltips.

desktop/src/shared/ui/markdown/types.ts
Extends markdown runtime metadata required by native chip rendering.

desktop/src/shared/ui/markdown/useMessageLinkMetadata.ts
Fetches and classifies linked-message metadata while preserving navigable fallbacks.

desktop/src/testing/e2eBridge.ts
Adds deterministic metadata controls for runtime visual and navigation tests.

desktop/tailwind.config.js
Makes semantic disabled colors available to chip styles.

desktop/tests/e2e/entity-link-recipient-cards.spec.ts
Verifies entity labels, project-aware tooltips, delayed metadata, and navigation behavior.

desktop/tests/e2e/navigation.spec.ts
Verifies channel and message chip states, metadata resolution, deletion handling, and navigation.

desktop/src/shared/ui/tooltip.tsx
Migrates the shared tooltip surface from the primary color pair to the semantic secondary pair while retaining predictable pointer dismissal.

desktop/src/features/agents/ui/RestartDiffBadge.tsx
Aligns restart-diff tooltip values and supporting copy with the secondary tooltip foreground.

desktop/src/features/channels/ui/AddChannelBotTeamsSection.tsx
Aligns rich team tooltip descriptions, persona chips, avatars, and names with secondary tooltip semantics.

desktop/src/features/projects/ui/ProjectAuthorIdentity.tsx
Uses the matching secondary tooltip foreground for project author metadata.

desktop/src/features/projects/ui/ProjectCards.tsx
Aligns repository-unavailable tooltip descriptions with the secondary tooltip foreground.

desktop/src/shared/styles/globals/utilities.css
Makes huddle tooltips consume their dedicated palette directly without misleading primary or secondary aliases.

desktop/src/shared/styles/globals/tooltipSemantics.test.mjs
Pins direct huddle-token consumption and rejects semantic alias drift.

desktop/tests/e2e/tooltip-semantics.spec.ts
Verifies simple and rich tooltip surfaces and descendant tokens in Buzz light and Catppuccin Mocha dark themes.

desktop/playwright.config.ts
Registers tooltip semantic coverage in the desktop smoke suite.

Reproduction steps

  1. Run the desktop app and open a message containing Buzz links for a channel, message, repository, issue, and pull request.
  2. Confirm each link appears as a compact inline chip rather than a raw identifier or expanded preview.
  3. Hover the chips and confirm the neutral secondary tooltip adds concise context without duplicating the visible label.
  4. Open each chip and confirm it follows the same channel, message, repository, issue, or pull-request navigation as before.
  5. Inspect links while metadata is loading, unavailable, or definitively deleted and confirm the fallback remains compact, legible, and navigable where appropriate.
  6. In Buzz light and Catppuccin Mocha dark themes, compare a simple channel-members tooltip and the rich Add agents team tooltip; both should use secondary semantics with readable nested content.

Screenshots

The complete 17-state matrix is shown as independent rows in both the default light theme and Catppuccin Mocha with an orange accent.

State Default light Dark · orange accent
Public stream channel tooltip Public stream channel tooltip — default light Public stream channel tooltip — dark orange accent
Private forum channel tooltip Private forum channel tooltip — default light Private forum channel tooltip — dark orange accent
Public forum channel tooltip Public forum channel tooltip — default light Public forum channel tooltip — dark orange accent
Channel references, including unresolved Channel references, including unresolved — default light Channel references, including unresolved — dark orange accent
Unknown channel permalink Unknown channel permalink — default light Unknown channel permalink — dark orange accent
Archived channel tooltip Archived channel tooltip — default light Archived channel tooltip — dark orange accent
Message loading · fetching metadata Message loading · fetching metadata — default light Message loading · fetching metadata — dark orange accent
Ready stream message Ready stream message — default light Ready stream message — dark orange accent
Ready forum message Ready forum message — default light Ready forum message — dark orange accent
Ready DM message · one-line secondary byline Ready DM message · one-line secondary byline — default light Ready DM message · one-line secondary byline — dark orange accent
Definitively deleted message · faded foreground Definitively deleted message · faded foreground — default light Definitively deleted message · faded foreground — dark orange accent
Unavailable metadata fallback · link remains navigable Unavailable metadata fallback with tooltip · link remains navigable — default light Unavailable metadata fallback with tooltip · link remains navigable — dark orange accent
Repository entity Repository entity — default light Repository entity — dark orange accent
Pull request entity Pull request entity — default light Pull request entity — dark orange accent
Issue entity Issue entity — default light Issue entity — dark orange accent
Entity metadata fallback Entity metadata fallback — default light Entity metadata fallback — dark orange accent
Composer atoms Composer atoms — default light Composer atoms — dark orange accent

Tooltip semantic surface spot check

Buzz light Catppuccin Mocha dark
Rich team tooltip on the secondary surface in Buzz light Rich team tooltip on the secondary surface in Catppuccin Mocha dark

tellaho added 10 commits August 18, 2026 15:25
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>
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>
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>
@tellaho
tellaho force-pushed the tho/buzz-chip-metadata branch from aff62ed to 38f3c22 Compare August 18, 2026 22:30
tellaho added 10 commits August 18, 2026 17:19
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>
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>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant