Skip to content

fix(core): Generate title once there's enough user context (no-changelog) (backport to release-candidate/2.18.x)#28789

Merged
Cadiac merged 1 commit into
release-candidate/2.18.xfrom
backport-28721-to-release-candidate/2.18.x
Apr 21, 2026
Merged

fix(core): Generate title once there's enough user context (no-changelog) (backport to release-candidate/2.18.x)#28789
Cadiac merged 1 commit into
release-candidate/2.18.xfrom
backport-28721-to-release-candidate/2.18.x

Conversation

@n8n-assistant
Copy link
Copy Markdown
Contributor

@n8n-assistant n8n-assistant Bot commented Apr 21, 2026

Description

Backport of #28721 to release-candidate/2.18.x.

Checklist for the author (@Cadiac) to go through.

  • Review the backport changes
  • Fix possible conflicts
  • Merge to target branch

After this PR has been merged, it will be picked up in the next patch release for release track.

Original description

Summary

Makes us generate the title only after we have a bit of context - so if user sends message "hey", the title isn't immediately generated, but then on the second message once a bit of user context exists the title generation happens.

This should make the titles a bit more accurate, and we can later tune what is considered a trivial message.

Related Linear tickets, Github issues, and Community forum posts

Review / Merge checklist

  • I have seen this code, I have run this code, and I take responsibility for this code.
  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with Backport to Beta, Backport to Stable, or Backport to v1 (if the PR is an urgent fix that needs to be backported)

@n8n-assistant n8n-assistant Bot added automation:backport core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Apr 21, 2026
@n8n-assistant n8n-assistant Bot requested a review from Cadiac April 21, 2026 10:50
@Cadiac Cadiac changed the title fix(core): Generate title once there's enough user context (backport to release-candidate/2.18.x) fix(core): Generate title once there's enough user context (no-changelog) (backport to release-candidate/2.18.x) Apr 21, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 21, 2026

Codecov Report

❌ Patch coverage is 16.66667% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...cli/src/modules/instance-ai/instance-ai.service.ts 0.00% 5 Missing ⚠️

📢 Thoughts on this report? Let us know!

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 21, 2026

Bundle Report

Bundle size has no change ✅

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

@github-actions
Copy link
Copy Markdown
Contributor

Instance AI Workflow Eval Results

8/8 built | 13/27 passed (48%)

Workflow Build Passed
Create a workflow that handles contact form submissions via a webhook. 4/5
Get all the Linear issues created in the last 2 weeks. Filter them for 3/5
Every day, get the posts made in the past day on 3 different Slack cha 3/5
Create a form that collects: name, email, company, and interest level 2/2
Every day, fetch all open GitHub issues from repository 'acme-corp/bac 0/2
Create a workflow that receives webhook notifications with a JSON body 0/3
Fetch the latest posts from the JSONPlaceholder API (GET https://jsonp 0/3
Every hour, check the current weather for London, New York, and Tokyo 1/2
Failure details

partial-action-failure [builder_issue]

The workflow crashed when the Telegram node returned an error (Bad Request: chat not found). Because all three action nodes (Auto-Reply Email, Telegram Team Notification, Log to Google Sheets) are con

multi-team-creator [builder_issue]

The checklist requires that Alice's AI issue (ISS-103, team 'AI') is excluded from the cross-team report because 'AI' is one of her teams. However, the Filter Cross-Team Issues node uses a simple sing

api-error [builder_issue]

The workflow crashed with 'Authorization failed - please check your credentials' when the Linear API returned an authentication error. There is no error handling branch (e.g., no error trigger, no try

channel-not-found [builder_issue]

The workflow does not handle the channel error gracefully. When 'Fetch #product' receives a 'channel_not_found' error response, the workflow crashes entirely with the error 'Slack error response: chan

insufficient-permissions [builder_issue]

The workflow crashed when 'Fetch #product' returned a 'not_in_channel' error. Because there is no error handling (no try/catch, no continueOnFail, no error branch), the error propagated and stopped th

happy-path [builder_issue]

The workflow failed to execute. The 'Split Issues' node (n8n-nodes-base.splitOut) has its 'Fields To Split Out' parameter left empty (fieldToSplitOut: ''), which is a required field. This caused the e

no-bugs [builder_issue]

The workflow failed to execute cleanly. The 'Split Issues' node has a missing required parameter 'Fields To Split Out' (fieldToSplitOut is empty string), causing the execution to fail with 'The workfl

high-priority [builder_issue]

The Switch node ('Route by Level') correctly evaluated the 'high' condition and output data on its first output, but the Teams - High Priority node DID NOT RUN. Looking at the connections JSON, 'Route

medium-priority [builder_issue]

The Switch node (Route by Level) correctly identifies 'medium' level and outputs to the medium branch (output index 1). However, the connections JSON shows that 'Route by Level' has "main": [] — it

low-priority [builder_issue]

The Route by Level switch node correctly identified the 'low' level and produced output on its low branch. However, the connections JSON shows that Route by Level has "main": [] — meaning none of

happy-path [{"results":[{"id":1,"pass":true,"reasoning":"The workflow executed without errors. All nodes ran successfully. The Split Posts node split the 10 posts, the Filter node removed the 3 posts with 'qui' in the title (ids 1, 5, 9: 'qui est esse', 'nesciunt quid non qui', 'qui dolorem eum facere eos'). The Build Summary Message node produced a message stating '7 posts remain' and lists 7 titles, none of which contain 'qui'. The Slack node posted to the 'api-digest' channel successfully."}]}]

The workflow executed without errors and the Slack message was posted to #api-digest. The filter correctly removed posts with 'qui' in the title (ids 1, 5, 9 were filtered out). However, the Split Pos

empty-response [builder_issue]

The workflow does not handle the empty API response gracefully. When Fetch Posts received an empty array [], it produced no output items. This caused the execution to stop entirely — Split Posts, Filt

all-filtered [builder_issue]

The Filter Out qui Titles node was supposed to filter OUT posts with 'qui' in their titles (keeping only those that do NOT contain 'qui'). All three mock posts contain 'qui' in their titles: 'qui est

happy-path [builder_issue]

The workflow executed without errors and all 3 Airtable logging calls succeeded (London: temp=18.5, humidity=72; New York: temp=32.1, humidity=65; Tokyo: temp=28.3, humidity=80), satisfying those part

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 21, 2026

Performance Comparison

Comparing currentlatest master14-day baseline

Idle baseline with Instance AI module loaded

Metric Current Latest Master Baseline (avg) vs Master vs Baseline Status
instance-ai-heap-used-baseline 187.22 MB 186.52 MB 186.43 MB (σ 0.26) +0.4% +0.4% 🔴
instance-ai-rss-baseline 346.52 MB 389.20 MB 366.52 MB (σ 22.66) -11.0% -5.5%

docker-stats

Metric Current Latest Master Baseline (avg) vs Master vs Baseline Status
docker-image-size-n8n 1269.76 MB 1269.76 MB 1273.60 MB (σ 10.49) +0.0% -0.3%
docker-image-size-runners 386.00 MB 386.00 MB 392.50 MB (σ 11.06) +0.0% -1.7%

Memory consumption baseline with starter plan resources

Metric Current Latest Master Baseline (avg) vs Master vs Baseline Status
memory-heap-used-baseline 115.40 MB 114.41 MB 114.45 MB (σ 0.27) +0.9% +0.8% 🔴
memory-rss-baseline 224.45 MB 278.98 MB 289.99 MB (σ 41.20) -19.5% -22.6% ⚠️
How to read this table
  • Current: This PR's value (or latest master if PR perf tests haven't run)
  • Latest Master: Most recent nightly master measurement
  • Baseline: Rolling 14-day average from master
  • vs Master: PR impact (current vs latest master)
  • vs Baseline: Drift from baseline (current vs rolling avg)
  • Status: ✅ within 1σ | ⚠️ 1-2σ | 🔴 >2σ regression

@Cadiac Cadiac merged commit fc8b015 into release-candidate/2.18.x Apr 21, 2026
95 of 97 checks passed
@Cadiac Cadiac deleted the backport-28721-to-release-candidate/2.18.x branch April 21, 2026 11:42
@n8n-assistant
Copy link
Copy Markdown
Contributor Author

n8n-assistant Bot commented Apr 22, 2026

Got released with [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation:backport core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team Released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant