From 03d6256c19d89231b06e181e9cb1b5d35237efe5 Mon Sep 17 00:00:00 2001 From: spencrmartin Date: Fri, 21 Nov 2025 15:18:01 -0500 Subject: [PATCH] Add user badge to Goose messages from collaborators - Display Goose dot avatar as main avatar for all assistant messages - Add small user badge in bottom-right corner for collaborator messages - Badge shows user's avatar if available, or initial letter on colored background - Header shows 'Goose (username)' for collaborator messages - This clearly indicates the message is from another user's Goose instance --- ui/desktop/src/components/GooseMessage.tsx | 39 ++++++++++++++-------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/ui/desktop/src/components/GooseMessage.tsx b/ui/desktop/src/components/GooseMessage.tsx index be613d22ad..35f8829feb 100644 --- a/ui/desktop/src/components/GooseMessage.tsx +++ b/ui/desktop/src/components/GooseMessage.tsx @@ -253,20 +253,33 @@ export default function GooseMessage({ avatarUrl: null, }; + // Check if this is from a collaborator (has sender info and is from Matrix) + const isFromCollaborator = message.sender && (message as any).metadata?.isFromCollaborator; + return (
- {/* Goose Avatar on the left side */} -
- {senderInfo.avatarUrl ? ( - - ) : ( -
-
+ {/* Goose Avatar on the left side with optional user badge */} +
+ {/* Main Goose dot avatar */} +
+
+
+ + {/* Small user badge for collaborator messages */} + {isFromCollaborator && senderInfo.avatarUrl && ( +
+ +
+ )} + {isFromCollaborator && !senderInfo.avatarUrl && ( +
+ + {(senderInfo.displayName || senderInfo.userId || 'U').charAt(0).toUpperCase()} +
)}
@@ -277,7 +290,7 @@ export default function GooseMessage({ {(displayText || isFirstInChain) && (
- {senderInfo.displayName || 'Goose'} + {isFromCollaborator ? `Goose (${senderInfo.displayName || 'User'})` : 'Goose'} {timestamp}