Commit Graph

24791 Commits

Author SHA1 Message Date
konstantintieber
61d0e5b9d4
Update demo script 2026-09-25 11:19:02 +02:00
konstantintieber
2edf399a90
Prepare demo of backfilling feature 2026-09-25 11:07:03 +02:00
konstantintieber
0d8c38917a
refactor(core): Limit the backfill to the compaction threshold
A report no longer carries a day older than the day-to-week compaction
threshold minus one day: 179 days by default. No weekly row can be
inside that window, so the backfill no longer needs to find the newest
weekly row. getDailyDataStart() is removed. The first owed day now
comes from the existing getEarliestDataDate(). The limit replaces the
730-day cap.

The day of margin covers Postgres, which dates the compaction
threshold in the session's time zone rather than in UTC.

getEarliestDataDate() now parses the SQLite datetime string as UTC.
Before, it read it as local time, so the insights settings could show
the day before the first data on a server outside UTC.

LOCAL_VERIFICATION.md no longer says that the report reads insights as
the instance owner.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:05:29 +02:00
konstantintieber
ca818751ca
refactor(core): Return one start day from getDailyDataStart
getDailyDataStart() now returns one day: the oldest hourly or daily
row's day, but never before the Monday after the newest weekly row.
Without hourly or daily rows, it returns that Monday. Before, it
returned two bounds, and the gap after a delivered report used the
weekly bound alone.

A gap after a delivered report now also starts no earlier than the
first insights data. Days without executions before that data are
left out instead of sent as 0. No execution count is lost.

RETRIES.md also states that insights never stores a 0, so a day
without executions and a day without collected data look the same.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 10:55:47 +02:00
konstantintieber
c798951a9c
test(core): Cover daily execution totals in the insights service
getDailyExecutionTotals() was only run through the instance
reporting integration test, which seeds success rows only. The new
test checks that the method adds succeeded and failed executions of
workflows in different projects, leaves other insight types out, and
puts hourly rows on their own UTC day.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 08:54:59 +02:00
konstantintieber
ef49635a8a
docs(core): Clarify which days an instance report backfills
- README: Say that days before the first insights data are not sent,
  and that a day without data inside the sent range is 0. Limit the
  "insights disabled" note to days after the first data.
- LOCAL_VERIFICATION: Give the real bounds of the first report: the
  oldest hourly or daily row, the Monday after the newest weekly row,
  and the 730-day cap.
- RETRIES: Do not claim that a 413 is impossible. Say what happens
  when the receiver rejects a report for its size. State that the
  backfill does not apply the license's insights history limit.

The first commit on this branch also removed a link to a spec file
that does not exist.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 08:46:12 +02:00
konstantintieber
ce0f529669
fix(core): Find the newest weekly insights row without a bound
getDailyDataStart() no longer limits the weekly lookup to rows older
than the oldest hourly or daily row. That bound assumed that
compaction always leaves every weekly row older than every daily
row. An hourly row older than a weekly row hid that weekly row, so
the backfill read days whose totals sit in a weekly row.

The two reads no longer depend on each other, so they now run in
parallel.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 08:44:54 +02:00
konstantintieber
1003ff5503
fix(core): Read backfill days in one day-bucketed insights query
Instance reports now read their daily totals with a new
InsightsService.getDailyExecutionTotals() method. It always buckets
by UTC day, for any range length.

Before, the backfill read insights in chunks of 30 days through
getInsightsByTime(). That method picks the bucket size from the range
length in the server's local time zone. A 30-day chunk that crossed a
DST change was bucketed by week, which put a whole week's total on one
day. Each chunk also read one extra day.

The read is instance-wide, so the owner lookup and OwnershipService
are no longer needed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 08:41:34 +02:00
konstantintieber
12c913f2c5
feat(core): Backfill historic daily data when instance-reporting is enabled
The first report now carries every day with exact insights data,
not only yesterday. Skipped reports no longer lose days, and gaps
longer than 30 days are recovered. Insights is read in 30-day chunks
so that every day keeps its own value.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 08:02:25 +02:00
Dmitrii
d9c9d6e616
fix(core): Stop retrying instance reports the receiver rejects with 400 or 413 (#39502) 2026-09-24 15:23:14 +00:00
Mayank SIngh
a9bc9c57e7
fix(Mistral Cloud Node): Support citation reference chunks (#38952) 2026-09-24 15:13:31 +00:00
Ricardo Espinoza
d4999a2b2f
fix(editor): Prefill the server URL in the Mistral Vibe connector link (#39518) 2026-09-24 15:08:09 +00:00
Michael Drury
8a0d833080
fix(editor): Show Agent Builder activity on prompt submission (#39501) 2026-09-24 14:45:56 +00:00
Kai
2b891f17a5
feat(editor): Create credentials and variables from promotion bindings (#39342) 2026-09-24 14:36:58 +00:00
Robin Braumann
5ca15b3793
feat(core): Connect Preview and integrations to the agent queue (#39468) 2026-09-24 14:24:38 +00:00
Sandra Zollner
3ea51f9944
feat(core): Add project-scoped selective promote endpoint (no-changelog) (#38434)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Irénée <irenee.ajeneza@n8n.io>
2026-09-24 14:07:29 +00:00
n8n-cat-bot[bot]
7edb12df2d
chore: Share the binary-file node helper between execution contexts (#39473)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
2026-09-24 13:49:29 +00:00
Bernhard Wittmann
edf112cd92
feat: Guide the Microsoft Teams channel setup from n8n (no-changelog) (#38804)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 13:48:06 +00:00
José Braulio González Valido
f2a10ff3ed
docs(ai-builder): Describe dispatcher calibration and branch validation in the eval skills (no-changelog) (#39251)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 13:38:15 +00:00
n8n-cat-bot[bot]
fbb27a989c
chore: Extract the duplicated workflowPublish policy-enforcement (#37674)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 13:16:55 +00:00
n8n-cat-bot[bot]
64d20004c7
test: Add structural main-landmark check with regression tests (#37755)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 12:37:51 +00:00
Robin Braumann
6c592bdb33
feat(core): Add the durable agent message queue foundation (#39435) 2026-09-24 12:27:30 +00:00
Jaakko Husso
482ffb5306
fix(core): Run one node of a tool through the node that runs it (no-changelog) (#38759)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 12:26:45 +00:00
n8n-cat-bot[bot]
25eeb74fe9
chore: Migrate GET /api/v1/community-packages to PublicApiController (#39352)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Ali Elkhateeb <ali.elkhateeb@n8n.io>
2026-09-24 12:04:37 +00:00
MHMD
5e65197df6
feat(core): Block publishing a workflow the publisher cannot run (no-changelog) (#39425) 2026-09-24 12:01:43 +00:00
Svetoslav Dekov
772d420dc4
fix: Tweaks on codespace opencode setup (no-changelog) (#39488) 2026-09-24 11:55:54 +00:00
Riqwan Thamir
d13b63054b
ci: Create ephemeral sandboxes in Instance AI eval runs (no-changelog) (#39459)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 11:53:58 +00:00
Dawid Myslak
7af6741bf2
feat(editor): Suggest Gateway credits after credential errors (#38818)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 11:49:34 +00:00
Oğuz Eroğlu
dd4e7f62b2
feat(editor): Route assistant credit CTAs to top-up for UBB accounts (#39416) 2026-09-24 11:48:53 +00:00
Roman Makowiak
099e832028
feat(core): Return the limit on a refused preference write and show the refusal in the chat (no-changelog) (#39324)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 11:42:02 +00:00
Benjamin Schroth
3628dc1f04
fix(core): Close Chat integration runtime on shutdown and let followers send (#38958)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 11:06:12 +00:00
Robin Braumann
c829374f48
fix(core): Show content filtering errors in agent chat (no-changelog) (#39477) 2026-09-24 11:05:24 +00:00
Pierantonio Cangianiello
e5996eeaff
feat(engine): Support Buffer bodies in Engine 2.0 sendResponse (no-changelog) (#39483)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 11:03:12 +00:00
Lorent Lempereur
b94a3e5d16
fix(core): Run the telemetry pulse packet on the durable scheduler (no-changelog) (#39321) 2026-09-24 10:23:46 +00:00
Lorent Lempereur
f49b611321
refactor(core): Move the telemetry buffer flush to a system task (no-changelog) (#39309) 2026-09-24 10:23:45 +00:00
Lorent Lempereur
40b99348e8
refactor(core): Move the telemetry pulse packet to a system task (no-changelog) (#39304) 2026-09-24 10:23:44 +00:00
Rob Hough
9f89ecab7e
feat(editor): Add expanded N8nMarkdownEditor view (#39296)
Co-authored-by: Bob Hough <15361982+heymynameisrob@users.noreply.github.com>
Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
2026-09-24 10:18:23 +00:00
Jan
e648610eae
fix(editor): Show a cached role at once and align the personal space block in the instance role editor (#39394)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 10:07:01 +00:00
n8n-cat-bot[bot]
6aa0dda7ee
chore: Secret providers - Save alerts in modal are easy to miss (#39258)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
2026-09-24 09:46:28 +00:00
Ricardo Espinoza
b4106dcf63
feat(core): Save, update and undo a preference over MCP (no-changelog) (#39436)
Co-authored-by: Roman Makowiak <roman.makowiak@n8n.io>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 09:35:56 +00:00
n8n-cat-bot[bot]
a2370042f4
build: Limit Storybook typecheck to design-system stories (#39474)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
2026-09-24 09:33:58 +00:00
Svetoslav Dekov
dfeb93cdc7
fix: Connect cloud OpenCode sessions to the latest conversation (no-changelog) (#39449) 2026-09-24 09:28:34 +00:00
Anne Aguirre
3b3ac393ba
feat(editor): Add a write lock to the agent builder (#38758)
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 09:22:54 +00:00
James Martin
96735b20d9
feat(editor): Displays instance admins (and owner) in all project user lists (#39419)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 09:13:23 +00:00
mfsiega
fdd6f127c2
refactor(core): Prepare engine data plane for standalone execution (no-changelog) (#39439)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Tomi Turtiainen <10324676+tomi@users.noreply.github.com>
2026-09-24 09:11:16 +00:00
Michael Kret
4dbe8de82d
feat: Add Gateway credits option to Agent web search (#39169) 2026-09-24 09:06:10 +00:00
Tomi Turtiainen
d1e5637929
refactor(core): Extract webhook invocation (no-changelog) (#39452) 2026-09-24 08:53:14 +00:00
n8n-cat-bot[bot]
b096147894
fix: Align MCP workflow headings and remove outdated notice (#39463)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
2026-09-24 08:49:22 +00:00
Tomi Turtiainen
95c4070090
feat(core): Support the responseNode webhook response mode on engine 2.0 (no-changelog) (#39003) 2026-09-24 08:24:43 +00:00
oleg
67b70ea814
fix(Notion Node): Clarify simplified output for AI workflow generation (#39051) 2026-09-24 08:17:45 +00:00