fix: add smart parameters (branch, case, from, to) to Zod schema

The smart parameters implementation was incomplete - while the diff engine
correctly handled branch and case parameters, the Zod schema in
handlers-workflow-diff.ts was stripping them out before they reached the engine.

Found by n8n-mcp-tester: branch='false' parameter was being stripped,
causing connections to default to sourceIndex=0 instead of sourceIndex=1.

Added to Zod schema:
- branch: z.enum(['true', 'false']).optional() - For IF nodes
- case: z.number().optional() - For Switch nodes
- from: z.string().optional() - For rewireConnection operation
- to: z.string().optional() - For rewireConnection operation

All 141 tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-10-05 23:45:44 +02:00
parent a7bfa73479
commit aeaba3b9ca

View File

@@ -27,10 +27,15 @@ const workflowDiffSchema = z.object({
// Connection operations
source: z.string().optional(),
target: z.string().optional(),
from: z.string().optional(), // For rewireConnection
to: z.string().optional(), // For rewireConnection
sourceOutput: z.string().optional(),
targetInput: z.string().optional(),
sourceIndex: z.number().optional(),
targetIndex: z.number().optional(),
// Smart parameters (Phase 1 UX improvement)
branch: z.enum(['true', 'false']).optional(),
case: z.number().optional(),
ignoreErrors: z.boolean().optional(),
// Connection cleanup operations
dryRun: z.boolean().optional(),