Commit Graph

7353 Commits

Author SHA1 Message Date
Robin Braumann
83ffad6289
fix(agents): preserve queued turn context and attachments
Share immediate and queued draft configuration. Return execution IDs directly and consolidate turn completion. Test queue ownership and recovery on SQLite and PostgreSQL.
2026-09-15 12:43:12 +02:00
Robin Braumann
0afd257a02
Merge origin/master into agent-882-feature-message-queueing 2026-09-15 11:40:46 +02:00
Eugene
7efefc7347
feat(editor): Show background tasks in the agent preview (#38360) 2026-09-15 07:35:56 +00:00
Riqwan Thamir
cb55ecce7f
feat(core): Add option to disable mid-run observation for Instance AI (no-changelog) (#38664)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 07:32:34 +00:00
Ali Elkhateeb
89fe108b41
feat(core): Add a v3 migration report rule for preExecute execution creation (#38681)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 07:07:40 +00:00
yehorkardash
02ee221e2d
fix(core): Accept null headers from mcp registry api (#38614) 2026-09-15 07:02:33 +00:00
Arvin A
8bff5da5a2
feat: Add the AI preferences API and the Context settings UI (no-changelog) (#38213)
Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 18:56:45 +00:00
Robin Braumann
60478dbda1
fix(core): use shared transaction runner for queue admission
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 18:04:16 +02:00
Robin Braumann
38595748aa
fix: harden queued agent turn handling
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 17:38:05 +02:00
Pierantonio Cangianiello
bb9556b9d5
feat(engine): Add the data plane credentials helper that resolves credentials through the control plane (no-changelog) (#38443)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 15:13:43 +00:00
Mike Repeć
1cc5708f4d
feat(core): Add v3 breaking change rule for the storage directory rename (#38423)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 14:36:37 +00:00
Konstantin Tieber
c70e754d4c
feat(core): Include reportTime and lastSuccessfulReport of instance-reporting in module-settings endpoint (no-changelog) (#38458)
Co-authored-by: Sam Wooler <swooler592@gmail.com>
2026-09-14 14:29:30 +00:00
Sam Wooler
6307a5aaf1
refactor(API): Migrate DELETE /credentials/{credentialId} and PUT /credentials/{credentialId}/transfer to the decorator pattern (#38454)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 14:28:25 +00:00
Robin Braumann
3163f426ae
refactor: simplify agent thread claims
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:20:51 +02:00
Jaakko Husso
3392e3da66
feat(core): Warn in the migration report that chat hub goes away (#38613)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 14:10:14 +00:00
Tuukka Kantola
c979296d6c
feat(editor): Add paginated AI Assistant chat history (#38467)
Co-authored-by: r00gm <raul00gm@gmail.com>
2026-09-14 14:01:07 +00:00
Robin Braumann
afadc621b1
Merge remote-tracking branch 'origin/master' into agent-882-feature-message-queueing
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	packages/cli/src/modules/agents/__tests__/agent-execution-orchestrator.service.test.ts
#	packages/cli/src/modules/agents/agent-execution-orchestrator.service.ts
2026-09-14 15:59:48 +02:00
n8n-cat-bot[bot]
f886fff9fd
refactor(API): Migrate GET /tags/{id} to the decorator pattern (no-changelog) (#38468)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Uddish Verma <uddish.verma@n8n.io>
2026-09-14 13:52:37 +00:00
Robin Braumann
d50d02555b
feat(core): Queue all agent turns durably
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:52:10 +02:00
Mike Repeć
e05924fe7f
chore(core): Warn about internal task runner mode by default and drop the v3 migration rule (no-changelog) (#38581)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 13:50:40 +00:00
Jaakko Husso
7b10a16ca4
feat(core): Tell Instance AI when a verified draft is not the live workflow (#38289)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 13:47:19 +00:00
Charlie Kolb
737d66eeb3
build: Remove unused dependencies reported by knip (no-changelog) (#38591)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 13:22:42 +00:00
Sandra Zollner
7ec481ceaa
feat(core): Add selective promote for Git-based promotions (#38105)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: kgrhartlage <kai.hartlage@n8n.io>
2026-09-14 13:14:28 +00:00
Michael Drury
684b930fa6
feat(core): Improve Agent Builder evaluation and intent routing (#38329) 2026-09-14 13:13:51 +00:00
Svetoslav Dekov
28592bc7a9
feat(core): Inject AI preferences into the Instance AI opening turn (no-changelog) (#38206)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 12:49:40 +00:00
Yen Su
7db4dcf130
feat(core): Append the MCP registry attribution to standalone agent replies (#38584)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-14 12:33:40 +00:00
n8n-cat-bot[bot]
d58c7db803
refactor(API): Migrate POST /tags to the decorator pattern (no-changelog) (#38472)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Uddish Verma <uddish.verma@n8n.io>
2026-09-14 12:30:14 +00:00
Veljko Terzic
53cbe9700d
fix(core): Clear the scheduled task error message when a retried occurrence succeeds (no-changelog) (#38604) 2026-09-14 12:15:10 +00:00
James Gee
82d284f547
feat(core): Add project promotion change preview (no-changelog) (#38361)
Co-authored-by: Jan K. <jan.kalkan@n8n.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:13:36 +00:00
Andreas Fitzek
016ce8ba1b
feat(core): Add email change confirmation flow (no-changelog) (#37950)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-09-14 10:10:00 +00:00
Andreas Fitzek
11cc12043b
fix: Scope deployment key lookups by type (#38410)
Some checks failed
Build: Benchmark Image / build (push) Has been cancelled
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Has been cancelled
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Has been cancelled
CI: Master (Build, Test, Lint) / Unit tests (26.5.1) (push) Has been cancelled
CI: Master (Build, Test, Lint) / Lint (push) Has been cancelled
CI: Master (Build, Test, Lint) / Performance (push) Has been cancelled
CI: Master (Build, Test, Lint) / Verify single-instance deps (npm-install) (push) Has been cancelled
Util: Publish API Schema / Cloudflare Pages (push) Has been cancelled
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Has been cancelled
2026-09-14 09:52:36 +00:00
Raúl Gómez Morales
4890d04457
fix(core): Settle answered confirmation cards in the AI Assistant run-sync frame (#38328) 2026-09-14 08:50:42 +00:00
Sandra Zollner
29cea0b017
feat(core): Apply a selective package export to a Git working copy (no-changelog) (#37997)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: kgrhartlage <kai.hartlage@n8n.io>
2026-09-14 08:46:21 +00:00
Sam Wooler
e9860b34e1
refactor(API): Migrate POST /credentials and PATCH /credentials/{id} to the decorator pattern (no-changelog) (#37985) 2026-09-14 08:42:00 +00:00
Robin Braumann
91cb077a87
Merge branch 'master' into agent-882-feature-message-queueing 2026-09-14 10:13:05 +02:00
Robin Braumann
b50fbba9a3 test(core): Keep the claim-failure guard on the resume path
A resume whose claim fails must not run beforeResume or resume(). The
bridge queue-full test is named for what it proves: the notice for a
rejected admission.
2026-09-14 10:10:27 +02:00
Robin Braumann
f368633f13 refactor(core): Trim the agent turn queue tests
Fold sibling cases into one test where they share a fixture, drop cases
that other tests already prove, and let the repository test own the
unique index semantics. A /new that loses its session lease while it
waits now propagates the lease error instead of rewrapping it.
2026-09-14 09:49:10 +02:00
Pierantonio Cangianiello
68d567c063
feat(engine): Add the control plane route that resolves credentials for the data plane (no-changelog) (#38218)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 07:48:41 +00:00
Miguel Ángel Moreno
762b9a64de
feat(core): Warn MCP builders when the canvas is over the top-level ceiling (no-changelog) (#38305)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 07:33:56 +00:00
Robin Braumann
5e81e44f5e
refactor(core): Drop the distributed agent thread lease and the in-process resume guard
The local FIFO orders turns on one main and the claimed running row
fences turns across mains. The lease no longer adds a guarantee, so the
coordinator, the permit and claimTurn lose it. A repeated HITL click is
rejected once it owns the thread turn instead of by a per-process set.
2026-09-14 09:32:29 +02:00
Mike Repeć
f031805b5c
feat(core): Warn on deprecated N8N_DB_PING_TIMEOUT env var (#38555)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 07:29:45 +00:00
Guillaume Jacquart
1020dfd188
feat(core): Add node type policy telemetry events (no-changelog) (#38331)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 07:26:52 +00:00
Robin Braumann
eb5138c30a
fix(core): Answer a repeated action click instead of reporting a failure
A click that loses its callback or checkpoint to an earlier click now
throws a dedicated AgentActionAlreadyHandledError. The resume handler
answers it with the existing duplicate-action message instead of the
misconfiguration text.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 12:55:45 +02:00
Robin Braumann
fb65257ca5
refactor(core): Simplify turn lease loss and claim finalization
Abort the thread lease signal with a reason in the coordinator, so the
orchestrator no longer names lease loss itself. Merge the three
finalization methods of the execution repository into one with an
optional stale guard. Remove the wake service suspension pre-check; the
orchestrator keeps the post-admission check. Drop the unused conflict
error field and the one-field waiter interface.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 12:07:30 +02:00
Robin Braumann
ff94b893ac
test(core): drop guard-only and subsumed turn queue tests 2026-09-12 11:59:34 +02:00
Robin Braumann
0f3a5b388d
fix(core): re-check thread state after queue admission and release held resources on failure
Address review findings on the per-thread turn queue:

- Stop a queued turn when its thread lease is lost while it waits for a running row or a claim conflict.
- Re-validate the HITL checkpoint and the wake suspension check after admission; a stale click or wake no longer claims the thread.
- Consume the HITL callback key only inside the admitted resume so a full queue keeps the card usable.
- Cancel a queued /new reset when the session lock is lost.
- Finalize an abandoned execution only while its liveness timestamp stays stale.
- Release the runtime lease when chat message context preparation fails.
2026-09-12 11:38:37 +02:00
Robin Braumann
bdcc8da6bf
feat(core): Queue concurrent agent messages per thread
One turn per durable agent thread at a time, on every surface: preview chat,
published chat integrations, background wake, task runs, HITL resume.

- AgentThreadTurnCoordinator: bounded FIFO per thread and main (50 waiters),
  distributed agent-thread-turn lease, abort-aware waiting, queue-full error.
- agent_execution.activeThreadId claim with a unique partial index as the
  fail-closed fence; heartbeat drops the claim when the row is no longer ours.
- Chat SDK runs with concurrency 'concurrent'; the coordinator orders turns.
- Preview chat surfaces the queue-full error; channel threads post a notice.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 10:31:18 +02:00
Robin Braumann
072f4960f0
feat(core): Share integration threads across participants (#38461)
Some checks are pending
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (26.5.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) / Verify single-instance deps (npm-install) (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 05:14:33 +00:00
Rúben Castro
f7f92c7107
feat(API): Add node type policy instance and project endpoints (no-changelog) (#38239)
Some checks failed
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (26.5.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) / Verify single-instance deps (npm-install) (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 Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:57:33 +00:00
Sam Wooler
b9a7f0341a
fix(API): Return null variable values as empty string & fix newly imported source control variable values (#38488)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:26:32 +00:00