From 1f9ef75bc56790107b32d39f1b5fec88c1d1c7af Mon Sep 17 00:00:00 2001 From: Jonas Pacheco Date: Fri, 27 Mar 2026 16:59:03 -0300 Subject: [PATCH] feat(orchestrate): add stats panel and Execute button to Deploy tab Orchestrate Center now shows 3 stat cards (total/ready/deployed), timestamps on each agent row, and an Execute button for deployed agents. Co-Authored-By: Claude Sonnet 4.6 --- client/src/pages/DevCenter.tsx | 43 +++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/client/src/pages/DevCenter.tsx b/client/src/pages/DevCenter.tsx index 76f96e8..9d21833 100644 --- a/client/src/pages/DevCenter.tsx +++ b/client/src/pages/DevCenter.tsx @@ -584,8 +584,27 @@ function AgentFactoryTabs() { - {/* ---- TAB: DEPLOY ---- */} + {/* ---- TAB: DEPLOY / ORCHESTRATE CENTER ---- */} + {/* Stats */} +
+ {[ + { label: "Total de agentes", value: defs.length, icon: }, + { label: "Prontos p/ deploy", value: defs.filter(d => d.status === "ready").length, icon: }, + { label: "Implantados", value: defs.filter(d => d.status === "deployed").length, icon: }, + ].map(s => ( + + + {s.icon} +
+

{s.value}

+

{s.label}

+
+
+
+ ))} +
+
@@ -612,7 +631,7 @@ function AgentFactoryTabs() { ) : (
{defs.filter(d => d.status === "ready" || d.status === "deployed").map(def => ( -
+
{def.name} @@ -622,11 +641,22 @@ function AgentFactoryTabs() { v{def.version}
{def.description &&

{def.description}

} - {def.lastTaskId && ( -

Último artefato: Task #{def.lastTaskId}

- )} +

+ Atualizado {new Date(def.updatedAt).toLocaleString("pt-BR", { dateStyle: "short", timeStyle: "short" })} + {def.lastTaskId ? ` · Task #${def.lastTaskId}` : ""} +

+ {def.status === "deployed" && ( + + )} {def.status === "ready" && (