Revert "fix(frontend/builder): Sync frontend node IDs with backend after save" (#11142)

Reverts Significant-Gravitas/AutoGPT#11075
This commit is contained in:
Nicholas Tindle
2025-10-13 02:16:02 -05:00
committed by GitHub
parent cf6e724e99
commit a49c957467

View File

@@ -629,7 +629,7 @@ export default function useAgentGraph(
recommended_schedule_cron: agentRecommendedScheduleCron || null,
nodes: xyNodes.map(
(node): NodeCreatable => ({
id: node.data.backend_id ?? node.id,
id: node.id,
block_id: node.data.block_id,
input_default: prepareNodeInputData(node),
metadata: {
@@ -695,56 +695,38 @@ export default function useAgentGraph(
// Update the node IDs on the frontend
setSavedAgent(newSavedAgent);
// Create a mapping from old frontend IDs to new backend IDs
const oldToNewNodeIDMap = new Map<string, string>();
setXYNodes((prev) =>
newSavedAgent.nodes
setXYNodes((prev) => {
return newSavedAgent.nodes
.map((backendNode) => {
const key = `${backendNode.block_id}_${backendNode.metadata.position.x}_${backendNode.metadata.position.y}`;
const oldFrontendNodeID = blockIDToNodeIDMap[key];
const frontendNode = prev.find(
(node) => node.id === oldFrontendNodeID,
);
if (frontendNode) {
// Store the ID mapping for edge updates
oldToNewNodeIDMap.set(oldFrontendNodeID, backendNode.id);
}
const frontendNodeID = blockIDToNodeIDMap[key];
const frontendNode = prev.find((node) => node.id === frontendNodeID);
const { position, ...metadata } = backendNode.metadata;
return frontendNode
? ({
...frontendNode,
id: backendNode.id, // Update the actual node ID to match backend
position,
data: {
...frontendNode.data,
hardcodedValues: removeEmptyStringsAndNulls(
frontendNode.data.hardcodedValues,
),
backend_id: backendNode.id,
metadata,
status: undefined,
executionResults: undefined,
backend_id: backendNode.id,
executionResults: [],
metadata,
},
} satisfies CustomNode)
: _backendNodeToXYNode(backendNode, newSavedAgent); // fallback
})
.filter((node) => node !== null),
);
// Reset bead count & update edge references to use the new node IDs
setXYEdges((edges) =>
edges.map((edge): CustomEdge => {
const newSourceId = oldToNewNodeIDMap.get(edge.source) || edge.source;
const newTargetId = oldToNewNodeIDMap.get(edge.target) || edge.target;
return {
.filter((node) => node !== null);
});
// Reset bead count
setXYEdges((edges) => {
return edges.map(
(edge): CustomEdge => ({
...edge,
source: newSourceId,
target: newTargetId,
data: {
...edge.data,
edgeColor: edge.data?.edgeColor ?? "grey",
@@ -752,9 +734,9 @@ export default function useAgentGraph(
beadDown: 0,
beadData: new Map(),
},
};
}),
);
}),
);
});
return newSavedAgent;
}, [
api,