feat(KB-502): implement dashboard multi-project UX
- Add project selector, health badge, and overview components to dashboard - Add multi-project API functions (api.ts) for cross-project operations - Update App.tsx with project context and navigation improvements - Add script-store.ts for centralized project script management - Extend types with multi-project support: SetupState, MigrationOptions, etc. - Add project runtime fields: baseCommitSha, modifiedFiles, missionId, sliceId - Add setupComplete to global settings for first-run wizard tracking - Add project-level settings: scripts, setupScript, ntfyDashboardHost - Add backward-compatible addSteeringComment method to TaskStore
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { useState, useEffect, useRef, useCallback } from "react";
|
||||
import { Settings, Pause, Play, Square, LayoutGrid, List, Terminal, Lightbulb, Search, X, Activity, MoreHorizontal, Clock, Folder, History, GitBranch, Workflow, Bot, ChevronLeft } from "lucide-react";
|
||||
import type { ProjectInfo } from "@fusion/core";
|
||||
import type { ProjectInfo } from "../api";
|
||||
import { ProjectSelector } from "./ProjectSelector";
|
||||
import { QuickScriptsDropdown } from "./QuickScriptsDropdown";
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useState, useCallback } from "react";
|
||||
import { Play, Pause, AlertCircle, Loader2 } from "lucide-react";
|
||||
import type { ProjectStatus, ProjectHealth } from "@fusion/core";
|
||||
import type { ProjectStatus } from "@fusion/core";
|
||||
import type { ProjectHealth } from "../api";
|
||||
|
||||
export interface ProjectHealthBadgeProps {
|
||||
status: ProjectStatus;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState, useMemo, useCallback, useEffect } from "react";
|
||||
import { Plus, LayoutGrid, Filter, ArrowUpDown, Activity, CheckCircle, AlertCircle, Folder, Inbox } from "lucide-react";
|
||||
import type { ProjectInfo, ProjectHealth, ProjectStatus } from "@fusion/core";
|
||||
import type { ProjectInfo, ProjectHealth, ProjectStatus } from "../api";
|
||||
import { ProjectCard } from "./ProjectCard";
|
||||
import { ProjectGridSkeleton } from "./ProjectGridSkeleton";
|
||||
import { useProjectHealth } from "../hooks/useProjectHealth";
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
Loader2,
|
||||
X,
|
||||
} from "lucide-react";
|
||||
import type { ProjectInfo, ProjectStatus } from "@fusion/core";
|
||||
import type { ProjectInfo, ProjectStatus } from "../api";
|
||||
|
||||
export interface ProjectSelectorProps {
|
||||
projects: ProjectInfo[];
|
||||
|
||||
Reference in New Issue
Block a user