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>
This commit is contained in:
Romuald Członkowski
2025-11-04 11:33:54 +01:00
committed by GitHub
parent af6efe9e88
commit 65f51ad8b5
6 changed files with 144 additions and 8 deletions

View File

@@ -313,6 +313,7 @@ describe('n8n-validation', () => {
createdAt: '2023-01-01',
updatedAt: '2023-01-01',
versionId: 'v123',
versionCounter: 5, // n8n 1.118.1+ field
meta: { test: 'data' },
staticData: { some: 'data' },
pinData: { pin: 'data' },
@@ -333,6 +334,7 @@ describe('n8n-validation', () => {
expect(cleaned).not.toHaveProperty('createdAt');
expect(cleaned).not.toHaveProperty('updatedAt');
expect(cleaned).not.toHaveProperty('versionId');
expect(cleaned).not.toHaveProperty('versionCounter'); // n8n 1.118.1+ compatibility
expect(cleaned).not.toHaveProperty('meta');
expect(cleaned).not.toHaveProperty('staticData');
expect(cleaned).not.toHaveProperty('pinData');
@@ -349,6 +351,22 @@ describe('n8n-validation', () => {
expect(cleaned.settings).toEqual({ executionOrder: 'v1' });
});
it('should exclude versionCounter for n8n 1.118.1+ compatibility', () => {
const workflow = {
name: 'Test Workflow',
nodes: [],
connections: {},
versionId: 'v123',
versionCounter: 5, // n8n 1.118.1 returns this but rejects it in PUT
} as any;
const cleaned = cleanWorkflowForUpdate(workflow);
expect(cleaned).not.toHaveProperty('versionCounter');
expect(cleaned).not.toHaveProperty('versionId');
expect(cleaned.name).toBe('Test Workflow');
});
it('should add empty settings object for cloud API compatibility', () => {
const workflow = {
name: 'Test Workflow',