From 2f5509e36d79f93d32034743c58fd48aa1adbd43 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 4 Apr 2026 12:03:14 +0900 Subject: [PATCH] refactor(slack): lazy-load directory config seam --- extensions/slack/src/channel.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/slack/src/channel.ts b/extensions/slack/src/channel.ts index 9fdba4a56ab..0363852ad65 100644 --- a/extensions/slack/src/channel.ts +++ b/extensions/slack/src/channel.ts @@ -43,10 +43,6 @@ import { resolveSlackAutoThreadId } from "./action-threading.js"; import { slackApprovalCapability } from "./approval-native.js"; import { createSlackActions } from "./channel-actions.js"; import { resolveSlackChannelType } from "./channel-type.js"; -import { - listSlackDirectoryGroupsFromConfig, - listSlackDirectoryPeersFromConfig, -} from "./directory-config.js"; import { shouldSuppressLocalSlackExecApprovalPrompt } from "./exec-approvals.js"; import { resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy } from "./group-policy.js"; import { isSlackInteractiveRepliesEnabled } from "./interactive-replies.js"; @@ -122,6 +118,9 @@ let slackProbeModulePromise: Promise | undefined; let slackMonitorModulePromise: Promise | undefined; let slackDirectoryLiveModulePromise: Promise | undefined; +const loadSlackDirectoryConfigModule = createLazyRuntimeModule( + () => import("./directory-config.js"), +); const loadSlackResolveChannelsModule = createLazyRuntimeModule( () => import("./resolve-channels.js"), ); @@ -355,8 +354,10 @@ export const slackPlugin: ChannelPlugin = crea }, }, directory: createChannelDirectoryAdapter({ - listPeers: async (params) => listSlackDirectoryPeersFromConfig(params), - listGroups: async (params) => listSlackDirectoryGroupsFromConfig(params), + listPeers: async (params) => + (await loadSlackDirectoryConfigModule()).listSlackDirectoryPeersFromConfig(params), + listGroups: async (params) => + (await loadSlackDirectoryConfigModule()).listSlackDirectoryGroupsFromConfig(params), ...createRuntimeDirectoryLiveAdapter({ getRuntime: loadSlackDirectoryLiveModule, listPeersLive: (runtime) => runtime.listDirectoryPeersLive,