diff --git a/desktop/src/features/agents/agentConversations.test.mjs b/desktop/src/features/agents/agentConversations.test.mjs index 8443ce477a..e61fd5bcf6 100644 --- a/desktop/src/features/agents/agentConversations.test.mjs +++ b/desktop/src/features/agents/agentConversations.test.mjs @@ -70,10 +70,20 @@ test("continued conversation auto-routes only a single messageable agent", () => ["agent-one"], ); + assert.deepEqual( + getAutoRoutedAgentConversationPubkeys([ + { canMessage: true, pubkey: "agent-one" }, + { canMessage: false, pubkey: "agent-two" }, + { canMessage: false, pubkey: "agent-three" }, + ]), + ["agent-one"], + ); + assert.deepEqual( getAutoRoutedAgentConversationPubkeys([ { canMessage: true, pubkey: "agent-one" }, { canMessage: true, pubkey: "agent-two" }, + { canMessage: false, pubkey: "agent-three" }, ]), [], ); diff --git a/desktop/src/features/agents/agentConversations.ts b/desktop/src/features/agents/agentConversations.ts index c2404cb328..422e9a4289 100644 --- a/desktop/src/features/agents/agentConversations.ts +++ b/desktop/src/features/agents/agentConversations.ts @@ -110,12 +110,15 @@ export function agentConversationsStorageKey( export function getAutoRoutedAgentConversationPubkeys( participants: readonly AgentConversationRouteableParticipant[], ): string[] { - if (participants.length !== 1) { + const messageableParticipants = participants.filter( + (participant) => participant.canMessage, + ); + + if (messageableParticipants.length !== 1) { return []; } - const [participant] = participants; - return participant.canMessage ? [participant.pubkey] : []; + return [messageableParticipants[0].pubkey]; } export function buildAgentConversationMentionPubkeys({