feat(FN-3083): add GraphTaskNode wrapper and integrate into dependency grap

The merge introduces a new `GraphTaskNode` wrapper component for the dependency graph plugin (FN-3083) with visual parity tests, adds an AI security scan gate to the plugin install/unpack flows (FN-3077), updates the dashboard PluginManager UI and adds plugin API routes, and cleans up remaining main

Fusion-Task-Id: FN-3083
This commit is contained in:
Fusion
2026-05-07 02:30:51 -07:00
committed by gsxdsm
parent fce3668a83
commit caf4062b76
9 changed files with 335 additions and 37 deletions

View File

@@ -1,12 +1,27 @@
declare module "@fusion/dashboard/app/components/TaskCard" {
import type { Task } from "@fusion/core";
import type { Column, Task, TaskDetail } from "@fusion/core";
import type { ReactElement } from "react";
interface TaskCardProps {
task: Task;
projectId?: string;
onOpenDetail: (task: Task) => void;
addToast: (message: string, type?: "success" | "error" | "info") => void;
onOpenDetail: (task: Task | TaskDetail) => void;
addToast: (message: string, type?: "success" | "error" | "info" | "warning") => void;
globalPaused?: boolean;
onUpdateTask?: (
id: string,
updates: { title?: string; description?: string; dependencies?: string[] }
) => Promise<Task>;
onArchiveTask?: (id: string) => Promise<Task>;
onUnarchiveTask?: (id: string) => Promise<Task>;
onDeleteTask?: (id: string, options?: { removeDependencyReferences?: boolean }) => Promise<Task>;
onRetryTask?: (id: string) => Promise<Task>;
onOpenDetailWithTab?: (task: Task | TaskDetail, initialTab: "changes") => void;
taskStuckTimeoutMs?: number;
onOpenMission?: (missionId: string) => void;
onMoveTask?: (id: string, column: Column, optionsOrPosition?: { preserveProgress?: boolean } | number) => Promise<Task>;
lastFetchTimeMs?: number;
workflowStepNameLookup?: ReadonlyMap<string, string>;
disableDrag?: boolean;
}