Commit Graph

12 Commits

Author SHA1 Message Date
thesved
a70d96a373 Add version-aware settings filtering for n8n API compatibility
This commit adds automatic detection of n8n server version and filters
workflow settings properties based on what the target version supports.

Changes:
- Add n8n-version.ts service for version detection via /rest/settings
- Fix nested response structure handling (data.data.versionCli)
- Add N8nVersionInfo and N8nSettingsData types
- Update N8nApiClient with getVersion() and version-aware filtering
- Clean workflow settings before API update based on detected version

Version compatibility:
- n8n < 1.37.0: 7 core properties only
- n8n 1.37.0+: adds executionOrder
- n8n 1.119.0+: adds callerPolicy, callerIds, timeSavedPerExecution, availableInMCP

Fixes #466
2025-12-05 12:01:31 +01:00
Romuald Członkowski
ef9b6f6341 fix: n8n_test_workflow webhookId resolution and form handling (v2.28.2) (#462) 2025-12-01 22:33:25 +01:00
Romuald Członkowski
fc37907348 fix: resolve empty settings validation error in workflow updates (#431) (#432) 2025-11-20 19:19:08 +01:00
Romuald Członkowski
65f51ad8b5 chore: bump version to 2.22.9 (#395)
* chore: bump version to 2.22.9

Updated version number to trigger release workflow after n8n 1.118.1 update.
Previous version 2.22.8 was already released on 2025-10-28, so the release
workflow did not trigger when PR #393 was merged.

Changes:
- Bump package.json version from 2.22.8 to 2.22.9
- Update CHANGELOG.md with correct version and date

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

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

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: update n8n update workflow with lessons learned

Added new fast workflow section based on 2025-11-04 update experience:
- CRITICAL: Check existing releases first to avoid version conflicts
- Skip local tests - CI runs them anyway (saves 2-3 min)
- Integration test failures with 'unauthorized' are infrastructure issues
- Release workflow only triggers on version CHANGE
- Updated time estimates for fast vs full workflow

This will make future n8n updates smoother and faster.

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

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

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: exclude versionCounter from workflow updates for n8n 1.118.1

n8n 1.118.1 returns versionCounter in GET /workflows/{id} responses but
rejects it in PUT /workflows/{id} updates with the error:
'request/body must NOT have additional properties'

This was causing all integration tests to fail in CI with n8n 1.118.1.

Changes:
- Added versionCounter to excluded properties in cleanWorkflowForUpdate()
- Tested and verified fix works with n8n 1.118.1 test instance

Fixes CI failures in PR #395

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

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

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: improve versionCounter fix with types and tests

- Add versionCounter type definition to Workflow and WorkflowExport interfaces
- Add comprehensive test coverage for versionCounter exclusion
- Update CHANGELOG with detailed bug fix documentation

Addresses code review feedback from PR #395

Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-04 11:33:54 +01:00
czlonkowski
1cfbdc3bdf feat: implement Phase 5 integration tests (workflow management)
Implemented comprehensive integration tests for workflow deletion and listing:

Test Coverage (16 scenarios):
- delete-workflow.test.ts: 3 tests
  * Successful deletion
  * Error handling for non-existent workflows
  * Cleanup verification

- list-workflows.test.ts: 13 tests
  * No filters (all workflows)
  * Filter by active status (true/false)
  * Filter verification
  * Pagination (first page, cursor, last page)
  * Limit variations (1, 50, 100)
  * Exclude pinned data
  * Empty results
  * Sort order verification

Critical Fixes:
- handleDeleteWorkflow: Now returns deleted workflow data (per n8n API spec)
- handleListWorkflows: Convert tags array to comma-separated string (n8n API format)
- N8nApiClient.deleteWorkflow: Return Workflow object instead of void
- WorkflowListParams.tags: Changed from string[] to string (API expects CSV format)

All 71 integration tests passing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 23:33:10 +02:00
czlonkowski
64b9cf47a7 feat: enhance webhook error messages with execution guidance
Replace generic "Please try again later or contact support" error messages
with actionable guidance that directs users to use n8n_get_execution with
mode='preview' for efficient debugging.

## Changes

### Core Functionality
- Add formatExecutionError() to create execution-specific error messages
- Add formatNoExecutionError() for cases without execution context
- Update handleTriggerWebhookWorkflow to extract execution/workflow IDs from errors
- Modify getUserFriendlyErrorMessage to avoid generic SERVER_ERROR message

### Type Updates
- Add executionId and workflowId optional fields to McpToolResponse
- Add errorHandling optional field to ToolDocumentation.full

### Error Message Format

**With Execution ID:**
"Workflow {workflowId} execution {executionId} failed. Use n8n_get_execution({id: '{executionId}', mode: 'preview'}) to investigate the error."

**Without Execution ID:**
"Workflow failed to execute. Use n8n_list_executions to find recent executions, then n8n_get_execution with mode='preview' to investigate."

### Testing
- Add comprehensive tests in tests/unit/utils/n8n-errors.test.ts (20 tests)
- Add 10 new tests for handleTriggerWebhookWorkflow in handlers-n8n-manager.test.ts
- Update existing health check test to expect new error message format
- All tests passing (52 total tests)

### Documentation
- Update n8n-trigger-webhook-workflow tool documentation with errorHandling section
- Document why mode='preview' is recommended (fast, efficient, safe)
- Add example error responses and investigation workflow

## Why mode='preview'?
- Fast: <50ms response time
- Efficient: ~500 tokens (vs 50K+ for full mode)
- Safe: No timeout or token limit risks
- Informative: Shows structure, counts, and error details

## Breaking Changes
None - backward compatible improvement to error messages only.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 10:57:29 +02:00
czlonkowski
ec0d2e8a6e feat: add intelligent execution data filtering to n8n_get_execution tool
Implements comprehensive execution data filtering system to enable AI agents
to inspect large workflow executions without exceeding token limits.

Features:
- Preview mode: Shows structure, counts, and size estimates (~500 tokens)
- Summary mode: Returns 2 sample items per node (~2-5K tokens)
- Filtered mode: Granular control with itemsLimit and nodeNames
- Full mode: Complete data retrieval (explicit opt-in)
- Smart recommendations based on data size analysis
- Structure-only mode (itemsLimit: 0) for schema inspection
- 100% backward compatibility with legacy includeData parameter

Technical improvements:
- New ExecutionProcessor service with intelligent filtering logic
- Type-safe implementation with Record<string, unknown> over any
- Comprehensive validation and error handling
- 33 unit tests with 78% coverage
- Constants-based thresholds for easy tuning

Bug fixes:
- Fixed preview mode API data fetching to enable structure analysis
- Validates and caps itemsLimit to prevent abuse

Impact:
- Reduces token usage by 80-95% for large datasets (50+ items)
- Prevents token overflow when inspecting workflow executions
- Enables recommended workflow: preview → recommendation → targeted fetch

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 00:01:59 +02:00
czlonkowski
14bd0f55d3 feat: implement comprehensive expression format validation system
- Add universal expression validator with 100% reliable detection
- Implement confidence-based scoring for node-specific recommendations
- Add resource locator format detection and validation
- Fix pattern matching precision (exact/prefix instead of includes)
- Add recursion depth protection (MAX_RECURSION_DEPTH = 100)
- Validate resource locator modes (id, url, expression, name, list)
- Separate universal rules from node-specific intelligence
- Add comprehensive test coverage (94%+ statements)
- Prevent common AI agent mistakes with expressions

Addresses code review feedback with critical fixes and enhancements.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 23:16:24 +02:00
Amaury Constant
36839a1c30 Add isArchived field to workflow responses and types 2025-09-03 10:04:02 +02:00
czlonkowski
eab3cc858e fix: comprehensive error handling and node-level properties validation (fixes #26)
Root cause: AI agents were placing error handling properties inside `parameters` instead of at node level

Major changes:
- Enhanced workflow validator to check for ALL node-level properties (expanded from 6 to 11)
- Added validation for onError property values and deprecation warnings for continueOnFail
- Updated all examples to use modern error handling (onError instead of continueOnFail)
- Added comprehensive node-level properties documentation in tools_documentation
- Enhanced MCP tool documentation for n8n_create_workflow and n8n_update_partial_workflow
- Added test script demonstrating correct node-level property usage

Node-level properties now validated:
- credentials, disabled, notes, notesInFlow, executeOnce
- onError, retryOnFail, maxTries, waitBetweenTries, alwaysOutputData
- continueOnFail (deprecated)

Validation improvements:
- Detects misplaced properties and provides clear fix examples
- Shows complete node structure when properties are incorrectly placed
- Type validation for all node-level boolean and string properties
- Smart error messages with correct placement guidance

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 20:39:24 +02:00
czlonkowski
0aab176e7d feat(v2.7.0): add n8n_update_partial_workflow with transactional updates
BREAKING CHANGES:
- Renamed n8n_update_workflow to n8n_update_full_workflow for clarity

NEW FEATURES:
- Added n8n_update_partial_workflow tool for diff-based workflow editing
- Implemented WorkflowDiffEngine with 13 operation types
- Added transactional updates with two-pass processing
- Maximum 5 operations per request for reliability
- Operations can be in any order - engine handles dependencies
- Added validateOnly mode for testing changes before applying
- 80-90% token savings by only sending changes

IMPROVEMENTS:
- Enhanced tool description with comprehensive parameter documentation
- Added clear examples for simple and complex use cases
- Improved error messages and validation
- Added extensive test coverage for all operations

DOCUMENTATION:
- Added workflow-diff-examples.md with usage patterns
- Added transactional-updates-example.md showing before/after
- Updated README.md with v2.7.0 features
- Updated CLAUDE.md with latest changes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 11:33:57 +02:00
czlonkowski
74f05e937f feat: integrate n8n management tools from n8n-manager-for-ai-agents (v2.6.0)
- Added 14 n8n management tools for workflow CRUD and execution management
- Integrated n8n API client with full error handling and validation
- Added conditional tool registration (only when N8N_API_URL configured)
- Complete workflow lifecycle: discover → build → validate → deploy → execute
- Updated documentation and added integration tests
- Maintains backward compatibility - existing functionality unchanged

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26 11:09:09 +02:00