[pull] main from czlonkowski:main - #121
Merged
Merged
Conversation
…6.0 (v2.76.1) (#1044) * fix: strip settings.engineType so workflow updates survive n8n >= 2.36.0 (v2.76.1) n8n 2.36.0 added engineType to the workflow entity's persisted settings without adding it to the Public API write schema, which is additionalProperties: false. Our updates read-modify-write, so GET handed us the property and the echoed PUT failed with "settings must NOT have additional properties" (#1043). engineType is now marked derived and stripped from every create and update, like binaryMode before it; n8n keeps stored settings for omitted keys, so the value is preserved. check-settings-drift gains the axis that was blind to this class: it diffs IWorkflowSettings from the installed n8n-workflow package against the OpenAPI schema, fails on an unhandled entity-only property, and fails again when n8n later publishes a stripped property to the schema. The entity parser fails loudly on extends/declaration merging, and the classification gate is a pure function with direct tests plus an offline CI assertion that every entity property is known to the table. Verified end-to-end against n8n 2.36.7: a workflow with settings.engineType = "v2" injected updates successfully through the fixed server, and the setting survives the write unchanged. Fixes #1043 Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj * fix: harden the entity axis of check-settings-drift (review round 2) Codex and Copilot findings on the new drift axis, all adopted: - Verify the fetched schema's n8n release actually ships the installed n8n-workflow (exact pin in its package.json) and warn on a mismatch - the nodes-base pin names a sibling release, not the meta-package. - An entity-only property is handled only when marked BOTH derived and entityOnly, and the remediation message says so - derived alone would leave the published-upstream detector disarmed. - The entity parser strips block comments (a declaration-shaped line or stray brace inside one no longer derails it) and throws when content shares the opening-brace line instead of skipping it silently. - Without an entity set, a derived property from a later n8n than the target is classified ahead-of-the-pin, not "entity-only, expected". - An unhandled entity-only property is no longer double-reported as expected by the info line. Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj * fix: resolve the true n8n release and parse entity types with the TS AST (review round 3) - The schema is now fetched from the n8n release whose published pins match the installed packages, found by scanning the newest releases' package.json pins (nodes-base@2.36.4 ships in n8n@2.36.7, while n8n@2.36.4 pins nodes-base@2.36.3 - the same-number mapping read a neighbouring release's schema). Falls back to the old mapping with a pin warning when the registry is unreachable or nothing matches. - The entity parser is the real TypeScript parser instead of a hand-rolled lexer: line comments, string literal types, inline braces and split declarations no longer silently truncate the property set, and any member it cannot enumerate (index signature, method, computed name) fails closed. - Restore the 2.76.0 changelog header that the 2.76.1 entry accidentally swallowed, and bump package.runtime.json to 2.76.1 (both Copilot). Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj * fix: fail closed on partial parses and widen the skew warning (review round 4) - Reject any syntactic diagnostic before walking the AST: createSourceFile recovers from errors, so a truncated declarations file would otherwise yield a partial property set that reads as "no entity-only properties". The internal parseDiagnostics field disappearing also throws. - Collect only top-level IWorkflowSettings declarations - a same-named interface inside a namespace does not merge with the export. - The residual-skew warning now covers both pins (the fallback release can match n8n-workflow while shipping a different n8n-nodes-base) and the pins-unfetchable case. Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj * fix: compare release pins against installed versions, not declared ones (review round 5) The skew warning and release resolution read the installed n8n-nodes-base version from node_modules instead of the package.json pin, so a stale install cannot pair this run's entity types with a schema neither belongs to; an unreadable install is itself reported. Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj * fix: read the installed n8n-workflow version via the package.json subpath (Copilot round 3) Consistent with installedNodesBaseVersion; the resolved-entry path walk stays as a fallback for a future exports map that blocks the subpath. Conceived by Romuald Członkowski - www.aiadvisors.pl/en Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JXDW1LGvRXaQydK21X89sj --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )