From faa43cac9c9f57f6503ea515010ab8023398d461 Mon Sep 17 00:00:00 2001 From: EliteServer Date: Sat, 1 Aug 2026 12:09:38 +1000 Subject: [PATCH] fix(desktop): mention in-channel relay agents Signed-off-by: EliteServer --- .../agents/lib/agentAutocompleteEligibility.ts | 3 ++- desktop/tests/e2e/mentions.spec.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/desktop/src/features/agents/lib/agentAutocompleteEligibility.ts b/desktop/src/features/agents/lib/agentAutocompleteEligibility.ts index e4afe7fea4..28e742a4f1 100644 --- a/desktop/src/features/agents/lib/agentAutocompleteEligibility.ts +++ b/desktop/src/features/agents/lib/agentAutocompleteEligibility.ts @@ -55,11 +55,12 @@ export function getMentionableAgentPubkeys({ } export function isAgentIdentityInManagedList( - candidate: { isAgent?: boolean; pubkey: string }, + candidate: { isAgent?: boolean; isMember?: boolean; pubkey: string }, managedAgentPubkeys: ReadonlySet, ) { return ( candidate.isAgent !== true || + candidate.isMember === true || managedAgentPubkeys.has(normalizePubkey(candidate.pubkey)) ); } diff --git a/desktop/tests/e2e/mentions.spec.ts b/desktop/tests/e2e/mentions.spec.ts index 5e31235a18..b24d5d060b 100644 --- a/desktop/tests/e2e/mentions.spec.ts +++ b/desktop/tests/e2e/mentions.spec.ts @@ -1,5 +1,7 @@ import { expect, test } from "@playwright/test"; +import { isAgentIdentityInManagedList } from "../../src/features/agents/lib/agentAutocompleteEligibility"; + import { installMockBridge, openChannelBrowser, @@ -36,6 +38,19 @@ const DM_THREAD_AGENT_MENTION_ERROR_TEXT = const DM_THREAD_MEMBERS_LOADING_ERROR_TEXT = "Checking conversation members. Try again in a moment."; +test("in-channel relay agents pass autocomplete eligibility without a local management record", () => { + expect( + isAgentIdentityInManagedList( + { + pubkey: ALLOWLIST_RELAY_AGENT_PUBKEY, + isAgent: true, + isMember: true, + }, + new Set(), + ), + ).toBe(true); +}); + /** Locator scoped to the mention autocomplete dropdown inside the composer. */ function autocomplete(page: import("@playwright/test").Page) { return page