fix(link-preview): restore Buzz entity link cards - #5494
Merged
Conversation
tellaho
force-pushed
the
tho/entity-link-recipient-cards
branch
3 times, most recently
from
August 10, 2026 18:09
7d9f7d8 to
9389405
Compare
Render recognized Buzz PR, issue, and repository cards from relay metadata or safe fallbacks when messages do not contain sender-authored preview snapshots. Keep external previews snapshot-only and prevent conflicting entity snapshots from overriding relay-authenticated titles. Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
tellaho
force-pushed
the
tho/entity-link-recipient-cards
branch
from
August 10, 2026 18:27
9389405 to
fa25fef
Compare
Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
tellaho
force-pushed
the
tho/entity-link-recipient-cards
branch
from
August 10, 2026 19:17
a66ce98 to
7bc70b0
Compare
tellaho
marked this pull request as ready for review
August 10, 2026 21:38
wesbillman
approved these changes
Aug 11, 2026
atishpatel
added a commit
that referenced
this pull request
Aug 11, 2026
…overy * origin/main: fix(link-preview): reliably render previews sent right after they resolve (#5245) fix(link-preview): restore Buzz entity link cards (#5494) chore(release): release Buzz Desktop version 0.5.9 (#5521) feat(cli): add --visibility flag to channels update (#5119) Polish desktop onboarding flow (#5310) fix(desktop): quiesce renderer polling while hidden (#3677) (#5490) fix(channels): restore member invitations to private channels (#5493) perf(ci): experiment with sccache for relay builds (#5224) fix(desktop): bound nine unbounded localStorage stores (#5454) feat(desktop): time-based sweep for stale localStorage caches (#5453) ci(release): gate OSS desktop auto-update promotion (#5398) fix(release): pin desktop PR operations to block/buzz (#5212) fix(search): surface exact short profile names (#5480) Reduce repeated ACP session context (#5423) feat(desktop): NIP-AM agent-usage backend — P2 emission/transport/archive + P4a aggregation/D6 (#4000) fix(desktop): resolve overlapping member mentions (#5225) Signed-off-by: Brainy Bumble <0ed7657b57c0e8a9f5288390dd6c8d5d0a3a06abe9b01b9006814f52077d6cdf@buzz.block.builderlab.xyz> Co-authored-by: Atish Patel <atish@squareup.com> Signed-off-by: Atish Patel <atish@squareup.com>
wpfleger96
added a commit
that referenced
this pull request
Aug 11, 2026
Bring in main's runtime.rs mesh acp_model wire translation so local checks and CI both run on the merged tree. Clean auto-merge; the PR's fail-closed spawn gating and main's model translation touch disjoint regions of spawn_agent_child. * origin/main: (24 commits) Improve desktop search scoping (#5306) Add glass appearance and cohesive settings (#5478) Add Send to channel for thread messages (#5305) Fix macOS attachment picker lifecycle and allow inert HTML downloads (#5569) fix(desktop): preserve fresh channel timelines (#5577) fix(desktop): suppress fresh focus-return refetches for channels and home-feed (#5535) chore: mesh upgrade, clean up legacy special case code, simplify model selection for mesh (#5289) fix(desktop): preserve theme when opening communities (#5266) fix(link-preview): resolve YouTube videos through oEmbed (#5520) fix(buzz-agent): harden Databricks OAuth token cache and callback (#5534) fix(link-preview): reliably render previews sent right after they resolve (#5245) fix(link-preview): restore Buzz entity link cards (#5494) chore(release): release Buzz Desktop version 0.5.9 (#5521) feat(cli): add --visibility flag to channels update (#5119) Polish desktop onboarding flow (#5310) fix(desktop): quiesce renderer polling while hidden (#3677) (#5490) fix(channels): restore member invitations to private channels (#5493) perf(ci): experiment with sccache for relay builds (#5224) fix(desktop): bound nine unbounded localStorage stores (#5454) feat(desktop): time-based sweep for stale localStorage caches (#5453) ... Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz> Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@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: fix
User Impact: Buzz pull request, issue, and repository links now show compact, useful metadata cards in received messages, including messages sent by agents and the CLI.
Problem: Sender-authored snapshots protect recipients from external preview fetches, but that change also removed recipient-side cards for trusted Buzz entity links when the sender did not attach snapshots.
Solution: Resolve recognized Buzz entities only against the active relay and show signed repository identity, title, and compact builder context with the current inline Buzz mark in the favicon slot, but without avatars, thumbnails, or external image fetches. Entity metadata wins over conflicting sender snapshots, while unsupported or unavailable metadata retains a safe text fallback.
File changes
desktop/playwright.config.ts
Adds the entity-link regression spec to the smoke test project.
desktop/src/features/messages/ui/useComposerLinkPreviews.tsx
Treats recognized Buzz entity cards as complete without generating snapshot tags and retains fallback cards when relay metadata is absent.
desktop/src/shared/lib/useResolvedLinkPreviews.test.mjs
Covers kind-scoped entity detection, trusted relay metadata, root-scoped lifecycle queries, exact single-repository root binding, image-less pending state, and fallback behavior.
desktop/src/shared/lib/useResolvedLinkPreviews.ts
Resolves signed repository, pull request, and issue metadata from the active relay. Entity roots fail closed unless they carry exactly one matching repository tag; lifecycle queries are root-scoped before limits; successful metadata remains stable until relay/community reset, and PR commit context uses the immutable root event rather than an unindexed update query.
desktop/src/shared/ui/compact-link-preview-attachment.tsx
Uses Buzz repository identity as the compact card provider and avoids reserving thumbnail space for image-less entity cards.
desktop/src/shared/ui/markdown.tsx
Routes message cards through the combined entity/snapshot preview hook.
desktop/src/shared/ui/markdown/useMessageLinkPreviews.test.mjs
Proves relay-authenticated entity metadata beats a forged sender snapshot while preserving mixed-link content order.
desktop/src/shared/ui/markdown/useMessageLinkPreviews.ts
Combines recipient-resolved Buzz entities with sender-authored external snapshots using explicit trust precedence and first-seen ordering.
desktop/tests/e2e/entity-link-recipient-cards.spec.ts
Exercises repository identity, PR workflow context, repository metadata, image-less rendering, and composer send behavior for agent/CLI-style entity links.
Reproduction steps
link-previewtags whose content includes validbuzz://pr,buzz://issue, orbuzz://repolinks.Screenshots
Recipient view — Buzz-branded metadata cards
Repository identity, title, and compact builder context render with the current inline Buzz mark in the favicon slot and no avatar, thumbnail, or reserved image space.
Validation
At commit
7bc70b0a9f70392bd062ed25b1d2362cc4021a40with a clean working tree:Originating conversation: Buzz channel
c2859932-b679-4091-9c7e-f5a65deddd64, thread93c3e7be59a8d1ec10b4992efd783a2a79f253a10f10d39746c6ad41b0d5bb42.