Commit Graph

22943 Commits

Author SHA1 Message Date
Jaakko Husso
8ac603d214
feat(editor): Label the AI logs tool in the assistant timeline (no-changelog)
Without an i18n entry the timeline fell through to the raw tool id and showed
"logs" next to properly named steps like "Checking executions". Adds the tool
label plus one per action, following the executions tool's pattern, and a
terminal icon instead of the generic wrench fallback.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 16:53:32 +03:00
Jaakko Husso
81c2fd7911
fix(editor): Make operator console level colours actually visible (no-changelog)
The semantic --text-color--* tokens are tuned for text on a tinted callout
background, so in dark theme --text-color--danger resolves to --color--red-50
at 97% lightness — correct on a red banner, invisible on a neutral log surface.

Switches to palette primitives at terminal strength and matches the dev console
throughout: error red, warn yellow, info green, debug blue. Shades are chosen
per theme so yellow stays legible on a light surface too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 16:37:20 +03:00
Jaakko Husso
5597bb0106
feat(editor): Tint operator console messages by log level (no-changelog)
Colours each message by its level the way winston's colorize({ all: true })
paints the dev-mode console, so a wall of debug reads as background noise and a
failure stands out without being hunted for. `info` keeps the default body
colour: it is the baseline level and the most read, and winston's green would
collide with the success meaning it carries elsewhere in the product.

Also left-aligns the page header with the log panel. The settings header caps
itself at the content max-width and is centred by the layout, which on a
full-width page leaves a narrow heading floating over a much wider panel.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 16:22:10 +03:00
Jaakko Husso
460a863cc1
test(core): Cover logs tool registration gating (no-changelog)
Registration was presence-gated in two places with nothing asserting it, so
neither the module-off case nor the always-loaded classification was pinned.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 16:04:41 +03:00
Jaakko Husso
c647357fe4
feat(core): Point the AI logs tool at the whole deployment (no-changelog)
Routes the tool's search through the distributed grep in queue mode. Reading
only the local composite meant the agent saw this main's stream window and its
own n8n.log — so an execution that failed on a worker was invisible, which is
the question the tool exists to answer. Non-responding hosts are passed through
to the model, since "nothing matched" and "nobody looked" are otherwise the
same empty result.

Addresses log context by timestamp instead of `seq`. `seq` counts lines within
one storage tier, so it could not address a record across the ring buffer, the
cross-host stream and the rotated files: context worked only for a live record
on a single main, and silently returned nothing elsewhere.

Promotes the tool to always-loaded. Registration is already gated on the module
supplying a port, so instances without it are unaffected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 15:53:10 +03:00
Jaakko Husso
05b8e97303
feat(editor): Close operator console frontend gaps (no-changelog)
Seeds the scope picker from GET /operator-console/meta, so it is useful before
any line arrives — LOG_SCOPES lives in @n8n/config, which the browser bundle
cannot import. Observed scopes are still merged in, so a scope newer than the
bundle stays selectable.

Derives the lease renewal interval from the TTL the server reports instead of
hardcoding it against a default the client cannot see, and tolerates a missing
response body rather than taking the tail down.

Adds a View logs action on execution detail that deep-links the console
filtered to that execution, gated on the module being enabled and the user
holding orchestration:read.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 15:10:00 +03:00
Jaakko Husso
8d4f2903f5
feat(core): Label log lines with the execution that produced them (no-changelog)
Wraps WorkflowRunner.run() and JobProcessor.processJob() in an execution
AsyncLocalStorage that Logger reads, so every line an execution emits carries
executionId and workflowId without each call site repeating them.

Explicit metadata still wins, so this only fills gaps — chiefly workflowId,
which many call sites omit even when they pass executionId, leaving the
console's deep link unbuildable. Stamped in Logger rather than in the capture
layer so the labels also reach n8n.log, which the history tier reads back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:29:25 +03:00
Jaakko Husso
31bdb0a83a
fix(core): Deliver operator console log batches to open consoles (no-changelog)
The live path was never wired: the lease armed cross-host producers, but
nothing subscribed the log source and pushed batches to the browser, so a
console only ever showed history fetched on load.

Adds LogConsumerService, which holds one subscription for the union of every
open console's filter and re-filters per session. Capture is suppressed during
delivery — Push logs each send, and those lines would otherwise be captured,
batched and delivered forever. Sessions that stop renewing are expired, so a
hard tab close cannot leave a fan-out running.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:13:18 +03:00
Jaakko Husso
7c95a9f7cc
feat(core): Wire up operator console end to end (no-changelog)
Adds the module entrypoint, REST controller, composite log source and the
Instance AI port adapter, and teaches all three sources to read backwards so a
console opens on the newest lines rather than the oldest.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 13:39:06 +03:00
Jaakko Husso
9422acac21
feat(core): Add operator console capture, fan-out and AI log tool (no-changelog)
Capture layer (winston transport + stdout/stderr tee behind a reentrancy
guard), ring buffer, rotated n8n.log history reader, Redis Stream fan-out with
a demand-driven lease, and the Instance AI logs tool with attested redaction.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 13:10:23 +03:00
Jaakko Husso
02c1737e09
feat(core): Add operator console log contract (no-changelog)
Shared types, config surface and the LogSource interface that the capture
layer, fan-out, console UI and AI tool all build against.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 12:38:37 +03: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