diff --git a/packages/ui/src/features/canvas/components/ActivityTimeline.test.tsx b/packages/ui/src/features/canvas/components/ActivityTimeline.test.tsx index c1f625b0fe..b6ea0cb52d 100644 --- a/packages/ui/src/features/canvas/components/ActivityTimeline.test.tsx +++ b/packages/ui/src/features/canvas/components/ActivityTimeline.test.tsx @@ -36,13 +36,13 @@ const conversationItems = [ }, ]; -function renderTimeline(canOpenInPlace?: boolean) { +function renderTimeline(canOpenInPlace?: boolean, items = conversationItems) { return render( { renderTimeline(); expect(screen.queryAllByRole("button")).toHaveLength(0); - expect(screen.getByText(/first thing/)).toBeInTheDocument(); + const body = screen.getByText(/first thing/).closest("[data-slot]"); + expect(body).toHaveClass("whitespace-pre-wrap", "break-words"); + expect(body).not.toHaveClass("line-clamp-1"); + }); + + it("renders structured references natively in conversation previews", () => { + renderTimeline(false, [ + { + type: "user_message", + id: "pr-message", + content: + '', + timestamp: Date.parse("2026-07-17T09:05:00Z"), + }, + ]); + + expect(screen.getByText("#73874 - Loading…")).toBeInTheDocument(); + expect(screen.queryByText(/ { + renderTimeline(true, [ + { + type: "user_message", + id: "context-message", + content: + 'Review this\n\nSaved workspace context', + timestamp: Date.parse("2026-07-17T09:05:00Z"), + }, + ]); + + expect(screen.getByText("Review this")).toBeInTheDocument(); + expect(screen.queryByText(/ void; }) { const name = author ? userDisplayName(author) : "You"; + const channelContext = useMemo( + () => extractChannelContext(content), + [content], + ); + const displayContent = channelContext?.stripped ?? content; // The row itself is the hit target. `ThreadItem` renders an
, which a //