Files
n8n-mcp/data/nodes.db
czlonkowski 92eb4ef34f fix: resolve node type normalization bug blocking all AI validation (HIGH-01, HIGH-04, HIGH-08)
CRITICAL BUG FIX:
NodeTypeNormalizer.normalizeToFullForm() converts TO SHORT form (nodes-langchain.*),
but all validation code compared against FULL form (@n8n/n8n-nodes-langchain.*).
This caused ALL AI validation to be silently skipped.

Impact:
- Missing language model detection: NEVER triggered
- AI tool connection detection: NEVER triggered
- Streaming mode validation: NEVER triggered
- AI tool sub-node validation: NEVER triggered

ROOT CAUSE:
Line 348 in ai-node-validator.ts (and 19 other locations):
  if (normalizedType === '@n8n/n8n-nodes-langchain.agent') // FULL form
But normalizedType is 'nodes-langchain.agent' (SHORT form)
Result: Comparison always FALSE, validation never runs

FIXES:
1. ai-node-validator.ts (7 locations):
   - Lines 551, 557, 563: validateAISpecificNodes comparisons
   - Line 348: checkIfStreamingTarget comparison
   - Lines 417, 444: validateChatTrigger comparisons
   - Lines 589-591: hasAINodes array
   - Lines 606-608, 612: getAINodeCategory comparisons

2. ai-tool-validators.ts (14 locations):
   - Lines 980-991: AI_TOOL_VALIDATORS keys (13 validators)
   - Lines 1015-1037: validateAIToolSubNode switch cases (13 cases)

3. ENHANCED streaming validation:
   - Added validation for AI Agent's own streamResponse setting
   - Previously only checked streaming FROM Chat Trigger
   - Now validates BOTH scenarios (lines 259-276)

VERIFICATION:
- All 25 AI validator unit tests:  PASS
- Debug test (missing LM):  PASS
- Debug test (AI tools):  PASS
- Debug test (streaming):  PASS

Resolves:
- HIGH-01: Missing language model detection (was never running)
- HIGH-04: AI tool connection detection (was never running)
- HIGH-08: Streaming mode validation (was never running + incomplete)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 23:36:56 +02:00

58 MiB

The file is too large to be shown. View Raw