diff --git a/src/main/services/team/TeamInboxReader.ts b/src/main/services/team/TeamInboxReader.ts index 563a634c..95fc44b2 100644 --- a/src/main/services/team/TeamInboxReader.ts +++ b/src/main/services/team/TeamInboxReader.ts @@ -42,9 +42,14 @@ export class TeamInboxReader { throw error; } + // Exclude broadcast inbox (*.json) and user inbox (user.json) — these are + // system inboxes, not real team members. Without this filter, '*' appears + // as a phantom member in the UI that can't be removed. + const SYSTEM_INBOX_NAMES = new Set(['*', 'user']); return entries .filter((name) => name.endsWith('.json') && !name.startsWith('.')) - .map((name) => name.replace(/\.json$/, '')); + .map((name) => name.replace(/\.json$/, '')) + .filter((name) => !SYSTEM_INBOX_NAMES.has(name)); } async getMessagesFor(teamName: string, member: string): Promise {