fix(FN-3888): resolve dependency-graph plugin from src in dashboard build

The dashboard dynamically imports `@fusion-plugin-examples/dependency-graph/dashboard-view`, which resolved through the plugin's package.json exports to `dist/`. When plugin source was edited without rebuilding, stale `dist/` (extensionless ESM imports) made the import throw and the UI surfaced "Bundled plugin view unavailable". Add vite/vitest aliases mapping the plugin (and its `/dashboard-view` subpath) to `src/` so the dashboard never depends on `dist/`. Mirrors the existing pattern for hermes/openclaw/paperclip runtimes. Also extends the runtime-plugin alias regression test, and emits `.js` extensions from the plugin source for the CLI-bundled path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-09 16:44:44 -07:00
parent d942c0c404
commit 47504ea0c8
15 changed files with 90 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
import { useCallback, useEffect, useState } from "react";
import { clearPositions, loadPositions, savePositions, type NodePositions } from "../utils/graphPositionStorage";
import { clearPositions, loadPositions, savePositions, type NodePositions } from "../utils/graphPositionStorage.js";
function filterVisiblePositions(positions: NodePositions, visibleTaskIds: Set<string>): NodePositions {
const filtered: NodePositions = {};

View File

@@ -1,6 +1,6 @@
import { useCallback, useMemo, useRef, useState } from "react";
import type { MouseEvent as ReactMouseEvent, PointerEvent as ReactPointerEvent } from "react";
import type { GraphPosition } from "../types";
import type { GraphPosition } from "../types.js";
const DRAG_THRESHOLD_PX = 4;