Uddish Verma
88675c07f9
test(API): Point the $ref resolution test at a route that still has refs
...
The test proved `RefParser` inlines nested `$ref`s, using `createWorkflow` as
the vehicle because `workflowCreate.yml` referenced `node.yml`. Once create
became a decorator route its schema is generated from Zod and holds no refs, so
the assertion passed without exercising anything.
It now uses `createDestination`, whose body is a `oneOf` over three files that
themselves reference more, and walks the resolved schema for any leftover
`$ref` instead of checking one hand-picked property.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 14:43:49 +01:00
Uddish Verma
09f06107a0
fix(API): Type the workflow settings on the create and update bodies
...
`workflowSettings.yml` set `additionalProperties: false` and typed every value,
so express-openapi-validator rejected an unknown setting, an out-of-enum value
or a wrongly typed one. The DTO used an untyped record, which accepted all
three.
Ports the 17 documented settings, including `binaryMode` and
`credentialResolverId` — both are listed in the old spec, so a request carrying
them is accepted and then stripped by the controller rather than rejected.
The generated fragments now match the old schema field for field.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 14:13:44 +01:00
Uddish Verma
7aa925c51b
Merge remote-tracking branch 'origin/master' into api-84-workflow-writes
...
# Conflicts:
# packages/cli/src/public-api/types.ts
# packages/cli/src/public-api/v1/controllers/workflows.public.controller.ts
# packages/cli/src/public-api/v1/handlers/workflows/spec/paths/workflows.yml
# packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts
2026-08-13 13:56:28 +01:00
Uddish Verma
65971b7794
refactor(API): Drop the WorkflowEntity import left unused in public API types
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:49:38 +01:00
Uddish Verma
1d36a8a6a6
fix(API): Return a request schema for decorator routes in /discover
...
`GET /discover?includeSchemas=true` returned no `requestSchema` for any
`@PublicApiController` route, because `buildDecoratorEndpoints` never set the
field. Only the express-openapi-validator routes got one, from the hand-written
spec.
Three endpoints are affected today: `POST /roles`, `POST /role-mapping-rules`
and `PUT /workflows/{id}/tags`.
The schema now comes from the route's own `@Body` DTO, converted through the
same generator that writes the committed spec fragments, so the two agree
without reading a file at request time.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:46:00 +01:00
Uddish Verma
e47b8d6891
test(API): Drop the shared ActiveWorkflowManager mock workaround
...
`executions.test.ts` now registers its own `InstanceSettings` mock before
`setupTestServer`, so the shared helper no longer needs to patch the already
constructed instance. Leaves the helper identical to master.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:44:58 +01:00
Uddish Verma
7d056e70f0
refactor(API): Drop the unused public API workflow request types
...
`WorkflowRequest.Update` and `WorkflowRequest.Delete` lost their last callers
when update and delete moved to the controller. `Get` stays, still used by
archive and unarchive.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:44:02 +01:00
Uddish Verma
fa7579f77a
fix(API): Reject unknown keys on the workflow create and update bodies
...
The hand-written specs set `additionalProperties: false` on both request
bodies, so express-openapi-validator rejected an unrecognised key with a 400.
`Z.class` strips instead, which silently accepted a client's typo.
`Z.class` now takes an optional `{ strict: true }`, applied to the two workflow
write DTOs. The generated fragments emit `additionalProperties: false` again.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:43:54 +01:00
Uddish Verma
464b6ffc11
fix(API): Load the shared relation before building the update response
...
`WorkflowService.update` re-fetches with only the `tags` and `activeVersion`
relations, so `shared` came back undefined and the response mapper threw on
`workflow.shared.map(...)`. The catch block turned that into a 400, failing
every `PUT /workflows/{id}` call.
Re-fetch through `findWorkflowForUser` for the response, as `getWorkflow` does.
This adds `shared` to the update response, which the legacy handler omitted.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 13:35:46 +01:00
Uddish Verma
03549c71df
Merge remote-tracking branch 'origin/master' into api-84-workflow-writes
...
# Conflicts:
# packages/cli/src/public-api/v1/controllers/workflows.public.controller.ts
# packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts
2026-08-13 13:33:11 +01:00
Uddish Verma
5b03945eb0
refactor(API): Migrate GET /workflows to the decorator pattern (no-changelog) ( #36015 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 12:28:12 +00:00
Michael Drury
598c1f3357
fix(editor): Improve agent error handoff to AI Assistant ( #36076 )
2026-08-13 11:55:33 +00:00
Ilfat Mindubaev
f9fd8a83e4
feat(Confluence Node): Add Confluence Cloud OAuth2 credential ( #35732 )
2026-08-13 11:54:01 +00:00
Michael Drury
5e2779e0be
fix(core): Return final responses from workflow agents ( #36127 )
2026-08-13 11:40:13 +00:00
Anne Aguirre
be1fde19f4
fix(ai-builder): Align HITL approval resume schemas with confirm envelope ( #36047 )
2026-08-13 11:06:24 +00:00
Uddish Verma
6ab3f5e83e
feat(API): Migrate workflow tags endpoints to decorator pattern ( #35829 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 10:44:28 +00:00
Riqwan Thamir
91ebeecb4e
feat(core): Improve Instance AI model experiments (no-changelog) ( #35034 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 10:15:03 +00:00
Charlie Kolb
5c618883b9
feat(core): Add env var to skip workflow history compaction on startup ( #36099 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 09:45:25 +00:00
Sam Wooler
40a0f2a016
feat(API): Add endpoint to create role-mapping rules ( #36032 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 09:42:15 +00:00
João Almeida
a74fbab2bf
feat(core): Auto-expose new workflows to MCP from settings via toggle ( #35828 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 09:29:07 +00:00
Ricardo Espinoza
b9496b2fa6
refactor(core): Consolidate the node search engine into @n8n/ai-utilities (no-changelog) ( #35546 )
2026-08-13 09:28:06 +00:00
Elias Meire
fb430aab05
feat(core): Add an inline Available tools card to connect MCP servers from the assistant chat ( #35332 )
2026-08-13 09:22:24 +00:00
Robin Braumann
5f9602b19e
feat(core): Enable Agent sandboxes through Instance AI setup ( #36056 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 07:10:02 +00:00
Kai
cbb5577053
feat(editor): Let users update review descriptions ( #36069 )
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (22.23.2) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Lint (push) Waiting to run
CI: Master (Build, Test, Lint) / Performance (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
2026-08-12 20:38:11 +00:00
Mike Repeć
1a12af601b
fix(core): Report the real activation mode for triggers activated via the publication outbox ( #36123 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 13:17:53 +00:00
Robin Braumann
01ce4490d0
feat(core): Add writable workspaces to agents ( #36033 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 12:24:33 +00:00
Sandra Zollner
64dcebb649
feat(core): Restrict workflow review decisions to assigned reviewers ( #36040 )
2026-08-12 12:10:11 +00:00
Uddish Verma
4e9838b6c4
Merge remote-tracking branch 'origin/master' into api-84-workflow-writes
CI: Python / Checks (push) Has been cancelled
2026-08-12 12:25:39 +01:00
Kai
d35bb3e980
feat(editor): Display authors on the review details view ( #35897 )
2026-08-12 11:17:13 +00:00
Yuliia Pominchuk
5bfcde593d
feat(core): Make n8n User Auth (OAuth2) generally available ( #35900 )
2026-08-12 11:12:46 +00:00
Jan Kalkan
90b201e47b
feat(core): Add comments to the workflow review activity feed (no-changelog) ( #35792 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 09:36:55 +00:00
Kai
12c44790c0
feat: Require a reviewer when creating a workflow review request (no-changelog) ( #35932 )
2026-08-12 07:42:31 +00:00
Svetoslav Dekov
e4f0c33584
fix(core): Detect node settings changes when comparing workflow versions ( #36066 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 07:22:02 +00:00
Emilia
5ac6606e81
test(core): Add durable scheduler poll cursors e2e tests (no-changelog) ( #35343 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Lorent Lempereur <lorent.lempereur@n8n.io>
2026-08-11 20:36:24 +00:00
Emilia
a9787fcd6f
feat(core): Commit a poll trigger's cursor and its execution in one transaction (no-changelog) ( #35295 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Lorent Lempereur <lorent.lempereur@n8n.io>
2026-08-11 17:59:29 +00:00
Emilia
93ff542e92
feat(core): Add poller_state table for durable poll trigger cursors (no-changelog) ( #35128 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Lorent Lempereur <lorent.lempereur@n8n.io>
2026-08-11 16:31:00 +00:00
Guillaume Jacquart
a447ac422e
fix(core): Keep resolving end-user credentials after a trigger stops listening ( #35973 )
...
Build: Benchmark Image / build (push) Waiting to run
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (22.23.2) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Lint (push) Waiting to run
CI: Master (Build, Test, Lint) / Performance (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
Util: Publish API Schema / Cloudflare Pages (push) Has been cancelled
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 15:53:54 +00:00
Michael Drury
a723e791f1
fix(core): Improve agent builder skill and channel handling ( #35980 )
2026-08-11 15:35:53 +00:00
Guillaume Jacquart
ee03e023d2
fix(editor): Show the connected provider account, not the n8n account email ( #35553 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 15:25:52 +00:00
Uddish Verma
6d32edbc0d
Merge remote-tracking branch 'origin/master' into api-84-workflow-writes
2026-08-11 16:23:54 +01:00
Jan Kalkan
e65580bf10
feat(core): Add the workflow review activity feed (no-changelog) ( #35791 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 14:20:01 +00:00
Jaakko Husso
cc5f1cb37f
feat(core): Add activation-capped AI Assistant trial variant (no-changelog) ( #35994 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 12:46:16 +00:00
Jan Kalkan
41d54e77f1
feat(core): Add workflow review activity log tables and migration (no-changelog) ( #35517 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 12:25:46 +00:00
Robin Braumann
6a30736841
feat(core): Add n8n Sandbox support to Agent Knowledge ( #35811 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 11:18:19 +00:00
Emilia
729c9b46e3
test(cli): Remove clock race from flaky scheduled-task re-claim test ( #36031 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 10:48:57 +00:00
Tomi Turtiainen
fd67bf8b78
fix(core): Crash enqueued executions with unreadable data ( #36010 )
2026-08-11 10:14:57 +00:00
Ragnar
e7fa25217e
feat: Hide n8n-connect usage when aiGatewayCloudUbb is enabled ( #35978 )
2026-08-11 10:13:43 +00:00
Csaba Tuncsik
88efdb975e
fix(core): Resolve Custom API Call support through inherited credential types ( #35820 )
2026-08-11 10:04:41 +00:00
Iván Ovejero
4afbd16dc7
ci: Run DB tests against the full supported Postgres range ( #35960 )
2026-08-11 09:49:07 +00:00
Arvin A
a3fefb2572
feat(editor): Add the eval review view with ratings and edit capture (no-changelog) ( #35747 )
2026-08-11 09:32:22 +00:00