diff --git a/apps/ui/package.json b/apps/ui/package.json
index 116bb6ad..9c3522c6 100644
--- a/apps/ui/package.json
+++ b/apps/ui/package.json
@@ -67,7 +67,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
- "apps/ui/src/components/views/graph-view/hooks/use-graph-filter.ts": "^0.8.5",
+ "dagre": "^0.8.5",
"dotenv": "^17.2.3",
"geist": "^1.5.1",
"lucide-react": "^0.562.0",
diff --git a/apps/ui/src/components/views/graph-view/components/task-node.tsx b/apps/ui/src/components/views/graph-view/components/task-node.tsx
index 44118662..06beb251 100644
--- a/apps/ui/src/components/views/graph-view/components/task-node.tsx
+++ b/apps/ui/src/components/views/graph-view/components/task-node.tsx
@@ -21,7 +21,6 @@ import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
- DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
@@ -225,7 +224,7 @@ export const TaskNode = memo(function TaskNode({ data, selected }: TaskNodeProps
className="text-xs cursor-pointer"
onClick={(e) => {
e.stopPropagation();
- data.onViewLogs?.();
+ data.onViewDetails?.();
}}
>
@@ -267,19 +266,6 @@ export const TaskNode = memo(function TaskNode({ data, selected }: TaskNodeProps
Resume Task
)}
- {Boolean(data.branchName) && }
- {Boolean(data.branchName) && (
- {
- e.stopPropagation();
- data.onViewBranch?.();
- }}
- >
-
- View Branch
-
- )}
diff --git a/apps/ui/src/components/views/graph-view/graph-view.tsx b/apps/ui/src/components/views/graph-view/graph-view.tsx
index 1f054c3a..f5ea8edc 100644
--- a/apps/ui/src/components/views/graph-view/graph-view.tsx
+++ b/apps/ui/src/components/views/graph-view/graph-view.tsx
@@ -83,6 +83,12 @@ export function GraphView({
onViewOutput(feature);
}
},
+ onViewDetails: (featureId: string) => {
+ const feature = features.find((f) => f.id === featureId);
+ if (feature) {
+ onEditFeature(feature);
+ }
+ },
onStartTask: (featureId: string) => {
const feature = features.find((f) => f.id === featureId);
if (feature) {
@@ -101,15 +107,8 @@ export function GraphView({
onResumeTask?.(feature);
}
},
- onViewBranch: (featureId: string) => {
- const feature = features.find((f) => f.id === featureId);
- if (feature?.branchName) {
- // TODO: Implement view branch action
- console.log('View branch:', feature.branchName);
- }
- },
}),
- [features, onViewOutput, onStartTask, onStopTask, onResumeTask]
+ [features, onViewOutput, onEditFeature, onStartTask, onStopTask, onResumeTask]
);
return (
diff --git a/apps/ui/src/components/views/graph-view/hooks/use-graph-nodes.ts b/apps/ui/src/components/views/graph-view/hooks/use-graph-nodes.ts
index 5dc38b83..66265477 100644
--- a/apps/ui/src/components/views/graph-view/hooks/use-graph-nodes.ts
+++ b/apps/ui/src/components/views/graph-view/hooks/use-graph-nodes.ts
@@ -14,10 +14,10 @@ export interface TaskNodeData extends Feature {
isDimmed?: boolean;
// Action callbacks
onViewLogs?: () => void;
+ onViewDetails?: () => void;
onStartTask?: () => void;
onStopTask?: () => void;
onResumeTask?: () => void;
- onViewBranch?: () => void;
}
export type TaskNode = Node;
@@ -30,10 +30,10 @@ export type DependencyEdge = Edge<{
export interface NodeActionCallbacks {
onViewLogs?: (featureId: string) => void;
+ onViewDetails?: (featureId: string) => void;
onStartTask?: (featureId: string) => void;
onStopTask?: (featureId: string) => void;
onResumeTask?: (featureId: string) => void;
- onViewBranch?: (featureId: string) => void;
}
interface UseGraphNodesProps {
@@ -94,6 +94,9 @@ export function useGraphNodes({
onViewLogs: actionCallbacks?.onViewLogs
? () => actionCallbacks.onViewLogs!(feature.id)
: undefined,
+ onViewDetails: actionCallbacks?.onViewDetails
+ ? () => actionCallbacks.onViewDetails!(feature.id)
+ : undefined,
onStartTask: actionCallbacks?.onStartTask
? () => actionCallbacks.onStartTask!(feature.id)
: undefined,
@@ -103,9 +106,6 @@ export function useGraphNodes({
onResumeTask: actionCallbacks?.onResumeTask
? () => actionCallbacks.onResumeTask!(feature.id)
: undefined,
- onViewBranch: actionCallbacks?.onViewBranch
- ? () => actionCallbacks.onViewBranch!(feature.id)
- : undefined,
},
};