fix: use 'updates' property consistently in updateNode operations

- Changed UpdateNodeOperation interface to use 'updates' instead of 'changes'
- Updated UpdateConnectionOperation for consistency
- Fixed implementation in workflow-diff-engine.ts
- Updated Zod schema validation
- Fixed documentation and examples
- Updated tests to match new property name

This resolves GitHub issues #159 and #168 where partial workflow updates
were failing, forcing AI agents to fall back to expensive full updates.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-09-17 23:22:51 +02:00
parent 0ef69fbf75
commit 17530c0f72
5 changed files with 18 additions and 18 deletions

View File

@@ -453,8 +453,8 @@ export class WorkflowDiffEngine {
const node = this.findNode(workflow, operation.nodeId, operation.nodeName);
if (!node) return;
// Apply changes using dot notation
Object.entries(operation.changes).forEach(([path, value]) => {
// Apply updates using dot notation
Object.entries(operation.updates).forEach(([path, value]) => {
this.setNestedProperty(node, path, value);
});
}
@@ -545,18 +545,18 @@ export class WorkflowDiffEngine {
type: 'removeConnection',
source: operation.source,
target: operation.target,
sourceOutput: operation.changes.sourceOutput,
targetInput: operation.changes.targetInput
sourceOutput: operation.updates.sourceOutput,
targetInput: operation.updates.targetInput
});
this.applyAddConnection(workflow, {
type: 'addConnection',
source: operation.source,
target: operation.target,
sourceOutput: operation.changes.sourceOutput,
targetInput: operation.changes.targetInput,
sourceIndex: operation.changes.sourceIndex,
targetIndex: operation.changes.targetIndex
sourceOutput: operation.updates.sourceOutput,
targetInput: operation.updates.targetInput,
sourceIndex: operation.updates.sourceIndex,
targetIndex: operation.updates.targetIndex
});
}