Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
240 commits
Select commit Hold shift + click to select a range
7c7c70f
ci: Unify QA metrics pipeline to single webhook, format, and BigQuery…
shortstacked Mar 17, 2026
5c0e0bc
feat(core): Add chat hub settings to disable Responses API and change…
Cadiac Mar 17, 2026
a7b9e00
fix: Partial execution of Chat node and Chat tool (#26334)
michael-radency Mar 17, 2026
eea5fff
fix(editor): Update StopManyExecs modal formatting, (#26994)
CharlieKolb Mar 17, 2026
969c32f
fix(editor): Show warning toast when executed node was not reached (#…
scdekov Mar 17, 2026
104bab4
chore: Update PR template with new backport labels (#27123)
Matsuuu Mar 17, 2026
5ffe546
feat(core): Wire builtin globals onto __data in VM expression isolate…
despairblue Mar 17, 2026
7e9f14c
fix(editor): Prevent clicks on pinned rows in data tables (#26347)
MiloradFilipovic Mar 17, 2026
5800ab8
fix(core): Retry multi-main follower license check during startup (#2…
tomi Mar 17, 2026
d1d56c8
chore(core): Add additional validation on resolver config and better …
guillaumejacquart Mar 17, 2026
2f7db77
fix(core): Preserve nested proxy/redirect shape in log streaming webh…
guillaumejacquart Mar 17, 2026
b2d7bde
fix(editor): Command bar wasn't finding any workflows (#26788)
scdekov Mar 17, 2026
608c649
chore(editor): Add A/A exp to validate experimentation system (no-cha…
paulomation Mar 17, 2026
bc76e62
fix(editor): Remove inconsistent scrim on node creator open (#27086)
CharlieKolb Mar 17, 2026
04bf206
fix(core): Emit `leader-takeover` on leadership mismatch in `checkLea…
ivov Mar 17, 2026
6dd462e
chore: Add 1.x branch compatibility to workflow scripts (#27153)
Matsuuu Mar 17, 2026
61a4068
refactor(core): Extract global axios config into axios-config.ts (no-…
tomi Mar 17, 2026
dd419ae
fix(core): Handle external hook file paths on Windows (#26983)
tomi Mar 17, 2026
90aca62
build: Pin `uuid` in `n8n-workflow` to catalog version (#27129)
ivov Mar 17, 2026
13a0a72
docs(editor): Add shared design-system AI style review rules (no-chan…
heymynameisrob Mar 17, 2026
9854450
fix(editor): Adjust external secrets input styling (#27110)
heymynameisrob Mar 17, 2026
ebf219f
chore(editor): Differentiate canvas and chat hub events (#27100)
Cadiac Mar 17, 2026
a8f5ee3
feat: Enable secure invite links (#27107)
BGZStephen Mar 17, 2026
4eb815c
fix(core): Add missing fields to public API workflow schema (#27157)
dariacodes Mar 17, 2026
5fa8855
fix(editor): Add data to a data table by csv upload (#26495)
nikhilkuria Mar 17, 2026
91d4c1b
fix: Fix issue with hideOnCloud not working for node display options …
Joffcom Mar 18, 2026
827e868
fix(Postgres Node): Expressions are not resolved in v1 (#26496)
RomanDavydchuk Mar 18, 2026
8995c25
ci: Schedule creation of minor and patch PRs (#27199)
Matsuuu Mar 18, 2026
927b7bc
ci: Create github releases from mjs scripts (#27121)
Matsuuu Mar 18, 2026
3f1d60f
fix(ai-builder): Show feedback buttons in variant (no-changelog) (#27…
schrothbn Mar 18, 2026
7f262fb
refactor(editor): Migrate NDV panel components to `workflowDocumentSt…
alexgrozav Mar 18, 2026
f2d5497
refactor(editor): Migrate NDV settings and runData to `workflowDocume…
alexgrozav Mar 18, 2026
eddb26d
fix(core): Add plain text body to password reset and notification ema…
guillaumejacquart Mar 18, 2026
277a45d
refactor(editor): Migrate shared editors and context menu to injectWo…
r00gm Mar 18, 2026
95fca83
fix(core): Use published version for error workflow execution (#27196)
RicardoE105 Mar 18, 2026
8759547
feat(core): Apply execution redaction to real-time push events (no-ch…
afitzek Mar 18, 2026
d0e7ce0
feat(core): Send user agent for public api events (no-changelog) (#27…
dariacodes Mar 18, 2026
4d40db2
perf(core): Fix slow user mock in cli tests (no-changelog) (#27205)
MiloradFilipovic Mar 18, 2026
e5dd890
ci: Strip backport information from commit labels on changelog (#27203)
Matsuuu Mar 18, 2026
30b8dc4
feat: Add design principles section to AGENTS.md with the security gu…
aalises Mar 18, 2026
72bdad9
feat(core): Add structured error responses for authorization failures…
afitzek Mar 18, 2026
ec0831f
feat(editor): Use server-side search for project sharing dropdowns (#…
r00gm Mar 18, 2026
a830652
refactor(editor): Re-organise and label design-system stories (no-cha…
heymynameisrob Mar 18, 2026
6ede5e1
feat(core): Batch public API telemetry events on pulse cycle (#27226)
RicardoE105 Mar 18, 2026
d8f8ff0
fix(editor): Clear resource locator cache after URL redirect creation…
scdekov Mar 19, 2026
20b5037
fix(Execute Workflow Node): Fallback to latest draft if there no acti…
CharlieKolb Mar 19, 2026
91a3a3d
feat(editor): Migrate node composables to use `workflowDocumentStore`…
alexgrozav Mar 19, 2026
cfcaa97
refactor(editor): Extract workflow document connections facade compos…
alexgrozav Mar 19, 2026
322aac1
feat(core): Add filtering parameters to get_execution MCP tool (#27192)
RicardoE105 Mar 19, 2026
32ec3d3
fix(editor): Fix markdown list item wrapping in chat messages (no-cha…
heymynameisrob Mar 19, 2026
dce55d2
feat(core): Add search_projects, search_folders MCP tools and folderI…
RicardoE105 Mar 19, 2026
5af2a8a
fix(core): Stop auto applying credentials for updated MCP workflows (…
MiloradFilipovic Mar 19, 2026
588308e
fix(Jira Node): Add continueOnFail support for all operations (#27108)
alexander-gekov Mar 19, 2026
8b9c63a
refactor(editor): Migrate execution and logs composables to `workflow…
alexgrozav Mar 19, 2026
f79b4d7
feat(editor): Display workflow, credential and data table dependencie…
CharlieKolb Mar 19, 2026
036a0db
feat(editor): Add history version info to execution page (#26768)
dariacodes Mar 19, 2026
90b2b9c
fix(core): Allow expressions in tool default values on chat hub tools…
Cadiac Mar 19, 2026
51a65d9
fix(editor): Remove toast bottom offset when AI chat panel is open (#…
scdekov Mar 19, 2026
8b2903b
ci: Propagate dependency bumps transitively (#27270)
Matsuuu Mar 19, 2026
8fa0b13
refactor(editor): Migrate canvas operations to `workflowDocumentStore…
alexgrozav Mar 19, 2026
5c29289
refactor(editor): Migrate NDV stores and views to `workflowDocumentSt…
alexgrozav Mar 19, 2026
556b4d3
feat: Add new execution filter by workflow version (#26904)
dariacodes Mar 19, 2026
c2731df
fix(Anthropic Node): Update credential test to use available model (#…
burivuhster Mar 19, 2026
b6e8074
feat(core): Add project context to execution log metadata (#27169)
krider2010 Mar 19, 2026
d9bdd04
feat(core): Introduce expression-based role resolver for SSO claim ma…
afitzek Mar 19, 2026
e4e9292
refactor(editor): Migrate integrations, evaluation, and experiments t…
alexgrozav Mar 19, 2026
95f70b0
fix: Fix credential displayNames with missing spaces (#27259)
elsmr Mar 19, 2026
844b5b9
fix(core): Move OIDC SSO provisioning outside user creation transacti…
afitzek Mar 19, 2026
acaa0db
feat(core): Add node that allows checking dynamic credentials inside …
phyllis-noester Mar 19, 2026
e4c4be9
fix(editor): Unify input component background surfaces (#27237)
heymynameisrob Mar 19, 2026
deb4ef7
feat(core): Always expose mcp sdk reference as a tool (no-changelog) …
MiloradFilipovic Mar 19, 2026
beb34eb
docs: Add .env.local.example template and dotenvx for local dev setup…
JoseBra Mar 19, 2026
9b6888f
feat(API): Add GET /api/v1/discover endpoint for capability discovery…
shortstacked Mar 20, 2026
e60d9e7
fix(editor): Fix tooltip on credits counter info icon (#27244)
burivuhster Mar 20, 2026
6fcc860
fix(core): Fix unhandled rejection in task broker on runner disconnec…
ivov Mar 20, 2026
2ff73d5
feat(editor): AI workflow builder setup wizard (#26832)
scdekov Mar 20, 2026
483250d
feat(Perplexity Node): Update Perplexity node for full API coverage (…
kesku Mar 20, 2026
b13b280
feat: Add publish workflow to node-cli (#27288)
garritfra Mar 20, 2026
bab4221
test: fix scope-lockdown violations in page objects (#27326)
shortstacked Mar 20, 2026
24dcf75
ci: Prevent new version patches, if only content is ci changes (#27329)
Matsuuu Mar 20, 2026
03584b4
fix(editor): Properly align line after bullet point in Sticky markdow…
CharlieKolb Mar 20, 2026
05c6d87
chore: Bump @langchain/core to latest (#27252)
jacoblee93 Mar 20, 2026
45023af
fix(editor): Properly align line after bullet point in Sticky markdow…
CharlieKolb Mar 20, 2026
20f1092
feat: Add `@n8n/cli`: a client CLI to manage n8n from the terminal (#…
aalises Mar 20, 2026
fc52652
fix(editor): Improve colorings update logic in resolvableHighlighter …
sandra0503 Mar 20, 2026
01c623f
fix(editor): Fix workflow tag filtering excluding workflows inside fo…
JoseBra Mar 20, 2026
c47176e
fix(HTTP Request Node): Fail on non-2xx status codes during paginatio…
alexander-gekov Mar 20, 2026
682aa4a
perf(core): Make webhook cache writes non-blocking (#27360)
ivov Mar 21, 2026
e056978
feat(editor): Pass telemetry source for ai workflow builder execution…
scdekov Mar 23, 2026
b3ced35
fix(core): Fix an issue with workflow execution status (#27349)
scdekov Mar 23, 2026
9be76c5
fix(Extract from File Node): Skip empty lines in CSV parsing to preve…
elsmr Mar 23, 2026
76af1e6
feat(databricks Node): Add basic databricks node (#27004)
garritfra Mar 23, 2026
b67863b
feat(Microsoft Agent 365 Trigger Node): Mcp tools logs (#27215)
michael-radency Mar 23, 2026
1bf602e
fix(core): Allow expressions in OAuth credential URL fields (#27354)
guillaumejacquart Mar 23, 2026
e254fd0
fix(editor): Fix type mismatch (#27324)
r00gm Mar 23, 2026
5d78362
fix(editor): Support per-corner border radius in N8nInput (#27321)
heymynameisrob Mar 23, 2026
0e1ef91
fix(editor): Fix stop button size mismatch in split-trigger mode (#27…
garritfra Mar 23, 2026
fee5f2e
fix(editor): Restore animation duration units for design system dialo…
heymynameisrob Mar 23, 2026
3ad5926
chore: Add create-issue skill for Linear tickets and GitHub issues (#…
aalises Mar 23, 2026
87afcd8
fix(core): Force full execution data fetching for evaluation test run…
DeveloperTheExplorer Mar 23, 2026
81142c4
chore: Update ssh2-sftp-client to 12.1.0 (#27210)
Joffcom Mar 23, 2026
4901814
fix(AWS Bedrock Chat Model Node): Extract region from modelName ARNs …
schrothbn Mar 23, 2026
46bea6c
refactor(editor): Migrate canvas operations to workflowDocumentStore …
r00gm Mar 23, 2026
34c4f00
refactor(editor): Migrate NDV settings to workflowDocumentStore conne…
r00gm Mar 23, 2026
e607100
refactor(editor): Migrate NDV stores and views to `workflowDocumentSt…
r00gm Mar 23, 2026
95ac4a4
fix(core): Fix IDOR in test-runs endpoint by consolidating access che…
guillaumejacquart Mar 23, 2026
f689385
refactor(editor): Migrate workflow composables to workflowDocumentSto…
r00gm Mar 23, 2026
b484e89
feat(core): Add signing key and certificate fields to SAML preference…
afitzek Mar 23, 2026
88f9f2e
fix(core): Assign webhook ID to API-created webhook nodes (#27161)
ivov Mar 23, 2026
5b6ee17
feat(core): Add signature validation for waiting webhooks and forms (…
elsmr Mar 23, 2026
e04dddc
feat(core): Remove license check for API key scopes (#27306)
RicardoE105 Mar 23, 2026
efa5d02
fix(editor): Sort loop node outputs by execution order in setup panel…
scdekov Mar 23, 2026
60d6823
fix(ai-builder): Include langsmith threadId on traces in code-builder…
schrothbn Mar 23, 2026
46a0aa5
fix(AI Agent Node): Extract tool name correctly for MCP tool calls (#…
schrothbn Mar 23, 2026
a009988
fix(core): Send client_id and client_secret in body for OAuth2 PKCE f…
burivuhster Mar 23, 2026
2742741
feat(core): Add lint rules for missing node and credential icons (#27…
garritfra Mar 23, 2026
050aef7
fix(Gmail Node): Update draft resource hint (#27435)
krisn0x Mar 23, 2026
d2da928
fix(core): Confirm messages immediately when no destination is listen…
guillaumejacquart Mar 23, 2026
835094c
feat(core): Introduce CredentialDependency entity to track credential…
alielkhateeb Mar 23, 2026
604b291
docs: Add security fix hygiene guidelines for public artifacts (#27441)
DawidMyslak Mar 23, 2026
e821053
refactor(editor): Migrate AI assistant stores to workflowDocumentStor…
r00gm Mar 23, 2026
eafd32e
fix(editor): Node references in expressions not updated when the rena…
RomanDavydchuk Mar 23, 2026
ee2e928
fix(editor): Add inner content padding to Popover stories (no-changel…
heymynameisrob Mar 23, 2026
09e2c2b
fix(core): Disable dynamic banners when diagnostics are disabled (#26…
pkaya89 Mar 23, 2026
1acdafe
fix(core): VM test Group G — RCE prevention & expression fixture fixe…
despairblue Mar 23, 2026
76c10d5
fix(editor): Prevent toggle animation on Security & Policies page loa…
garritfra Mar 23, 2026
28f50f5
feat(editor): Show redacted state in execution viewer with reveal flo…
cstuncsik Mar 23, 2026
61a5261
fix(core): Clean up resolver references on deletion (#26524)
cstuncsik Mar 23, 2026
bf856cd
ci: Modify immutable commit subject via spreading (#27467)
Matsuuu Mar 24, 2026
a21e9e6
build: Add `import-x/no-extraneous-dependencies` lint rule to `n8n-wo…
ivov Mar 24, 2026
673b40e
refactor(editor): Migrate node composables to workflowDocumentStore (…
r00gm Mar 24, 2026
42bfb43
chore: Remove mariadb specific code paths (#26996)
tomi Mar 24, 2026
0eb9b1b
fix(editor): Use new move-to-folder modal in canvas header (#27091)
CharlieKolb Mar 24, 2026
98d478c
refactor(core): Extract axios utility helpers into axios-utils (#27022)
tomi Mar 24, 2026
3040d0f
chore: Lock @types/node to a version in @n8n/cli (#27473)
Matsuuu Mar 24, 2026
2374f40
:rocket: Release 2.14.0 (#27479)
n8n-assistant[bot] Mar 24, 2026
806eeea
ci: Ensure release candidates in release pipeline using the app token…
Matsuuu Mar 24, 2026
1efdb2c
ci: Remove prerelease tag when promoting previous beta to latest (#27…
Matsuuu Mar 24, 2026
6cf30f3
feat: Add role mapping rule scopes (#27476)
BGZStephen Mar 24, 2026
f3b4069
feat(editor): Add canvas-only mode (#27184)
RicardoE105 Mar 24, 2026
ac65eb9
fix(editor): Fix callout dismiss action in NDV (#27496)
MiloradFilipovic Mar 24, 2026
e638b3a
fix(core): Add ownership check to MCP OAuth client deletion (#27446)
RicardoE105 Mar 24, 2026
8fdb86d
chore: Mark @n8n/cli as beta in package description (#27500)
RicardoE105 Mar 24, 2026
8f490b5
chore: Remove unneeded peer dependency (#27501)
schrothbn Mar 24, 2026
f454b6e
chore: Add create-skill agent skill (#27448)
alexander-gekov Mar 24, 2026
9775f96
docs: Add README for @n8n/cli package (#27510)
RicardoE105 Mar 24, 2026
fc0f071
fix(core): Correct `process.version` in expression sandbox (#26550)
manus-pi Mar 24, 2026
732f2a3
ci: Create stable release on GitHub promotion (#27492)
Matsuuu Mar 25, 2026
2d9a2ec
chore: Bundle 2026-W9 (#27532)
n8n-assistant[bot] Mar 25, 2026
fb7788d
fix(core): Add format validation to source control branch name (#27518)
krystianslowik Mar 25, 2026
9ce9372
refactor(editor): Migrate workflow composables to use `workflowDocume…
alexgrozav Mar 25, 2026
f165f6c
fix(core): Include custom headers when loading OpenAI models (#27534)
Cadiac Mar 25, 2026
158e3bb
fix(Structured Output Parser Node): Show descriptive error when struc…
jeanpaul Mar 25, 2026
92e5684
ci: Replace vars context with runner.name in composite action (#27535)
Matsuuu Mar 25, 2026
c12ced7
fix(editor): Improve workflow diff design feedback (#27494)
alielkhateeb Mar 25, 2026
bf7379d
fix(editor): Populate workflowDocumentStore in execution preview ifra…
r00gm Mar 25, 2026
c683b65
fix(Basic LLM Chain Node): Fix abort signal handling (#27520)
schrothbn Mar 25, 2026
fe253d5
refactor(editor): Migrate shared editors and setup panel connections …
r00gm Mar 25, 2026
cfe1409
fix(editor): Clean up quick connect feature flag and fix first load (…
elsmr Mar 25, 2026
ad0a551
fix(core): Fix execution history when flow includes wait node (#27357)
DawidMyslak Mar 25, 2026
e0749a8
feat(core): Add RoleMappingRule entity and database tables (#27440)
BGZStephen Mar 25, 2026
9736ce7
fix(editor): Use direct store reference for connections in initialize…
r00gm Mar 25, 2026
ca3a957
fix(core): Fix hard-coded path style in external storage configuratio…
MiloradFilipovic Mar 25, 2026
e79d8af
feat: PostHog feature flags resolution caching & group support (#27525)
Joco-95 Mar 25, 2026
42843d6
feat(core): Workflow level otel (#27528)
geemanjs Mar 25, 2026
884c34e
feat(core): Add Slack signature identifier for dynamic credentials (n…
phyllis-noester Mar 25, 2026
09d736e
feat(core): Implement MemoryInstanceStorage for single-instance deplo…
afitzek Mar 25, 2026
5b4d5ce
fix(API): Skip sharing license check when isGlobal value is unchanged…
guillaumejacquart Mar 25, 2026
b557292
feat(core): Replace unbounded expression code cache with LRU (#27477)
ivov Mar 25, 2026
87a9973
fix(editor): Correct navigation to evaluation tab (#27509)
schrothbn Mar 25, 2026
5229fa0
fix: Implement raw query parameters field for Microsoft SQL node (#26…
dlavrenuek Mar 25, 2026
53f65ab
fix(Salesforce Node): Fix private key field stripping newlines in JWT…
Joffcom Mar 25, 2026
88f170b
fix(core): Refresh OAuth2 tokens on 401 during MCP tool calls (#26463)
elsmr Mar 25, 2026
468269a
ci: Run pnpm pack --dry-run on CI to catch workspace errors (#27480)
Matsuuu Mar 26, 2026
d3f40cd
fix(core): Fix race condition when stopping jobs in queue mode (#27211)
ivov Mar 26, 2026
097567f
chore: Add node-add-oauth skill (no-changelog) (#27447)
Joffcom Mar 26, 2026
23f7ed8
feat(Wordpress Node): Add support for OAuth2 (#27113)
Joffcom Mar 26, 2026
704d5b4
ci: Add 1.x sync and bundle branch automation for n8n-private (#27594)
Matsuuu Mar 26, 2026
4cc9019
feat: Type and order uniqueness (#27600)
BGZStephen Mar 26, 2026
c114e7e
feat(core): Add Slack signature extractor hook for dynamic credential…
phyllis-noester Mar 26, 2026
d3e45bc
fix(core): Resolve $().item expressions in partial executions (#27338)
r00gm Mar 26, 2026
58fbaf4
feat: Add @n8n/agents package (#27560)
yehorkardash Mar 26, 2026
93e2998
ci: Don't error on release candidate cleanup when branch is missing (…
Matsuuu Mar 26, 2026
fdd2be4
ci: Use track-specific npm dist-tags on publish (#27598)
Matsuuu Mar 26, 2026
44af2a1
ci: Add security publish fix workflow for 1.x branch (#27604)
Matsuuu Mar 26, 2026
d1fd399
ci: Detect new unpublished packages after merge and add manual publis…
Matsuuu Mar 26, 2026
197a431
fix(editor): Fix `/diff` route loading in demo mode (#27610)
MiloradFilipovic Mar 26, 2026
150067f
feat: POST / PATCH /role-mapping-rule endpoints (#27569)
BGZStephen Mar 26, 2026
57179e3
fix(Microsoft Outlook Trigger Node): Wrap folder filter in parenthese…
Joffcom Mar 26, 2026
ef506be
fix: Fix issue with multi line string handling (#27176)
Joffcom Mar 26, 2026
174aece
chore: Add n8n Claude Code plugin with setup-mcps skill (#27589)
cstuncsik Mar 26, 2026
65a5495
perf(core): Optimize execution deletions for throughput (#27336)
ivov Mar 26, 2026
d8fc058
feat(core): Add OTEL unhappy path handling and safe trace exporter (#…
alielkhateeb Mar 26, 2026
1113cee
feat(Zammad Node): Add support for updating tickets (#16800)
riascho Mar 27, 2026
10d4a7d
ci: Pin action to commit SHA and pass secrets via env vars (#27622)
Matsuuu Mar 27, 2026
ba59ff1
ci: Allow manual execution of release-schedule-patch-prs (#27653)
Matsuuu Mar 27, 2026
6de4662
ci: Set initial npm publish to function with it's own token (#27620)
Matsuuu Mar 27, 2026
8b9de31
feat(core): Implement Test workflow MCP tool (#27348)
MiloradFilipovic Mar 27, 2026
0fd427d
fix(editor): Fix empty project ID when creating resources using RLC (…
MiloradFilipovic Mar 27, 2026
1064f04
feat: GET /role-mapping-rule endpoint (#27609)
BGZStephen Mar 27, 2026
dccc391
feat(editor): Implement preview tag for MCP (no-changelog) (#27630)
MiloradFilipovic Mar 27, 2026
b4f0965
fix(editor): Remove unused options from NDV settings for agent model …
scdekov Mar 27, 2026
4f98ce4
fix(editor): Truncate long workflow names in insights table (#27631)
MarcL Mar 27, 2026
4d356c3
feat: Environment var to disable forms pages sandboxing (#27409)
michael-radency Mar 27, 2026
f36f6ae
feat(core): Move id extraction logic into resolver (no-changelog) (#2…
phyllis-noester Mar 27, 2026
3d04c50
feat: DELETE /role-mapping-rule endpoint (#27608)
BGZStephen Mar 27, 2026
451d772
fix: Fix issue preventing community nodes re-installing when using a …
Joffcom Mar 27, 2026
f751500
chore: Update n8n-plan skill to save plans and link them in PRs (no-c…
scdekov Mar 27, 2026
948f458
feat(editor): Replace restore/changes UI with inline version cards (#…
DeveloperTheExplorer Mar 27, 2026
b173e3b
feat(core): Add Slack credential resolver for dynamic credentials (no…
phyllis-noester Mar 27, 2026
d33334c
feat(core): Add public API endpoints for workflow archive and unarchi…
sandra0503 Mar 27, 2026
54deffc
feat: Add normalization after create, update, delete (#27669)
BGZStephen Mar 27, 2026
4270819
chore: Update node popularity data (#27400)
n8n-assistant[bot] Mar 30, 2026
a77aa6a
fix(core): Use toString() instead of type cast for password field che…
Denisf88 Mar 30, 2026
5b98903
feat(editor): Support error workflows in workflow dependency (#27542)
CharlieKolb Mar 30, 2026
dd59922
refactor(core): Extract CommunityPackagesLifecycleService from contro…
sandra0503 Mar 30, 2026
6f1e0c2
feat(editor): Make AI builder test data opt-in via follow-up actions …
JoseBra Mar 30, 2026
bd0bc0c
fix: Track workflow archive/unarchive endpoints in API coverage manif…
ivov Mar 30, 2026
6314cd4
feat(ai-builder): Support dataset context and conversation history in…
burivuhster Mar 30, 2026
8ab168f
chore(core): Query executions using a single query intead of two (#27…
guillaumejacquart Mar 30, 2026
a259295
feat(core): Add configurable minimum password length via N8N_PASSWORD…
shortstacked Mar 30, 2026
98d6851
feat(editor): Group agent subnodes into multi-node setup cards (#27570)
scdekov Mar 30, 2026
706fc43
fix(editor): Avoid resource locator cache pollution (#27493)
CharlieKolb Mar 30, 2026
6d6a10c
fix(editor): Restore templates sidebar click tracking …
paulomation Mar 30, 2026
91d56d2
fix(editor): Show tooltip on dependency pill (#27545)
CharlieKolb Mar 30, 2026
af2af60
feat(core): Add POST /role-mapping-rule/:id/move endpoint for reorder…
BGZStephen Mar 30, 2026
21faa2e
fix(editor): Handle chat trigger waiting state in setup cards (#27682)
scdekov Mar 30, 2026
1963d97
ci: Disable chromatic, if not in main repo (#27747)
Matsuuu Mar 30, 2026
f54453a
refactor: Remove persistBuilderSessions feature flag (#27481)
burivuhster Mar 30, 2026
dbe8cd1
fix(editor): Use execution data instead of stale NDV state for chat t…
scdekov Mar 30, 2026
cf56b9a
fix(editor): Update mcp eligibility requirements in workflow settings…
MiloradFilipovic Mar 30, 2026
de02036
fix(core): Treat sub-node connections as non-blocking for partial exe…
scdekov Mar 30, 2026
4436e4b
fix(core): Fix `/healthz` endpoint when using `N8N_PATH` (#27665)
MiloradFilipovic Mar 30, 2026
d9f8f04
fix(core): Rename data table columns during source control pull (#27746)
ireneea Mar 30, 2026
fdf9857
ci: Parse pnpm ls with jq to prevent buffer overload (#27770)
Matsuuu Mar 30, 2026
189c104
ci: Prevent buffer overflow in other helper scripts (#27774)
Matsuuu Mar 30, 2026
769e28c
fix(core): Remaining VM test fixes — error propagation, proxy traps, …
despairblue Mar 30, 2026
f2ac7b5
ci: Pin provenance to version, not SHA (#27785)
Matsuuu Mar 30, 2026
d300568
:rocket: Release 2.15.0 (#27787)
n8n-assistant[bot] Mar 30, 2026
6b2da26
chore(sync): merge upstream/master into sync/upstream-260331
Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
62 changes: 62 additions & 0 deletions .agents/design-system-style-rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Design System Style Review Rules

Use these rules when reviewing CSS/SCSS/Vue style changes, especially in
`packages/frontend/` and `packages/frontend/@n8n/design-system/`.

## 1) Token source priority

Prefer this order when choosing visual values:

1. Semantic tokens from
`packages/frontend/@n8n/design-system/src/css/_tokens.scss`
2. Primitives from
`packages/frontend/@n8n/design-system/src/css/_primitives.scss`
3. Hard-coded values only when no suitable token exists

If no token exists, request a short rationale in the PR.

## 2) Hard-coded visual values

Flag hard-coded visual values and suggest token alternatives. This includes:

- Colors (`#fff`, `rgb()`, `hsl()`, `oklch()`)
- Spacing and sizing (`px`, `rem`, numeric layout constants in styles)
- Radius, border widths/styles, and shadows
- Typography values (font size, weight, line-height)
- Motion values (durations and easing like `cubic-bezier(...)`)

Severity: strong warning (expected migration to tokens/primitives when possible).

## 3) Legacy token usage

In `_tokens.scss`, the compatibility section labeled
"Legacy tokens (kept for compatibility)" is considered legacy usage.

When new or modified code uses these legacy token families, flag it as a
migration opportunity and recommend semantic token usage where available.

Severity: strong warning (discourage new usage, allow compatibility paths).

## 4) Deprecated style and component surfaces

Flag new usage of deprecated/legacy style surfaces in design-system components,
for example:

- `Button.legacy.scss` and legacy button override classes
- Legacy button variants/types (for example `highlight`, `highlight-fill`)
- Legacy component variants that exist for compatibility (for example legacy
tabs variant)

Severity: strong warning (prefer modern semantic variants/components).

## 5) Token substitution changes

If a PR changes one token reference to another (for example
`--text-color` -> `--text-color--subtle`), flag it as a soft warning.

Ask for intent in the PR description/comment:

- Intentional design adjustment, or
- Potential accidental visual regression

Do not treat token substitution as a hard failure by default.
13 changes: 10 additions & 3 deletions .claude/commands/n8n-plan.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
description: Plan n8n Linear ticket implementation
argument-hint: [PAY-XXXX | DEV-XXXX | ENG-XXXX]
allowed-tools: Task
allowed-tools: Task, Agent, Read, Glob, Grep, Write, Bash
---

Launch a Plan agent (built-in) to create an implementation plan for Linear issue $ARGUMENTS.
Launch a Plan agent (built-in) to research and design an implementation plan for Linear issue $ARGUMENTS.

The agent should:
1. Fetch and analyze the Linear ticket using Linear MCP
Expand All @@ -15,4 +15,11 @@ The agent should:

Apply n8n architectural patterns (monorepo structure, TypeScript standards, Vue 3 Composition API, Controller-Service-Repository, etc.).

Return a detailed, actionable plan ready for implementation.
The agent should return the full plan as text (it cannot write files). After receiving the result, save it to `.claude/plans/<TICKET-ID>.md` (e.g. `.claude/plans/PAY-1234.md`). Create the directory if needed. This directory is gitignored.

The plan file should contain:
- The ticket title and link
- A summary of the ticket
- The full implementation plan
- Testing strategy
- Risks and open questions
8 changes: 0 additions & 8 deletions .claude/mcp.json

This file was deleted.

12 changes: 12 additions & 0 deletions .claude/plugins/n8n/.claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "n8n",
"owner": {
"name": "n8n"
},
"plugins": [
{
"name": "n8n",
"source": "./"
}
]
}
4 changes: 4 additions & 0 deletions .claude/plugins/n8n/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "n8n",
"description": "n8n Claude Code plugin — shared skills, commands, and agents for n8n development"
}
67 changes: 67 additions & 0 deletions .claude/plugins/n8n/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# n8n Claude Code Plugin

Shared skills, commands, and agents for n8n development.

## Skills

### `n8n:setup-mcps`

Configures commonly used MCP servers for n8n engineers.

**Usage:**
```
/n8n:setup-mcps
```

**What it does:**
1. Checks which MCPs are already configured (matches by URL, not name)
2. Presents a multi-select menu of available MCPs (Linear, Notion, Context7, Figma)
3. For each selected MCP, asks which scope to install in:
- **user** (recommended) — available across all projects
- **local** — only in this project (`settings.local.json`)
4. Installs using official recommended commands

**Note:** Project scope is intentionally not offered since `.claude/settings.json` is tracked in git.

## Design Decisions

### Why a plugin instead of standalone skills?

To get the `n8n:` namespace prefix for all n8n-specific skills, avoiding name
collisions with built-in or personal skills. Claude Code only supports
colon-namespaced skills (`n8n:setup-mcps`) through the plugin system —
standalone `.claude/skills/` entries cannot be namespaced. This also provides a
home for future n8n skills, commands, and agents under the same `n8n:` prefix.

### Why only user and local scope (no project scope)?

Project scope writes MCP config to `.claude/settings.json`, which is tracked in
git. Since MCP credentials are personal (OAuth tokens, API keys), they should
not end up in version control. User scope makes MCPs available across all
projects; local scope (`settings.local.json`) keeps them project-specific but
gitignored.

### Why ask scope per MCP instead of once for all?

Engineers may want different scopes for different MCPs. For example, Context7
and Figma are useful across all projects (user scope), while Linear or Notion
might only be needed for this project (local scope).

## Plugin Structure

```
.claude/plugins/n8n/
├── .claude-plugin/
│ ├── marketplace.json # Marketplace manifest
│ └── plugin.json # Plugin identity
├── skills/
│ └── sample-skill/
│ └── SKILL.md
└── README.md
```

## Known Issues

- Plugin skill namespacing requires omitting the `name` field from SKILL.md
frontmatter due to a [Claude Code bug](https://github.com/anthropics/claude-code/issues/17271).
The directory name is used as the skill identifier instead.
75 changes: 75 additions & 0 deletions .claude/plugins/n8n/skills/setup-mcps/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
description: >-
Configure MCP servers for n8n development. Use when the user says /setup-mcps
or asks to set up MCP servers for n8n.
---

# MCP Setup for n8n Development

Configure commonly used MCP servers for n8n engineers.

## Instructions

1. First, check which MCPs are already configured by running:
```bash
claude mcp list
```
Parse the output and match by **URL/command**, not server name (users may have
used different names). The URLs to check for:
- Linear: `mcp.linear.app`
- Notion: `mcp.notion.com`
- Context7: `ctx7` or `context7-mcp`
- Figma: `mcp.figma.com`

Skip any MCP whose URL/command is already present (regardless of scope or name).

2. Present the MCP selection menu using `AskUserQuestion` with `multiSelect: true`.
Only show MCPs that are **not** already configured. If all are already configured,
inform the user and skip the menu.

| Option | Label | Description |
|--------|-------|-------------|
| Linear | `Linear` | Linear ticket management (HTTP, OAuth — opens browser to authenticate) |
| Notion | `Notion` | Notion workspace integration (HTTP, OAuth — opens browser to authenticate) |
| Context7 | `Context7` | Library documentation lookup (OAuth setup via CLI) |
| Figma | `Figma` | Figma design integration (HTTP, OAuth — opens browser to authenticate) |

3. Process each selected MCP **one at a time** in a loop. For each MCP:
a. Ask the user via `AskUserQuestion`: "Where should **{MCP name}** be installed?"
- **user** (default, recommended) — available in all projects
- **local** — only in this project
b. Run the install command for that MCP with the chosen scope
c. Then move to the next MCP and ask again

Do NOT batch the scope question — ask separately for each MCP.
Do NOT offer project scope — it modifies `.claude/settings.json` which is tracked in git.

Commands per MCP:

### Linear
```bash
claude mcp add -s {scope} linear-server --transport http https://mcp.linear.app/mcp
```
After adding, tell the user to run `/mcp` in their next session to authenticate.

### Notion
```bash
claude mcp add -s {scope} notion --transport http https://mcp.notion.com/mcp
```
After adding, tell the user to run `/mcp` in their next session to authenticate.

### Context7
Tell the user to run this command themselves (it handles auth via OAuth automatically):

```
npx ctx7 setup --claude
```

### Figma
```bash
claude mcp add -s {scope} figma --transport http https://mcp.figma.com/mcp
```
After adding, tell the user to run `/mcp` in their next session to authenticate.

5. After running the commands, confirm which MCPs were configured and note any
manual steps remaining (authentication via `/mcp`, Context7 setup).
15 changes: 14 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,20 @@
"Bash(pnpm test:*)",
"Bash(pnpm typecheck:*)",
"Bash(popd)",
"Bash(pushd:*)"
"Bash(pushd:*)",
"Bash(mkdir -p .claude/plans)",
"Write(.claude/plans/*)"
]
},
"extraKnownMarketplaces": {
"n8n": {
"source": {
"source": "directory",
"path": "./.claude/plugins/n8n"
}
}
},
"enabledPlugins": {
"n8n@n8n": true
}
}
Loading
Loading