groove-dev 0.22.11 → 0.22.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@groove-dev/gui/dist/assets/{index-COJhIp55.js → index-BHRPxAO4.js} +14 -14
- package/node_modules/@groove-dev/gui/dist/index.html +1 -1
- package/node_modules/@groove-dev/gui/package.json +1 -1
- package/node_modules/@groove-dev/gui/src/views/agents.jsx +28 -7
- package/package.json +1 -1
- package/packages/gui/dist/assets/{index-COJhIp55.js → index-BHRPxAO4.js} +14 -14
- package/packages/gui/dist/index.html +1 -1
- package/packages/gui/package.json +1 -1
- package/packages/gui/src/views/agents.jsx +28 -7
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
7
7
|
<title>Groove GUI</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BHRPxAO4.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vendor-C0HXlhrU.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/reactflow-BQPfi37R.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/codemirror-BBL3i_JW.js">
|
|
@@ -270,19 +270,40 @@ function AgentTreeInner() {
|
|
|
270
270
|
|
|
271
271
|
const [nodes, setNodes, onNodesChange] = useNodesState(targetNodes);
|
|
272
272
|
const [edges, setEdges, onEdgesChange] = useEdgesState(targetEdges);
|
|
273
|
-
const
|
|
273
|
+
const prevAgentIds = useRef(new Set());
|
|
274
|
+
|
|
275
|
+
// Update node DATA without replacing positions (prevents fly-in)
|
|
276
|
+
useEffect(() => {
|
|
277
|
+
setNodes((current) => {
|
|
278
|
+
const currentMap = new Map(current.map((n) => [n.id, n]));
|
|
279
|
+
const newIds = new Set(targetNodes.map((n) => n.id));
|
|
280
|
+
|
|
281
|
+
return targetNodes.map((tn) => {
|
|
282
|
+
const existing = currentMap.get(tn.id);
|
|
283
|
+
if (existing) {
|
|
284
|
+
// Preserve existing position, update data only
|
|
285
|
+
return { ...existing, data: tn.data };
|
|
286
|
+
}
|
|
287
|
+
// New node — use calculated position
|
|
288
|
+
return tn;
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
}, [targetNodes, setNodes]);
|
|
274
292
|
|
|
275
|
-
useEffect(() => { setNodes(targetNodes); }, [targetNodes, setNodes]);
|
|
276
293
|
useEffect(() => { setEdges(targetEdges); }, [targetEdges, setEdges]);
|
|
277
294
|
|
|
278
295
|
useEffect(() => {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
296
|
+
const currentIds = new Set(agents.map((a) => a.id));
|
|
297
|
+
const isNewAgent = agents.length > 0 && [...currentIds].some((id) => !prevAgentIds.current.has(id));
|
|
298
|
+
prevAgentIds.current = currentIds;
|
|
299
|
+
|
|
300
|
+
if (prevCount === 0 && agents.length > 0) {
|
|
301
|
+
setTimeout(() => fitView({ padding: 0.3, maxZoom: 1.2, duration: 0 }), 50);
|
|
302
|
+
} else if (isNewAgent) {
|
|
303
|
+
setTimeout(() => fitView({ padding: 0.3, maxZoom: 1.2, duration: 300 }), 100);
|
|
283
304
|
}
|
|
284
305
|
setPrevCount(agents.length);
|
|
285
|
-
}, [agents.length, prevCount, fitView]);
|
|
306
|
+
}, [agents.length, agents, prevCount, fitView]);
|
|
286
307
|
|
|
287
308
|
const onNodeClick = useCallback((_e, node) => {
|
|
288
309
|
if (node.id === ROOT_ID) return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "groove-dev",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.13",
|
|
4
4
|
"description": "Open-source agent orchestration layer — the AI company OS. MCP integrations (Slack, Gmail, Stripe, 15+), agent scheduling (cron), business roles (CMO, CFO, EA). GUI dashboard, multi-agent coordination, zero cold-start, infinite sessions. Works with Claude Code, Codex, Gemini CLI, Ollama.",
|
|
5
5
|
"license": "FSL-1.1-Apache-2.0",
|
|
6
6
|
"author": "Groove Dev <hello@groovedev.ai> (https://groovedev.ai)",
|