Commit Graph

22936 Commits

Author SHA1 Message Date
Mutasem Aldmour
2fddf0db2a
feat(editor): Show Browser Use as a tool chip in the agent config (no-changelog)
Browser Use is stored as a capability flag rather than an entry in `tools[]`,
so the Tools row rendered nothing for it - an agent could have Browser Use
enabled and still look like it had no tools at all.

It now appears as a chip alongside the other tools. Clicking it reopens the
tools picker, which is the only place it can be turned back off, since there
is no per-tool config to show.
2026-08-12 13:27:08 +02:00
Mutasem Aldmour
a8fb02b46f
fix(editor): Make Browser Use work end to end in the agent chat preview (no-changelog)
Running an agent against a real model surfaced two failures that unit tests
and typechecking could not.

Anthropic rejected the whole request with "tools.19.custom.input_schema.type:
Field required". Three browser tools (browser_scroll, browser_cookies,
browser_storage) are discriminated unions, which convert to a top-level
anyOf; providers require an object at the root and refuse anyOf/oneOf/allOf
there. Because the rejection is per-request rather than per-tool, one such
schema took the entire agent down. They are now flattened into a single
object - union of every branch's properties, requiring only what all branches
share, with the discriminator collapsed into an enum so no mode is hidden
from the model. The real zod schema still validates inside callTool, so a bad
combination returns a correctable error instead of breaking the conversation.
A tool whose schema cannot be expressed is dropped with a warning rather than
poisoning every request.

The suspension then reached the frontend but rendered nothing: the chat only
built interactive cards for approval-shaped payloads and chat_action, so the
run sat suspended with no way to resume. Adds a third interactive variant for
the connect card. The approval card was not reusable - it is hard-coded to
"Approval required" with Approve/Deny, which is the wrong question here.

One suspend payload now serves both surfaces: `components` is what a channel
turns into Block Kit, `type` and `setupUrl` are what the in-app chat matches
on. Neither minds the other's fields.

Verified in the preview against Claude Sonnet 4.5: the agent calls
browser_tab_open, the card renders with a working setup link, and clicking
"I've connected" resumes the run - which then reports no browser and explains
it instead of looping.
2026-08-12 12:56:32 +02:00
Mutasem Aldmour
6931b1bf69
feat(editor): Add Browser Use tool to the agents module (no-changelog)
Lets an agent drive the chatting user's own browser. When the agent reaches
for the browser and none is connected, the tool suspends and shows a card
with a link to a public setup page; once the extension connects, the run
resumes and the agent can open tabs, navigate, click, type and read pages.

Reuses the instance-ai Browser Use stack wholesale - the @n8n/mcp-browser
toolkit, the published Chrome extension and the existing CDP relay - rather
than adding a second one. The agents module borrows
InstanceAiBrowserSessionService and degrades by simply not registering the
tools when that module is off.

Two constraints shaped the design:

- The agent runtime is cached and shared across every end user of a
  published agent, so no session identity can be captured in the tool
  closure. It is resolved per call from ctx.persistence.resourceId, the same
  way the channel integration tools resolve their message context.
- The session key becomes a tmpdir() path segment inside a service that does
  not sanitise it, and resourceId is attacker-influenced on channel runs, so
  the key is hashed.

The setup page is deliberately unauthenticated: on a channel like Slack the
person being asked to connect may have no n8n account. The short-lived
setup token is the capability.

Excluded from the agent tool set: browser_connect/browser_disconnect (the
extension handshake owns session lifecycle) and the credential tools (they
resolve the session key against the user table).
2026-08-12 11:44:01 +02:00
Arvin A
45f243419d
test(core): Drive external workflow edits from the user proxy (#35736) 2026-08-12 08:42:20 +00:00
Michael Drury
e2e719c4ad
feat(ai-builder): Offer agent building in assistant greetings (#36073)
Some checks are pending
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
2026-08-12 08:22:30 +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
Riqwan Thamir
dfa841a040
feat(core): Skip update approval for workflows created in the same Instance AI session (#36054)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 06:59:16 +00:00
MHMD
a78ff67f59
fix(editor): Redirect to sign-in when the user's session expires (#35507) 2026-08-12 06:58:58 +00:00
n8n-assistant[bot]
4883173b65
chore: Update e2e impact map (#36094)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-12 03:56:34 +00:00
Alex Grozav
3b6e7d1ddb
build(editor): Add the @n8n/frontend-vite-config package (no-changelog) (#36043)
Co-authored-by: multica-agent <github@multica.ai>
2026-08-12 03:25:05 +00:00
n8n-cat-bot[bot]
666fde3ce3
chore: Bump fast-xml-builder 1.1.7 → 1.2.1 (minor) to clear 1 Aikido finding (#36090)
Some checks are pending
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
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 22:20:30 +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
Riqwan Thamir
560455faf1
fix(core): Accept Always allow scope on data-tables resume (#36070)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 18:11:46 +00:00
n8n-cat-bot[bot]
467221d9c6
chore: Bump undici 6.27.0 → 6.28.0 (minor) to clear 3 Aikido findings (#36078)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 18:10:30 +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
Declan Carroll
593a8b83d8
feat: Add HTTP agent broker to Codespaces agent sessions (no-changelog) (#36068)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 17:28:26 +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)
Some checks failed
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
n8n-cat-bot[bot]
3ae801ec1f
chore(ci): Fix silently broken container image pre-pull in DB tests and nightly coverage workflows (#36024)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 15:27:59 +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
Bernhard Wittmann
7352eb7def
chore: Bump Browser Use Chrome extension to 0.0.5 (#36060) 2026-08-11 15:06:26 +00: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
Alex Grozav
56a2d20095
fix(editor): Never autosave a read-only preview canvas (#36023) 2026-08-11 14:19:40 +00:00
Mutasem Aldmour
e4a414dc18
fix(editor): Name the AI Assistant browser tab after the conversation (#35958)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 14:13:21 +00:00
jabbson
6bd31e5e1e
feat(Discord Node): Add member moderation actions (#33486)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
2026-08-11 13:57:22 +00:00
Michael Drury
42130c5362
feat(editor): Add docked agent preview chat (#35773) 2026-08-11 13:41:50 +00:00
Raúl Gómez Morales
0f9bff0b14
fix(editor): Open OAuth sign-in popup before network calls and report blocked pop-ups clearly (#35948) 2026-08-11 13:29:09 +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
Alejandro Sanz
d7dcba5c80
feat(lmChatOpenRouter Node): Add provider routing options (#24822)
Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com>
2026-08-11 12:05:55 +00:00
oleg
a91e012de6
fix: Remove default model from one-script docker compose setup (#36034) 2026-08-11 12:04:27 +00:00
Declan Carroll
4f91ee02f5
fix: Make Codespaces secrets reach non-login shells and improve agent sessions (no-changelog) (#36042)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 11:49:44 +00:00
n8n-cat-bot[bot]
99d19cafec
chore: Remove unused Claude Task Runner workflow (#36036)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 11:24:46 +00:00
Iván Ovejero
42b1f2922f
test(core): Add engine M1 acceptance test suite (#35838) 2026-08-11 11:21:18 +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
Matsu
5cb6d2c565
ci: Remove Util: Claude task runner (#36035) 2026-08-11 11:02:01 +00:00
n8n-cat-bot[bot]
08052c19eb
fix: Handle exponential-notation numbers in smartDecimal (#35967)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 11:01:16 +00:00
mfsiega
4b807b7c49
feat(core): Accept fan-in across input slots in @n8n/engine (no-changelog) (#35819)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2026-08-11 10:55:31 +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
Charlie Kolb
6f2033f0e1
fix: Avoid false port-in-use error in get-n8n script on Windows/WSL (#36026)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 10:38:21 +00:00
Rob Hough
cce5401ed2
fix(editor): Remove misleading reset zoom control (#35843) 2026-08-11 10:22:36 +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
b00fe2708f
ci: Add node-pc base image with pointer-compressed Node.js (#35756) 2026-08-11 09:59:36 +00:00
Tomi Turtiainen
da314d302a
fix(core): Bound database pool teardown so connection recovery always completes (#36013) 2026-08-11 09:53:58 +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
Benjamin Schroth
acd4fdacc9
fix(core): Execute tools in the order the root requested them (#36009) 2026-08-11 09:37:02 +00:00