n8n published tag [email protected] on 30 September 2026 (2026-09-30T06:13:31Z). The release notes list one bug fix: pin cjs-module-lexer at 2.2.0. The tag is a stable release. On that tag the workspace package is n8n-monorepo at version 1.123.83.
The full release notes and downloads are on the GitHub release page. The notes point at the compare range from [email protected] to [email protected].
Override added to package.json ¶
Commit 76e467d is the change the notes cite. The author is n8n-cat-bot. The subject line is fix: Pin cjs-module-lexer 2.2.0 to address review finding.
The patch adds one exact version to the overrides object in the workspace package.json:
"cjs-module-lexer": "2.2.0"
That object already forces adm-zip to 0.6.1, proxy-addr to 2.0.8, @isaacs/brace-expansion to 5.0.1, ast-types to 0.16.1, and @azure/identity to 4.13.0.
cjs-module-lexer is absent from dependencies and from devDependencies. No workspace package declares it, so a direct version bump was not available. The pnpm override rewrites every transitive request onto 2.2.0.
pnpm-lock.yaml gets the same key under its top level overrides map. A package.json override paired with a stale lockfile still installs the copies the lockfile already resolved. The notes give no advisory identifier, no affected node name, and no config key.
Lockfile copies 1.2.2 and 1.4.3 ¶
Before the pin, pnpm-lock.yaml resolved two lexer versions. [email protected] depended on [email protected]. [email protected] and [email protected] depended on [email protected]. The import-in-the-middle snapshot lists the lexer next to [email protected], [email protected], and [email protected].
The patch deletes both old package entries and both empty snapshot stubs. One resolution remains:
[email protected]:
resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==}
Three snapshot edges now read cjs-module-lexer: 2.2.0: [email protected], [email protected], and [email protected]. The new snapshot is an empty dependency map. The lexer brings no nested packages of its own.
[email protected] declared 1.2.2. [email protected] declared 1.4.3. Both now parse with 2.2.0. The gain is one copy and one integrity hash. The release notes include no fixture diff for named export detection.
Upstream cjs-module-lexer 2.2.0, published 2 January 2026, replaces an eval used to decode string literals with a dedicated string scanner. The n8n commit does not quote that changelog. The pin is a dependency floor for a review finding.
Where the lexer is loaded ¶
[email protected] is the runtime consumer. This lockfile lists it under @opentelemetry/[email protected], @sentry/[email protected], and @sentry/[email protected]. Those packages patch require and ask the lexer for CommonJS export names while modules load. A worker with OpenTelemetry instrumentation or the Sentry Node SDK calls that parser. Workflow JSON, credential payloads, and node parameters stay as they are.
[email protected] and [email protected] are the test consumers. Jest uses the lexer when a test imports named exports from a CommonJS module. That path runs in CI for this repository. The queue worker and the webhook process leave jest-runtime unloaded. The patch adds no per package exception, so the override hits the test copies and the runtime hook together.
Upgrade notes ¶
The notes list no migration procedure. Install the tag so pnpm reads the override and the updated pnpm-lock.yaml, then restart the process. An image built from [email protected] keeps lexer 1.2.2 and 1.4.3 until that image is rebuilt. A process that is already up keeps the modules it loaded at startup.
The pin commit edits package.json and pnpm-lock.yaml. Workflow definitions and credential schemas stay valid.
After rollout, run one workflow that loads a CommonJS community node or a database driver with tracing or Sentry enabled. A lexer mismatch on that hook shows up as a missing export on a patched module, at startup or on the first require. The notes report no such failure on 2.2.0.
The release notes also link a Cubic review of the release pull request, pull 39941.
Where to get it ¶
- Release page: [email protected] on GitHub
- Repository: n8n on GitHub
- Tag:
[email protected]