diff --git a/packages/web/src/components/chat/AttachmentRenderer.tsx b/packages/web/src/components/chat/AttachmentRenderer.tsx
index 9fd6fb44..de132636 100644
--- a/packages/web/src/components/chat/AttachmentRenderer.tsx
+++ b/packages/web/src/components/chat/AttachmentRenderer.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import type { Attachment } from '@backspace/shared';
import { useUIStore } from '../../stores/uiStore';
+import { Tooltip } from '../ui/Tooltip';
interface AttachmentRendererProps {
attachment: Attachment;
@@ -28,11 +29,66 @@ export function AttachmentRenderer({ attachment }: AttachmentRendererProps) {
const { mimetype, originalName, size } = attachment;
+ // Federation status badge
+ const federationBadge = (() => {
+ if (!attachment.federationStatus) return null;
+
+ if (attachment.federationStatus === 'remote') {
+ // Receiving side — file hosted on sender's instance
+ let senderName = 'the sender';
+ if (attachment.federationMeta) {
+ try {
+ const meta = JSON.parse(attachment.federationMeta);
+ if (meta.sourceUsername) senderName = meta.sourceUsername;
+ } catch { /* ignore */ }
+ }
+ return (
+
{originalName}
-{formatFileSize(size)}
-{originalName}
+{formatFileSize(size)}
+