[]>(
+ () => [
+ {
+ id: "run",
+ header: "Run",
+ cell: ({ row }) => {
+ const run = row.original;
+ return (
+
+
+
+
{runTitle(run)}
+
{shortId(run.run_id)}
+
+
+ );
+ },
},
- },
- {
- title: "Created",
- dataIndex: "created_at",
- key: "created_at",
- render: (v: string) => {timeAgo(v)},
- },
- ];
+ {
+ accessorKey: "workflow_type",
+ header: "Type",
+ cell: ({ row }) => (
+ {row.original.workflow_type}
+ ),
+ },
+ {
+ id: "status",
+ header: "Status",
+ cell: ({ row }) => {
+ const run = row.original;
+ return (
+
+
+
+ {run.metadata?.state ?? run.status}
+
+
+ );
+ },
+ },
+ {
+ accessorKey: "created_at",
+ header: "Created",
+ cell: ({ row }) => {timeAgo(row.original.created_at)},
+ },
+ ],
+ [],
+ );
return (
= ({ accessToken }) => {
- {/* runs table — matches logs page density */}
-
-
({
- onClick: () => fetchRunDetail(run),
- style: { cursor: "pointer" },
- })}
- locale={{
- emptyText: (
- No workflow runs yet}
- image={Empty.PRESENTED_IMAGE_SIMPLE}
- />
- ),
- }}
- className="[&_.ant-table-cell]:py-0.5 [&_.ant-table-thead_.ant-table-cell]:py-1"
- style={{ border: "none" }}
- />
-
+ run.run_id}
+ isLoading={loadingRuns}
+ loadingMessage="Loading workflow runs…"
+ noDataMessage={
+ No workflow runs yet}
+ image={Empty.PRESENTED_IMAGE_SIMPLE}
+ />
+ }
+ paginationMode="client"
+ pageSizeOptions={[50, 100]}
+ onRowClick={fetchRunDetail}
+ size="compact"
+ />
{/* detail drawer */}