feat(FN-3722): route plugin store to configured global directory
Merges centralized plugin installation (FN-3722): TaskStore plugin store is now routed to a configured global directory with legacy migration hardening, and CLI plugin commands are aligned accordingly, backed by comprehensive integration and regression tests. Also includes a dashboard fix to return Fusion-Task-Id: FN-3722
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { AddressInfo } from "node:net";
|
||||
import { dirname, join, resolve as pathResolve } from "node:path";
|
||||
import { join, resolve as pathResolve } from "node:path";
|
||||
import { execFile as execFileCb } from "node:child_process";
|
||||
import { promisify } from "node:util";
|
||||
import { stat, readdir, readFile as fsReadFile } from "node:fs/promises";
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
AutomationStore,
|
||||
CentralCore,
|
||||
AgentStore,
|
||||
PluginStore,
|
||||
PluginLoader,
|
||||
getTaskMergeBlocker,
|
||||
getEnabledPiExtensionPaths,
|
||||
@@ -1067,11 +1066,7 @@ export async function runDashboard(port: number, opts: { paused?: boolean; dev?:
|
||||
// Enables the PluginManager UI to list, install, enable, disable, and
|
||||
// configure plugins via the /api/plugins REST endpoints.
|
||||
//
|
||||
const pluginStoreRootDir =
|
||||
typeof (store as { getRootDir?: () => string }).getRootDir === "function"
|
||||
? store.getRootDir()
|
||||
: dirname(store.getFusionDir());
|
||||
const pluginStore = new PluginStore(pluginStoreRootDir);
|
||||
const pluginStore = store.getPluginStore();
|
||||
await pluginStore.init();
|
||||
|
||||
// ── PluginLoader: plugin lifecycle management ───────────────────────
|
||||
|
||||
Reference in New Issue
Block a user