From 91d2705804800789a255eded33847ec9232f71d8 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 4 Jan 2026 21:26:09 +0900 Subject: [PATCH] perf(plugin-loader): parallelize component loading MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Convert sequential plugin component loading to Promise.all - Wrap sync functions in Promise.resolve() for parallel execution - commands, skills, agents, mcpServers, hooksConfigs now load concurrently 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) --- src/features/claude-code-plugin-loader/loader.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/features/claude-code-plugin-loader/loader.ts b/src/features/claude-code-plugin-loader/loader.ts index 7b4aeed..16771ad 100644 --- a/src/features/claude-code-plugin-loader/loader.ts +++ b/src/features/claude-code-plugin-loader/loader.ts @@ -464,11 +464,13 @@ export interface PluginComponentsResult { export async function loadAllPluginComponents(options?: PluginLoaderOptions): Promise { const { plugins, errors } = discoverInstalledPlugins(options) - const commands = loadPluginCommands(plugins) - const skills = loadPluginSkillsAsCommands(plugins) - const agents = loadPluginAgents(plugins) - const mcpServers = await loadPluginMcpServers(plugins) - const hooksConfigs = loadPluginHooksConfigs(plugins) + const [commands, skills, agents, mcpServers, hooksConfigs] = await Promise.all([ + Promise.resolve(loadPluginCommands(plugins)), + Promise.resolve(loadPluginSkillsAsCommands(plugins)), + Promise.resolve(loadPluginAgents(plugins)), + loadPluginMcpServers(plugins), + Promise.resolve(loadPluginHooksConfigs(plugins)), + ]) log(`Loaded ${plugins.length} plugins with ${Object.keys(commands).length} commands, ${Object.keys(skills).length} skills, ${Object.keys(agents).length} agents, ${Object.keys(mcpServers).length} MCP servers`)