diff --git a/app/(oss)/orchestration/plans/[planId]/page.tsx b/app/(oss)/orchestration/plans/[planId]/page.tsx index f047c24..c82c34d 100644 --- a/app/(oss)/orchestration/plans/[planId]/page.tsx +++ b/app/(oss)/orchestration/plans/[planId]/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import React from 'react'; +import { Suspense } from 'react'; import { useParams } from 'next/navigation'; import { OrchestrationLayout } from '@/app/components/OrchestrationLayout'; import { PlanDetail } from '@/app/components/PlanDetail'; @@ -11,7 +11,9 @@ export default function PlanDetailPage() { return ( - + Loading...}> + + ); } \ No newline at end of file diff --git a/app/(oss)/orchestration/plans/page.tsx b/app/(oss)/orchestration/plans/page.tsx index ea77c93..c677ce5 100644 --- a/app/(oss)/orchestration/plans/page.tsx +++ b/app/(oss)/orchestration/plans/page.tsx @@ -1,12 +1,11 @@ 'use client'; -import React from 'react'; import { OrchestrationLayout } from '@/app/components/OrchestrationLayout'; import { PlanBrowser } from '@/app/components/PlanBrowser'; export default function PlansPage() { return ( - diff --git a/app/(oss)/orchestration/runs/[runId]/page.tsx b/app/(oss)/orchestration/runs/[runId]/page.tsx index 43bcba2..a06c4a4 100644 --- a/app/(oss)/orchestration/runs/[runId]/page.tsx +++ b/app/(oss)/orchestration/runs/[runId]/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import React from 'react'; +import React, { Suspense } from 'react'; import { useParams } from 'next/navigation'; import { OrchestrationLayout } from '@/app/components/OrchestrationLayout'; import { RunDetail } from '@/app/components/RunDetail'; @@ -11,7 +11,9 @@ export default function RunDetailPage() { return ( - + Loading...}> + + ); -} \ No newline at end of file +} diff --git a/app/(oss)/orchestration/runs/page.tsx b/app/(oss)/orchestration/runs/page.tsx index 1b03902..f55e782 100644 --- a/app/(oss)/orchestration/runs/page.tsx +++ b/app/(oss)/orchestration/runs/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import React, { Suspense } from 'react'; +import { Suspense } from 'react'; import { useSearchParams } from 'next/navigation'; import { OrchestrationLayout } from '@/app/components/OrchestrationLayout'; import { RunBrowser } from '@/app/components/RunBrowser'; @@ -9,16 +9,16 @@ import { parseScope } from '@/app/lib/scope'; function RunsPageContent() { const searchParams = useSearchParams(); - + // Parse initial query from URL parameters const initialQuery: Partial = {}; - + const statusParam = searchParams.get('status') || searchParams.get('statuses'); if (statusParam) { const statuses = statusParam.split(',') as RunStatus[]; initialQuery.statuses = statuses; } - + const planIdParam = searchParams.get('planId') || searchParams.get('planIds'); if (planIdParam) { initialQuery.planIds = planIdParam.split(',').filter(Boolean); @@ -37,7 +37,7 @@ function RunsPageContent() { const service = searchParams.get('service'); const environment = searchParams.get('environment'); const team = searchParams.get('team'); - + if (parsedScope) { initialQuery.scope = parsedScope; } else if (service || environment || team) { @@ -53,7 +53,7 @@ function RunsPageContent() { export default function RunsPage() { return ( - diff --git a/app/components/RunDetail.tsx b/app/components/RunDetail.tsx index ce8f859..a20ba32 100644 --- a/app/components/RunDetail.tsx +++ b/app/components/RunDetail.tsx @@ -169,12 +169,12 @@ export function RunDetail({ runId }: RunDetailProps) { return (
{/* Run Header */} -
-
-
-
+
+
+
+

- Run {run.id} + {plan?.title ?? `Run ${run.id}`}

-
-
- Plan: -
{run.planId}
-
-
- Progress: -
- {progress.completed}/{progress.total} steps ({progress.percentage}%) -
-
-
- Created: -
{formatDate(run.createdAt)}
-
-
- Updated: -
{formatDate(run.updatedAt)}
-
- {plan?.url && ( - - )} -
+ {plan?.description && ( +

+ {plan.description} +

+ )} - {/* Progress Bar */} -
-
-
-
+
+ Run Id:{' '} + {run.id}
+
+
+ + View plan + + + + + {plan?.url && ( + + + + + Open plan in Tool + + )} {run.url && ( - + +
+
+ Plan: {run.planId} +
+
+ Progress: {progress.completed}/{progress.total} steps ({progress.percentage}%) +
+
+ Created: {formatDate(run.createdAt)} +
+
+ Updated: {formatDate(run.updatedAt)} +
+ {plan?.version && ( +
+ Version: {plan.version} +
+ )} + {plan && Object.keys(plan.tags).length > 0 && ( +
+ Tags:{' '} + {Object.entries(plan.tags).map(([key, value]) => ( + + {key}: {value} + + ))}
)}
+ + {/* Progress Bar */} +
+
+
+
+
{/* Workflow Visualizer */}