diff --git a/desktop/src/features/agents/ui/AgentSessionToolItem/CompactMessageSummary.tsx b/desktop/src/features/agents/ui/AgentSessionToolItem/CompactMessageSummary.tsx
index 33fd1e4416..4013f9d01c 100644
--- a/desktop/src/features/agents/ui/AgentSessionToolItem/CompactMessageSummary.tsx
+++ b/desktop/src/features/agents/ui/AgentSessionToolItem/CompactMessageSummary.tsx
@@ -151,6 +151,7 @@ export function CompactMessageSummary({
? "text-xs leading-4"
: "text-sm leading-relaxed",
shouldClampBubble && "relative max-h-36 overflow-hidden",
+ isConversation && "relative",
canOpenMessage &&
"group/bubble cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
isCompactPreview
diff --git a/desktop/src/features/agents/ui/AgentSessionTranscriptList.conversation.test.mjs b/desktop/src/features/agents/ui/AgentSessionTranscriptList.conversation.test.mjs
index f5a4511d67..f58f27ea14 100644
--- a/desktop/src/features/agents/ui/AgentSessionTranscriptList.conversation.test.mjs
+++ b/desktop/src/features/agents/ui/AgentSessionTranscriptList.conversation.test.mjs
@@ -64,7 +64,20 @@ test("conversation renders the prompt as a filled right-aligned bubble with an a
// soft tint, borderless surface, and `px-4 py-2` spacing.
const bubble = row.querySelector(".rounded-2xl");
assert.ok(bubble, "the prompt should match Buzz's chat-bubble radius");
+ assert.match(bubble.className, /relative/);
assert.match(bubble.className, /bg-muted\/60/);
+ const openInChatCue = bubble.querySelector('[aria-hidden="true"]');
+ assert.ok(openInChatCue, "linked prompts should retain the hover cue");
+ assert.match(
+ openInChatCue.className,
+ /top-1\.5/,
+ "the sender hover cue uses its native inset once the bubble is its containing block",
+ );
+ assert.doesNotMatch(
+ openInChatCue.className,
+ /top-3/,
+ "the cue should not be pushed into the prompt text to compensate for the old containing-block bug",
+ );
assert.doesNotMatch(
bubble.className,
/(?
) : null}
- {messageLink ? (
-
- ) : null}
+ {messageLink ? : null}
{isConversation && footer ? (
// Timestamp/context row is chrome, not content: focus mode keeps it