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:
Fusion
2026-05-08 08:03:39 -07:00
committed by gsxdsm
parent 68eff4418c
commit 45fe41c075
17 changed files with 351 additions and 42 deletions

View File

@@ -12,7 +12,6 @@ import type { AddressInfo } from "node:net";
import { join } from "node:path";
import {
CentralCore,
PluginStore,
PluginLoader,
getTaskMergeBlocker,
INSIGHT_EXTRACTION_SCHEDULE_NAME,
@@ -367,12 +366,7 @@ export async function runDaemon(opts: DaemonOptions = {}) {
}
// ── PluginStore: plugin installation management ─────────────────────
// Some mocked stores used in tests may not implement getRootDir(); fall
// back to the resolved runtime cwd in that case.
const storeRootDir = typeof (store as { getRootDir?: () => string }).getRootDir === "function"
? (store as { getRootDir: () => string }).getRootDir()
: cwd;
const pluginStore = new PluginStore(storeRootDir);
const pluginStore = store.getPluginStore();
await pluginStore.init();
// ── PluginLoader: plugin lifecycle management ───────────────────────