diff --git a/apps/mobile/src/features/threads/ThreadFeed.tsx b/apps/mobile/src/features/threads/ThreadFeed.tsx
index 585354f7baf24d054a5a042dc4678e57bcf876e5..a860612cb922172ca9285cc276c1f37eb7d5c4f5 100644
--- a/apps/mobile/src/features/threads/ThreadFeed.tsx
+++ b/apps/mobile/src/features/threads/ThreadFeed.tsx
@@ -627,6 +627,7 @@ const markdownLinkStyles = StyleSheet.create({
height: 14,
marginHorizontal: 3,
transform: [{ translateY: 2 }],
+ flexShrink: 0,
},
favicon: {
borderRadius: 3,
@@ -1155,7 +1156,7 @@ function useMarkdownStyles(
>
{ordered ? `${start + index}.` : "•"}
-
+
@@ -1684,10 +1685,14 @@ 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 enterAnimated = isFreshTimestamp(message.createdAt);
return (
{renderedText.trim().length > 0 ? (