diff --git a/apps/mobile/src/features/threads/ThreadFeed.tsx b/apps/mobile/src/features/threads/ThreadFeed.tsx index 53b8a528ee00..37fe3415badb 100644 --- a/apps/mobile/src/features/threads/ThreadFeed.tsx +++ b/apps/mobile/src/features/threads/ThreadFeed.tsx @@ -391,6 +391,7 @@ const markdownLinkStyles = StyleSheet.create({ height: 14, marginHorizontal: 3, transform: [{ translateY: 2 }], + flexShrink: 0, }, favicon: { borderRadius: 3, @@ -772,7 +773,7 @@ function useMarkdownStyles( > {ordered ? `${start + index}.` : "•"} - + @@ -1119,10 +1120,16 @@ function renderFeedEntry( return null; } + // Assistant messages hit the same Android unclamped-pass bug as user + // bubbles: wide markdown blocks cause children to be positioned at + // intrinsic width before the container is clamped, overlapping the + // timestamp/copy button row. Pinning the width removes that pass. + const assistantHasWideBlock = hasWideMarkdownBlock(message.text, WIDE_MARKDOWN_BLOCK_OPTIONS); const enterAnimated = isFreshTimestamp(message.createdAt); return ( {message.text.trim().length > 0 ? (