Skip to content

feat(core): Send user agent for public api events (no-changelog) - #27217

Merged
RicardoE105 merged 1 commit into
masterfrom
ado-4973-send-user-agent-for-public-api-events
Mar 18, 2026
Merged

RicardoE105 merged 1 commit into
masterfrom
ado-4973-send-user-agent-for-public-api-events

Conversation

@dariacodes

Copy link
Copy Markdown
Contributor

Summary

We want to send a custom user agent when public API will be used from CLI, so we need to include it in telemetry.

Related Linear tickets, Github issues, and Community forum posts

Closes ADO-4973

Review / Merge checklist

  • 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)

@dariacodes
dariacodes requested a review from nikhilkuria March 18, 2026 11:25

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 4 files

Architecture diagram
sequenceDiagram
    participant Client as External Client / CLI
    participant API as PublicApiKeyService
    participant Bus as EventService
    participant Relay as TelemetryEventRelay
    participant Telemetry as TelemetryService

    Note over Client,Telemetry: Public API Telemetry Flow

    Client->>API: HTTP Request (Headers: User-Agent, API Key)
    
    API->>API: Authenticate API Key
    
    API->>Bus: NEW: emit('public-api-invoked', { ..., userAgent })
    Note right of API: Extracts 'user-agent' from req.headers

    Bus->>Relay: Handle 'public-api-invoked'
    
    Relay->>Relay: Map internal event to telemetry schema
    
    Relay->>Telemetry: CHANGED: track('User invoked API', { ..., user_agent })
    Note right of Relay: user_agent included in telemetry payload

    Telemetry-->>Relay: Ack
    API-->>Client: HTTP Response (200 OK)
Loading

@codecov

codecov Bot commented Mar 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@n8n-assistant n8n-assistant Bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Mar 18, 2026
@dariacodes
dariacodes requested a review from RicardoE105 March 18, 2026 12:45
@RicardoE105
RicardoE105 added this pull request to the merge queue Mar 18, 2026
Merged via the queue into master with commit d0e7ce0 Mar 18, 2026
84 of 86 checks passed
@RicardoE105
RicardoE105 deleted the ado-4973-send-user-agent-for-public-api-events branch March 18, 2026 13:21
@n8n-assistant

n8n-assistant Bot commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Got released with n8n@2.14.0

linktrend added a commit to linktrend/link-n8n that referenced this pull request Mar 31, 2026
* ci: Unify QA metrics pipeline to single webhook, format, and BigQuery table (no-changelog) (n8n-io#27111)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(core): Add chat hub settings to disable Responses API and change memory context window (n8n-io#26525)

* fix: Partial execution of Chat node and Chat tool (n8n-io#26334)

* fix(editor): Update StopManyExecs modal formatting, (n8n-io#26994)

* fix(editor): Show warning toast when executed node was not reached (n8n-io#27094)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: Update PR template with new backport labels (n8n-io#27123)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* feat(core): Wire builtin globals onto __data in VM expression isolate (n8n-io#26954)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(editor): Prevent clicks on pinned rows in data tables (n8n-io#26347)

* fix(core): Retry multi-main follower license check during startup (n8n-io#26990)

* chore(core): Add additional validation on resolver config and better error specs (n8n-io#27013)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(core): Preserve nested proxy/redirect shape in log streaming webhook (n8n-io#27109)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(editor): Command bar wasn't finding any workflows (n8n-io#26788)

* chore(editor): Add A/A exp to validate experimentation system (no-changelog) (n8n-io#26387)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Romeo Balta <7095569+romeobalta@users.noreply.github.com>

* fix(editor): Remove inconsistent scrim on node creator open (n8n-io#27086)

* fix(core): Emit `leader-takeover` on leadership mismatch in `checkLeader` (n8n-io#27126)

* chore: Add 1.x branch compatibility to workflow scripts (n8n-io#27153)

* refactor(core): Extract global axios config into axios-config.ts (no-changelog) (n8n-io#26852)

* fix(core): Handle external hook file paths on Windows (n8n-io#26983)

Co-authored-by: Danny Martini <danny@n8n.io>

* build: Pin `uuid` in `n8n-workflow` to catalog version (n8n-io#27129)

* docs(editor): Add shared design-system AI style review rules (no-changelog) (n8n-io#27008)

* fix(editor): Adjust external secrets input styling (n8n-io#27110)

* chore(editor): Differentiate canvas and chat hub events (n8n-io#27100)

* feat: Enable secure invite links (n8n-io#27107)

* fix(core): Add missing fields to public API workflow schema (n8n-io#27157)

* fix(editor): Add data to a data table by csv upload (n8n-io#26495)

Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: Fix issue with hideOnCloud not working for node display options (n8n-io#27124)

Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io>

* fix(Postgres Node): Expressions are not resolved in v1 (n8n-io#26496)

Co-authored-by: yehorkardash <yehor.kardash@n8n.io>

* ci: Schedule creation of minor and patch PRs (n8n-io#27199)

* ci: Create github releases from mjs scripts (n8n-io#27121)

* fix(ai-builder): Show feedback buttons in variant (no-changelog) (n8n-io#27201)

* refactor(editor): Migrate NDV panel components to `workflowDocumentStore` (no-changelog) (n8n-io#27158)

* refactor(editor): Migrate NDV settings and runData to `workflowDocumentStore` (no-changelog) (n8n-io#27140)

* fix(core): Add plain text body to password reset and notification emails (n8n-io#27125)

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>

* refactor(editor): Migrate shared editors and context menu to injectWorkflowDocumentStore (no-changelog) (n8n-io#27207)

* fix(core): Use published version for error workflow execution (n8n-io#27196)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(core): Apply execution redaction to real-time push events (no-changelog) (n8n-io#27102)

* feat(core): Send user agent for public api events (no-changelog) (n8n-io#27217)

* perf(core): Fix slow user mock in cli tests (no-changelog) (n8n-io#27205)

* ci: Strip backport information from commit labels on changelog (n8n-io#27203)

* feat: Add design principles section to AGENTS.md with the security guidelines (n8n-io#25997)

* feat(core): Add structured error responses for authorization failures (n8n-io#27170)

* feat(editor): Use server-side search for project sharing dropdowns (n8n-io#27093)

* refactor(editor): Re-organise and label design-system stories (no-changelog) (n8n-io#27179)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* feat(core): Batch public API telemetry events on pulse cycle (n8n-io#27226)

Co-authored-by: Daria Staferova <daria.staferova@n8n.io>

* fix(editor): Clear resource locator cache after URL redirect creation (n8n-io#27175)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(Execute Workflow Node): Fallback to latest draft if there no active sub-workflow version (n8n-io#27134)

* feat(editor): Migrate node composables to use `workflowDocumentStore` directly (no-changelog) (n8n-io#27159)

* refactor(editor): Extract workflow document connections facade composable (no-changelog) (n8n-io#27221)

Co-authored-by: r00gm <raul00gm@gmail.com>

* feat(core): Add filtering parameters to get_execution MCP tool (n8n-io#27192)

* fix(editor): Fix markdown list item wrapping in chat messages (no-changelog) (n8n-io#27082)

* feat(core): Add search_projects, search_folders MCP tools and folderId to create_workflow (n8n-io#27248)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(core): Stop auto applying credentials for updated MCP workflows (n8n-io#27258)

* fix(Jira Node): Add continueOnFail support for all operations (n8n-io#27108)

* refactor(editor): Migrate execution and logs composables to `workflowDocumentStore` (no-changelog) (n8n-io#27162)

* feat(editor): Display workflow, credential and data table dependencies (n8n-io#26912)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* feat(editor): Add history version info to execution page (n8n-io#26768)

* fix(core): Allow expressions in tool default values on chat hub tools (n8n-io#27167)

* fix(editor): Remove toast bottom offset when AI chat panel is open (n8n-io#27132)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* ci: Propagate dependency bumps transitively (n8n-io#27270)

* refactor(editor): Migrate canvas operations to `workflowDocumentStore` (no-changelog) (n8n-io#26947)

* refactor(editor): Migrate NDV stores and views to `workflowDocumentStore` (no-changelog) (n8n-io#27138)

* feat: Add new execution filter by workflow version (n8n-io#26904)

* fix(Anthropic Node): Update credential test to use available model (n8n-io#27234)

* feat(core): Add project context to execution log metadata (n8n-io#27169)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* feat(core): Introduce expression-based role resolver for SSO claim mapping (no-changelog) (n8n-io#27240)

* refactor(editor): Migrate integrations, evaluation, and experiments to `workflowDocumentStore` (no-changelog) (n8n-io#27163)

* fix: Fix credential displayNames with missing spaces (n8n-io#27259)

* fix(core): Move OIDC SSO provisioning outside user creation transaction (n8n-io#27279)

* feat(core): Add node that allows checking dynamic credentials inside node (n8n-io#27165)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(editor): Unify input component background surfaces (n8n-io#27237)

* feat(core): Always expose mcp sdk reference as a tool (no-changelog) (n8n-io#27271)

* docs: Add .env.local.example template and dotenvx for local dev setup (no-changelog) (n8n-io#27241)

* feat(API): Add GET /api/v1/discover endpoint for capability discovery (n8n-io#27014)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(editor): Fix tooltip on credits counter info icon (n8n-io#27244)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(core): Fix unhandled rejection in task broker on runner disconnect (n8n-io#27278)

* feat(editor): AI workflow builder setup wizard (n8n-io#26832)

Co-authored-by: Charlie Kolb <charlie@n8n.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(Perplexity Node): Update Perplexity node for full API coverage (n8n-io#26970)

Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com>

* feat: Add publish workflow to node-cli (n8n-io#27288)

* test: fix scope-lockdown violations in page objects (n8n-io#27326)

* ci: Prevent new version patches, if only content is ci changes (n8n-io#27329)

* fix(editor): Properly align line after bullet point in Sticky markdown (n8n-io#27231)

* chore: Bump @langchain/core to latest (n8n-io#27252)

* fix(editor): Properly align line after bullet point in Sticky markdown (n8n-io#27231)

* feat: Add `@n8n/cli`: a client CLI to manage n8n from the terminal (n8n-io#26943)

Co-authored-by: Daria Staferova <daria.staferova@n8n.io>
Co-authored-by: Nikhil Kuriakose <nikhil.kuriakose@n8n.io>

* fix(editor): Improve colorings update logic in resolvableHighlighter … (n8n-io#27331)

* fix(editor): Fix workflow tag filtering excluding workflows inside folders (n8n-io#27333)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(HTTP Request Node): Fail on non-2xx status codes during pagination with "other" completion (n8n-io#27352)

* perf(core): Make webhook cache writes non-blocking (n8n-io#27360)

* feat(editor): Pass telemetry source for ai workflow builder executions from setup (no-changelog) (n8n-io#27358)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(core): Fix an issue with workflow execution status (n8n-io#27349)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(Extract from File Node): Skip empty lines in CSV parsing to prevent errors (n8n-io#26511)

Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>

* feat(databricks Node): Add basic databricks node (n8n-io#27004)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(Microsoft Agent 365 Trigger Node): Mcp tools logs (n8n-io#27215)

* fix(core): Allow expressions in OAuth credential URL fields (n8n-io#27354)

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>

* fix(editor):  Fix type mismatch (n8n-io#27324)

* fix(editor): Support per-corner border radius in N8nInput (n8n-io#27321)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix(editor): Fix stop button size mismatch in split-trigger mode (n8n-io#27328)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Restore animation duration units for design system dialogs (n8n-io#27320)

* chore: Add create-issue skill for Linear tickets and GitHub issues (n8n-io#27285)

* fix(core): Force full execution data fetching for evaluation test runs (n8n-io#27335)

* chore: Update ssh2-sftp-client to 12.1.0 (n8n-io#27210)

* fix(AWS Bedrock Chat Model Node): Extract region from modelName ARNs (n8n-io#26972)

* refactor(editor): Migrate canvas operations to workflowDocumentStore connections (no-changelog) (n8n-io#27280)

* refactor(editor): Migrate NDV settings to workflowDocumentStore connections (no-changelog) (n8n-io#27261)

* refactor(editor): Migrate NDV stores and views to `workflowDocumentStore` (no-changelog) (n8n-io#27281)

* fix(core): Fix IDOR in test-runs endpoint by consolidating access checks (n8n-io#27305)

* refactor(editor): Migrate workflow composables to workflowDocumentStore (connections) (no-changelog) (n8n-io#27263)

* feat(core): Add signing key and certificate fields to SAML preferences with encryption and validation (n8n-io#27316)

* fix(core): Assign webhook ID to API-created webhook nodes (n8n-io#27161)

* feat(core): Add signature validation for waiting webhooks and forms (n8n-io#24159)

Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>

* feat(core): Remove license check for API key scopes (n8n-io#27306)

Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(editor): Sort loop node outputs by execution order in setup panel (n8n-io#27418)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(ai-builder): Include langsmith threadId on traces in code-builder (no-changelog) (n8n-io#27424)

* fix(AI Agent Node): Extract tool name correctly for MCP tool calls (n8n-io#27345)

* fix(core): Send client_id and client_secret in body for OAuth2 PKCE flow (n8n-io#27366)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(core): Add lint rules for missing node and credential icons (n8n-io#27340)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(Gmail Node): Update draft resource hint (n8n-io#27435)

* fix(core): Confirm messages immediately when no destination is listening (n8n-io#27334)

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>

* feat(core): Introduce CredentialDependency entity to track credential dependencies (n8n-io#27151)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Irénée <irenee.ajeneza@n8n.io>

* docs: Add security fix hygiene guidelines for public artifacts (n8n-io#27441)

* refactor(editor): Migrate AI assistant stores to workflowDocumentStore (no-changelog) (n8n-io#26713)

* fix(editor): Node references in expressions not updated when the renamed node has quotes (n8n-io#27371)

* fix(editor): Add inner content padding to Popover stories (no-changelog) (n8n-io#27430)

* fix(core): Disable dynamic banners when diagnostics are disabled (n8n-io#26741)

* fix(core): VM test Group G — RCE prevention & expression fixture fixes (n8n-io#27178)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(editor): Prevent toggle animation on Security & Policies page load (n8n-io#27350)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(editor): Show redacted state in execution viewer with reveal flow (n8n-io#26543)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(core): Clean up resolver references on deletion (n8n-io#26524)

* ci: Modify immutable commit subject via spreading (n8n-io#27467)

* build: Add `import-x/no-extraneous-dependencies` lint rule to `n8n-workflow` (n8n-io#27155)

* refactor(editor): Migrate node composables to workflowDocumentStore (connections) (no-changelog) (n8n-io#27318)

* chore: Remove mariadb specific code paths (n8n-io#26996)

* fix(editor): Use new move-to-folder modal in canvas header (n8n-io#27091)

* refactor(core): Extract axios utility helpers into axios-utils (n8n-io#27022)

* chore: Lock @types/node to a version in @n8n/cli (n8n-io#27473)

* 🚀 Release 2.14.0 (n8n-io#27479)

Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>

* ci: Ensure release candidates in release pipeline using the app token (n8n-io#27489)

* ci: Remove prerelease tag when promoting previous beta to latest (n8n-io#27490)

* feat: Add role mapping rule scopes (n8n-io#27476)

* feat(editor): Add canvas-only mode (n8n-io#27184)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: nik8n <niklas@n8n.io>

* fix(editor): Fix callout dismiss action in NDV (n8n-io#27496)

* fix(core): Add ownership check to MCP OAuth client deletion (n8n-io#27446)

* chore: Mark @n8n/cli as beta in package description (n8n-io#27500)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: Remove unneeded peer dependency (n8n-io#27501)

* chore: Add create-skill agent skill (n8n-io#27448)

* docs: Add README for @n8n/cli package (n8n-io#27510)

* fix(core): Correct `process.version` in expression sandbox (n8n-io#26550)

Co-authored-by: manusjs <manusjs@users.noreply.github.com>

* ci: Create stable release on GitHub promotion (n8n-io#27492)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: Bundle 2026-W9 (n8n-io#27532)

Co-authored-by: Matsu <matias.huhta@n8n.io>
Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com>
Co-authored-by: Charlie Kolb <charlie@n8n.io>
Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io>
Co-authored-by: Jaakko Husso <jaakko@n8n.io>
Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com>
Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com>
Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io>
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>

* fix(core): Add format validation to source control branch name (n8n-io#27518)

* refactor(editor): Migrate workflow composables to use `workflowDocumentStore` (no-changelog) (n8n-io#27265)

* fix(core): Include custom headers when loading OpenAI models (n8n-io#27534)

* fix(Structured Output Parser Node): Show descriptive error when structured output parser receives empty response (n8n-io#27443)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ci: Replace vars context with runner.name in composite action (n8n-io#27535)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Improve workflow diff design feedback (n8n-io#27494)

* fix(editor): Populate workflowDocumentStore in execution preview iframe (n8n-io#27540)

* fix(Basic LLM Chain Node): Fix abort signal handling (n8n-io#27520)

* refactor(editor): Migrate shared editors and setup panel connections to workflowDocumentStore (no-changelog) (n8n-io#27423)

* fix(editor): Clean up quick connect feature flag and fix first load (n8n-io#27286)

* fix(core): Fix execution history when flow includes wait node (n8n-io#27357)

* feat(core): Add RoleMappingRule entity and database tables (n8n-io#27440)

* fix(editor): Use direct store reference for connections in initializeWorkspace (n8n-io#27552)

* fix(core): Fix hard-coded path style in external storage configuration (n8n-io#27553)

* feat: PostHog feature flags resolution caching & group support (n8n-io#27525)

* feat(core): Workflow level otel (n8n-io#27528)

* feat(core): Add Slack signature identifier for dynamic credentials (no-changelog) (n8n-io#27484)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(core): Implement MemoryInstanceStorage for single-instance deployments (no-changelog) (n8n-io#27460)

* fix(API): Skip sharing license check when isGlobal value is unchanged (n8n-io#27567)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(core): Replace unbounded expression code cache with LRU (n8n-io#27477)

Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Correct navigation to evaluation tab (n8n-io#27509)

* fix: Implement raw query parameters field for Microsoft SQL node (n8n-io#26355)

* fix(Salesforce Node): Fix private key field stripping newlines in JWT credential (n8n-io#27517)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(core): Refresh OAuth2 tokens on 401 during MCP tool calls (n8n-io#26463)

Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com>

* ci: Run pnpm pack --dry-run on CI to catch workspace errors (n8n-io#27480)

* fix(core): Fix race condition when stopping jobs in queue mode (n8n-io#27211)

* chore: Add node-add-oauth skill (no-changelog) (n8n-io#27447)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(Wordpress Node): Add support for OAuth2 (n8n-io#27113)

* ci: Add 1.x sync and bundle branch automation for n8n-private (n8n-io#27594)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: Type and order uniqueness (n8n-io#27600)

* feat(core): Add Slack signature extractor hook for dynamic credentials (no-changelog) (n8n-io#27485)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(core): Resolve $().item expressions in partial executions (n8n-io#27338)

* feat: Add @n8n/agents package (n8n-io#27560)

* ci: Don't error on release candidate cleanup when branch is missing (n8n-io#27602)

* ci: Use track-specific npm dist-tags on publish (n8n-io#27598)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: Add security publish fix workflow for 1.x branch (n8n-io#27604)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: Detect new unpublished packages after merge and add manual publish workflow (n8n-io#27611)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Fix `/diff` route loading in demo mode (n8n-io#27610)

* feat: POST / PATCH /role-mapping-rule endpoints (n8n-io#27569)

* fix(Microsoft Outlook Trigger Node): Wrap folder filter in parentheses to ensure correct OData operator precedence (n8n-io#27605)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: Fix issue with multi line string handling (n8n-io#27176)

* chore: Add n8n Claude Code plugin with setup-mcps skill (n8n-io#27589)

* perf(core): Optimize execution deletions for throughput (n8n-io#27336)

* feat(core): Add OTEL unhappy path handling and safe trace exporter (n8n-io#27568)

Co-authored-by: James Gee <1285296+geemanjs@users.noreply.github.com>

* feat(Zammad Node): Add support for updating tickets (n8n-io#16800)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>

* ci: Pin action to commit SHA and pass secrets via env vars (n8n-io#27622)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: Allow manual execution of release-schedule-patch-prs (n8n-io#27653)

* ci: Set initial npm publish to function with it's own token (n8n-io#27620)

* feat(core): Implement Test workflow MCP tool (n8n-io#27348)

* fix(editor): Fix empty project ID when creating resources using RLC (n8n-io#27544)

* feat: GET /role-mapping-rule endpoint (n8n-io#27609)

* feat(editor): Implement preview tag for MCP (no-changelog) (n8n-io#27630)

* fix(editor): Remove unused options from NDV settings for agent model nodes (n8n-io#27364)

* fix(editor): Truncate long workflow names in insights table (n8n-io#27631)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat: Environment var to disable forms pages sandboxing (n8n-io#27409)

* feat(core): Move id extraction logic into resolver (no-changelog) (n8n-io#27655)

* feat: DELETE /role-mapping-rule endpoint (n8n-io#27608)

* fix: Fix issue preventing community nodes re-installing when using a custom registry (n8n-io#26599)

* chore: Update n8n-plan skill to save plans and link them in PRs (no-changelog) (n8n-io#27495)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Csaba Tuncsik <csaba.tuncsik@gmail.com>

* feat(editor): Replace restore/changes UI with inline version cards (n8n-io#27522)

* feat(core): Add Slack credential resolver for dynamic credentials (no-changelog) (n8n-io#27486)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(core): Add public API endpoints for workflow archive and unarchive (n8n-io#27513)

* feat: Add normalization after create, update, delete (n8n-io#27669)

* chore: Update node popularity data (n8n-io#27400)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(core): Use toString() instead of type cast for password field check (n8n-io#27662)

* feat(editor): Support error workflows in workflow dependency (n8n-io#27542)

* refactor(core): Extract CommunityPackagesLifecycleService from controller (n8n-io#27636)

* feat(editor): Make AI builder test data opt-in via follow-up actions (no-changelog) (n8n-io#27425)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: Track workflow archive/unarchive endpoints in API coverage manifest (n8n-io#27738)

* feat(ai-builder): Support dataset context and conversation history in evaluations (no-changelog) (n8n-io#27618)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* chore(core): Query executions using a single query intead of two (n8n-io#27081)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* feat(core): Add configurable minimum password length via N8N_PASSWORD_MIN_LENGTH (n8n-io#26953)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(editor): Group agent subnodes into multi-node setup cards (n8n-io#27570)

Co-authored-by: Charlie Kolb <charlie@n8n.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(editor): Avoid resource locator cache pollution (n8n-io#27493)

* fix(editor): Restore templates sidebar click tracking                                                                                                                                   (n8n-io#27623)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Show tooltip on dependency pill (n8n-io#27545)

* feat(core): Add POST /role-mapping-rule/:id/move endpoint for reordering rules (n8n-io#27677)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(editor): Handle chat trigger waiting state in setup cards (n8n-io#27682)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ci: Disable chromatic, if not in main repo (n8n-io#27747)

* refactor: Remove persistBuilderSessions feature flag (n8n-io#27481)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(editor): Use execution data instead of stale NDV state for chat trigger check (n8n-io#27752)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(editor): Update mcp eligibility requirements in workflow settings (no-changelog) (n8n-io#27502)

* fix(core): Treat sub-node connections as non-blocking for partial execution root detection (n8n-io#27759)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(core): Fix `/healthz` endpoint when using `N8N_PATH` (n8n-io#27665)

* fix(core): Rename data table columns during source control pull (n8n-io#27746)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* ci: Parse pnpm ls with jq to prevent buffer overload (n8n-io#27770)

* ci: Prevent buffer overflow in other helper scripts (n8n-io#27774)

* fix(core): Remaining VM test fixes — error propagation, proxy traps, and cross-realm assertions (n8n-io#27541)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: Pin provenance to version, not SHA (n8n-io#27785)

* 🚀 Release 2.15.0 (n8n-io#27787)

Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>

---------

Co-authored-by: Declan Carroll <declan@n8n.io>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Jaakko Husso <jaakko@n8n.io>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Charlie Kolb <charlie@n8n.io>
Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io>
Co-authored-by: Matsu <huhta.matias@gmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
Co-authored-by: Tomi Turtiainen <10324676+tomi@users.noreply.github.com>
Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com>
Co-authored-by: Paul Issert <paul@n8n.io>
Co-authored-by: Romeo Balta <7095569+romeobalta@users.noreply.github.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Rob Hough <robhough180@gmail.com>
Co-authored-by: Stephen Wright <sjw948@gmail.com>
Co-authored-by: Daria <daria.staferova@n8n.io>
Co-authored-by: Nikhil Kuriakose <nikhilkuria@gmail.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io>
Co-authored-by: yehorkardash <yehor.kardash@n8n.io>
Co-authored-by: Benjamin Schroth <68321970+schrothbn@users.noreply.github.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Raúl Gómez Morales <raul00gm@gmail.com>
Co-authored-by: Andreas Fitzek <andreas.fitzek@n8n.io>
Co-authored-by: Albert Alises <albert.alises@gmail.com>
Co-authored-by: Alexander Gekov <40495748+alexander-gekov@users.noreply.github.com>
Co-authored-by: Eugene <eugene@n8n.io>
Co-authored-by: Claire <claire.knight@krider.co.uk>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: phyllis-noester <102315132+phyllis-noester@users.noreply.github.com>
Co-authored-by: José Braulio González Valido <josebragv@gmail.com>
Co-authored-by: Kesku <62210496+kesku@users.noreply.github.com>
Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com>
Co-authored-by: Garrit Franke <32395585+garritfra@users.noreply.github.com>
Co-authored-by: Jacob Lee <jacoblee93@gmail.com>
Co-authored-by: Nikhil Kuriakose <nikhil.kuriakose@n8n.io>
Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io>
Co-authored-by: José Braulio González Valido <jose.gonzalez@n8n.io>
Co-authored-by: Arvin A <51036481+DeveloperTheExplorer@users.noreply.github.com>
Co-authored-by: krisn0x <10799186+krisn0x@users.noreply.github.com>
Co-authored-by: Ali Elkhateeb <ali.elkhateeb@n8n.io>
Co-authored-by: Irénée <irenee.ajeneza@n8n.io>
Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com>
Co-authored-by: Pinar Kaya <35434040+pkaya89@users.noreply.github.com>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: n8n-assistant[bot] <100856346+n8n-assistant[bot]@users.noreply.github.com>
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
Co-authored-by: nik8n <niklas@n8n.io>
Co-authored-by: manusjs <g.mygenie@gmail.com>
Co-authored-by: manusjs <manusjs@users.noreply.github.com>
Co-authored-by: Matsu <matias.huhta@n8n.io>
Co-authored-by: Krystian Slowik <113608678+krystianslowik@users.noreply.github.com>
Co-authored-by: jeanpaul <jeanpaul@users.noreply.github.com>
Co-authored-by: Joco-95 <jonathan.codas@n8n.io>
Co-authored-by: James Gee <1285296+geemanjs@users.noreply.github.com>
Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com>
Co-authored-by: Ria Scholz <123465523+riascho@users.noreply.github.com>
Co-authored-by: Marc Littlemore <MarcL@users.noreply.github.com>
Co-authored-by: Csaba Tuncsik <csaba.tuncsik@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Denisf88 <35726765+Denisf88@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

2 participants