diff --git a/packages/ui/src/components/message-item.tsx b/packages/ui/src/components/message-item.tsx
index e69ba652..503464b4 100644
--- a/packages/ui/src/components/message-item.tsx
+++ b/packages/ui/src/components/message-item.tsx
@@ -1,5 +1,5 @@
import { For, Show, createSignal } from "solid-js"
-import { Copy, Split, Trash2, Undo } from "lucide-solid"
+import { Copy, ExternalLink, Split, Trash2, Undo } from "lucide-solid"
import type { MessageInfo, ClientPart } from "../types/message"
import { partHasRenderableText } from "../types/message"
import type { MessageRecord } from "../stores/message-v2/types"
@@ -8,6 +8,7 @@ import { copyToClipboard } from "../lib/clipboard"
import { useI18n } from "../lib/i18n"
import { showAlertDialog } from "../stores/alerts"
import { deleteMessagePart } from "../stores/session-actions"
+import { isTauriHost } from "../lib/runtime-env"
interface MessageItemProps {
record: MessageRecord
@@ -105,7 +106,8 @@ export default function MessageItem(props: MessageItemProps) {
}
if (url.startsWith("file://")) {
- window.open(url, "_blank", "noopener")
+ // Local filesystem URLs are not reliably downloadable from the message stream.
+ // We hide the download action for these chips.
return
}
@@ -408,17 +410,20 @@ export default function MessageItem(props: MessageItemProps) {
{name}
-
+
+
+