feat(FN-3470): prefer source aliases for runtime plugins and add test artif

Merges FN-3470 in two steps: first, runtime plugins now prefer source path aliases over build artifacts, with hardening tests for vitest alias resolution and plugin view registry updates; second, a new `ensure-test-artifacts.mjs` bootstrap script guarantees required test files exist before test runs

Fusion-Task-Id: FN-3470
This commit is contained in:
Fusion
2026-05-05 13:19:16 -07:00
committed by gsxdsm
parent 0aef085f13
commit 7d373286d9
10 changed files with 146 additions and 5 deletions

View File

@@ -25,6 +25,18 @@ export default defineConfig({
find: /^@fusion-plugin-examples\/droid-runtime$/,
replacement: resolve(__dirname, "../../plugins/fusion-plugin-droid-runtime/src/index.ts"),
},
{
find: /^@fusion-plugin-examples\/hermes-runtime$/,
replacement: resolve(__dirname, "../../plugins/fusion-plugin-hermes-runtime/src/index.ts"),
},
{
find: /^@fusion-plugin-examples\/openclaw-runtime$/,
replacement: resolve(__dirname, "../../plugins/fusion-plugin-openclaw-runtime/src/index.ts"),
},
{
find: /^@fusion-plugin-examples\/paperclip-runtime$/,
replacement: resolve(__dirname, "../../plugins/fusion-plugin-paperclip-runtime/src/index.ts"),
},
{ find: /^@fusion\/test-utils$/, replacement: resolve(__dirname, "../core/src/__test-utils__/workspace.ts") },
],
},

View File

@@ -880,10 +880,10 @@ function AppInner() {
workflowSteps,
openTaskDetail: isMobile
? (task: Task | TaskDetail, initialTab?: Parameters<typeof modalManager.openDetailTask>[1]) =>
openDetailTaskWithHistory(task, initialTab)
openDetailTaskWithHistory(task, initialTab)
: (task: Task | TaskDetail, initialTab?: Parameters<typeof modalManager.openDetailTask>[1]) =>
modalManager.openDetailTask(task, initialTab),
renderTaskCard: (task: Task) => (
modalManager.openDetailTask(task, initialTab),
renderTaskCard: (task: Task | TaskDetail) => (
<TaskCard
task={task}
projectId={currentProject?.id}

View File

@@ -5,7 +5,7 @@ import "./pluginViewRegistry.css";
export type PluginTaskView = `plugin:${string}:${string}`;
type PluginViewComponent = LazyExoticComponent<() => ReactElement>;
type PluginViewComponent = LazyExoticComponent<() => ReactNode>;
const registry = new Map<string, PluginViewComponent>();

View File

@@ -21,6 +21,18 @@ export default defineConfig({
__dirname,
"../../plugins/fusion-plugin-droid-runtime/src/index.ts",
),
"@fusion-plugin-examples/hermes-runtime": resolve(
__dirname,
"../../plugins/fusion-plugin-hermes-runtime/src/index.ts",
),
"@fusion-plugin-examples/openclaw-runtime": resolve(
__dirname,
"../../plugins/fusion-plugin-openclaw-runtime/src/index.ts",
),
"@fusion-plugin-examples/paperclip-runtime": resolve(
__dirname,
"../../plugins/fusion-plugin-paperclip-runtime/src/index.ts",
),
},
},
test: {