Loading...
- )}
- {status === "error" && (
- Loading...
}
+ {status === "error" &&
@@ -327,7 +354,10 @@ export function WorkflowDetail({ client, workflowName, onBack }: Props) {
className="rounded-lg border p-4"
style={{ borderColor: "var(--color-border)", background: "var(--color-surface)" }}
>
-
+
{descriptor !== null && descriptor.description !== ""
? descriptor.description
: "—"}
diff --git a/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx b/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx
index 629df97..e29fea0 100644
--- a/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx
+++ b/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx
@@ -10,7 +10,13 @@ const FEEDBACK_RADIUS = 16;
* Build an SVG path for a feedback (back) edge that routes to the given side of the nodes.
* The path goes: source → arc → vertical up → arc → target
*/
-function feedbackPath(sourceX: number, sourceY: number, targetX: number, targetY: number, side: "right" | "left"): string {
+function feedbackPath(
+ sourceX: number,
+ sourceY: number,
+ targetX: number,
+ targetY: number,
+ side: "right" | "left",
+): string {
const d = side === "right" ? 1 : -1;
const offsetX =
side === "right"
@@ -88,12 +94,7 @@ export function ConditionEdge(props: EdgeProps) {
return (
<>
-
+
{label !== "" && (
-
-
-
-
-
+
+
+
+
+
{icon !== null && (
)}
-
+
);
}
diff --git a/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx b/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx
index 935949d..92f7a8f 100644
--- a/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx
+++ b/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx
@@ -50,7 +50,13 @@ export function TerminalNode(props: NodeProps) {
isConnectable={false}
/>
) : (
-
+
)}
{isStart ? "▶" : "■"}
diff --git a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts
index 731f2cc..61a90b7 100644
--- a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts
+++ b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts
@@ -216,7 +216,11 @@ function computeLayout(input: LayoutInput): LayoutResult {
id: edgeKey(e),
source: e.from,
target: e.to,
- sourceHandle: isFeedback ? (feedbackSide === "left" ? "left-out" : "right-out") : "bottom-out",
+ sourceHandle: isFeedback
+ ? feedbackSide === "left"
+ ? "left-out"
+ : "right-out"
+ : "bottom-out",
targetHandle: isFeedback ? (feedbackSide === "left" ? "left-in" : "right-in") : "top-in",
type: "condition",
data: {
diff --git a/packages/workflow-dashboard/src/components/workflow-list.tsx b/packages/workflow-dashboard/src/components/workflow-list.tsx
index c4bbf91..54461b6 100644
--- a/packages/workflow-dashboard/src/components/workflow-list.tsx
+++ b/packages/workflow-dashboard/src/components/workflow-list.tsx
@@ -28,7 +28,11 @@ export function WorkflowList({ client, onSelect }: Props) {
type="button"
onClick={() => onSelect(w.name)}
className="w-full text-left p-4 rounded-lg border hover:opacity-90"
- style={{ background: "var(--color-surface)", borderColor: "var(--color-border)", color: "var(--color-text)" }}
+ style={{
+ background: "var(--color-surface)",
+ borderColor: "var(--color-border)",
+ color: "var(--color-text)",
+ }}
>
{w.name}
@@ -40,10 +44,7 @@ export function WorkflowList({ client, onSelect }: Props) {
{w.hash !== null ? w.hash : "—"}
{w.timestamp !== null ? (
-
+
Updated {new Date(w.timestamp).toLocaleString()}
) : null}
diff --git a/packages/workflow-dashboard/src/use-hash-route.ts b/packages/workflow-dashboard/src/use-hash-route.ts
index b3d6dc7..78ccc8a 100644
--- a/packages/workflow-dashboard/src/use-hash-route.ts
+++ b/packages/workflow-dashboard/src/use-hash-route.ts
@@ -80,17 +80,20 @@ export function useHashRoute(): {
);
const setClient = useCallback(
- (a: string | null) => navigate({ view: route.view, client: a, threadId: null, workflowName: null }),
+ (a: string | null) =>
+ navigate({ view: route.view, client: a, threadId: null, workflowName: null }),
[navigate, route.view],
);
const setThreadId = useCallback(
- (id: string | null) => navigate({ view: "threads", client: route.client, threadId: id, workflowName: null }),
+ (id: string | null) =>
+ navigate({ view: "threads", client: route.client, threadId: id, workflowName: null }),
[navigate, route.client],
);
const setWorkflowName = useCallback(
- (name: string | null) => navigate({ view: "workflows", client: route.client, threadId: null, workflowName: name }),
+ (name: string | null) =>
+ navigate({ view: "workflows", client: route.client, threadId: null, workflowName: name }),
[navigate, route.client],
);
diff --git a/packages/workflow-gateway/src/index.ts b/packages/workflow-gateway/src/index.ts
index 6de703b..b49e422 100644
--- a/packages/workflow-gateway/src/index.ts
+++ b/packages/workflow-gateway/src/index.ts
@@ -305,7 +305,12 @@ app.all("/api/clients/:client/*", async (c) => {
headers: forwardRecord,
body: bodyStr,
};
- const proxyResp = await fetchThroughClientSocket(c.env, client, c.env.GATEWAY_SECRET, wsRequest);
+ const proxyResp = await fetchThroughClientSocket(
+ c.env,
+ client,
+ c.env.GATEWAY_SECRET,
+ wsRequest,
+ );
if (proxyResp.status !== 503) {
return new Response(proxyResp.body, {
status: proxyResp.status,