Releases: nrwl/nx
Releases · nrwl/nx
21.6.11
22.7.0-beta.13
22.7.0-beta.13 (2026-04-16)
🚀 Features
- core: add json input type for selective JSON field hashing (#35248)
- core: update nx-set-shas usage to v5 (#34934)
- core: add NX_BAIL environment variable (#34711)
🩹 Fixes
- angular: preserve specific file paths in tsconfig when adding secondary entry point (#35254, #33051)
- angular: fall back to addUndefinedDefaults when addUndefinedObjectDefaults is unavailable (#35290)
- angular-rspack: normalize Windows path separators for i18n (#35252, #32864)
- angular-rspack: add fileReplacements to resolve.alias (#34197)
- angular-rspack: fixes issues with angular-rspack hmr (#35294, #35040)
- core: replace exec() with spawn() to prevent maxBuffer crash on large command output (#35256)
- core: inline daemon status check, drop subprocess workaround (#35273)
- core: don't cache project graph errors on daemon (#35088)
- core: cap TUI parallel slots by total task count (#35299)
- core: don't hang when workspace contains a named pipe (#35289)
- core: optimize warm cache performance for task execution (#35172, #31067)
- js: stop generating baseUrl in tsconfig, use ./ prefix for path mappings (#34965, #32958)
- js: suppress false swc-node/ts-node warning on Node 22.18+ (#35247, #32567)
- js: avoid full source scan in readTsConfigPaths (#35300)
- js: resolve project tsconfig for inferred tsc run-commands targets in dependency-checks (#35291)
- nextjs: align nx-dev build inputs and update plugin defaults (#35238)
- node: split package-manager exec command for VS Code launch.json (#35295, #35276)
- nx-dev: improve search ranking for reference pages (#35243, #1, #7, #2)
- nx-dev: seo improvements for nx.dev/docs (#35244)
- release: surface swallowed publish errors when stdout is not valid JSON (#35283, #34497)
- repo: resolve FreeBSD build OOM and disk exhaustion (#35309, #35231)
- testing: declare external tsconfig files as playwright e2e task inputs (#35287)
- vitest: add dependent task output files as inputs for vitest test targets (#35242)
- vitest: infer ancestor tsconfig files as test task inputs (#35241)
❤️ Thank You
- Caleb Ukle
- Claude Opus 4.6 (1M context)
- Craigory Coppola @AgentEnder
- dan-winters @dan-winters
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- jase @jase88
- Jason Jean @FrozenPandaz
- jaysoo @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nelson Dominguez @ekkolon
- Sai Asish Y @SAY-5
- Tomas Ptacek @faileon
22.7.0-beta.12
22.7.0-beta.12 (2026-04-10)
🚀 Features
- core: use CNW variant 1 cloud prompt in nx init (#35155)
- core: add source map annotations to nx show target (#35225)
- core: prompt for setup mode when running nx init in empty git directory (#35226)
🩹 Fixes
- angular: add storybook and playwright as implicit dependencies (#35224)
- core: support cross-file variable references in .env files (#34956, #34955)
- core: disable Yarn scripts for temp nx@latest installs (#35210)
- core: use fresh package manager cache for e2e tests (#35211)
- core: add missing inputs and sandbox exclusions for native tasks (#35212)
- core: prevent phantom connections and dead polling in plugin workers (#34823, #34388)
- core: ensure build tasks use copyReadme named input (#35217)
- core: add prettier config inputs to astro-docs format target (#35222)
- core: add vale-changed.mjs script to vale target inputs (d4c55d806a)
- core: add missing build inputs for angular-rspack example projects (fd0dff1078)
- core: add run-native-target script input to dotnet build-analyzer (#35221)
- core: overwrite inferred script target when nx prop defines executor or command (#35227)
- core: exclude populate-local-registry-storage from sandbox I/O checks (#35239)
- js: include npm overrides in generated lockfile (#35192, #34529)
- linter: remove custom eslint hasher (d64aeef5df)
- linter: infer extended tsconfig files as task inputs (#35190)
- linter: add missing inputs to eslint executor target defaults (#35236)
- misc: stream Framer proxy responses and add edge function timing (#35215)
- misc: bump axios to 1.15.0 for all packages (#35237)
- testing: add dependent .d.ts inputs for ts-jest without isolatedModules (#35231)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- FUASHI LOT-BILL
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
22.6.5
22.6.5 (2026-04-10)
🚀 Features
- core: allow generate command to skip project graph creation (#35170)
- core: use CNW variant 1 cloud prompt in nx init (#35155)
- core: prompt for setup mode when running nx init in empty git directory (#35226)
- misc: lock in CNW cloud prompt A/B winner and add new variants (#35154)
🩹 Fixes
- angular: add storybook and playwright as implicit dependencies (#35224)
- bundling: bump esbuild for new projects to a version compatible with vite 8 (#35132)
- core: clean up legacy .gemini/skills during configure-ai-agents (#35117)
- core: copy pnpm install configuration to generated package.json (#35016, #30240)
- core: display actual error message when plugin loading fails (#35138, #35137)
- core: bump axios to 1.13.5 to resolve CVE-2026-25639 (#35148, #35145)
- core: update and pin ejs to 5.0.1 (#35157)
- core: misc tui perf fixes (#35187)
- core: replace LGPL-licensed @ltd/j-toml with BSD-3-Clause smol-toml (#35188)
- core: kill discrete tasks and use tree-kill for batch cleanup on SIGINT (#35175)
- core: support cross-file variable references in .env files (#34956, #34955)
- core: disable Yarn scripts for temp nx@latest installs (#35210)
- core: use fresh package manager cache for e2e tests (#35211)
- core: prevent phantom connections and dead polling in plugin workers (#34823, #34388)
- core: add prettier config inputs to astro-docs format target (#35222)
- core: add vale-changed.mjs script to vale target inputs (41a71dd97d)
- core: add missing build inputs for angular-rspack example projects (d71dcc6a9a)
- core: add run-native-target script input to dotnet build-analyzer (#35221)
- core: overwrite inferred script target when nx prop defines executor or command (#35227)
- core: update cleanup mock to match async signature in package-json spec (c9d51d31f9)
- gradle: prevent Gradle and Maven daemon accumulation during project graph recalculation (#35143)
- gradle: use namespace import for tree-kill to match codebase convention (7c4f4af802)
- js: resolve ENOWORKSPACES test error in setupVerdaccio for @nx/js:library generator (#34755)
- js: include npm overrides in generated lockfile (#35192, #34529)
- linter: infer extended tsconfig files as task inputs (#35190)
- maven: prevent batch executor hang from premature worker exit (#35001, #34757)
- maven: use require for tree-kill to avoid esModuleInterop mismatch between lib and spec configs (8bd4c182ca)
- misc: use workspace root for package manager detection and normalize paths in plugins (#35116)
- misc: stream Framer proxy responses and add edge function timing (#35215)
- misc: bump axios to 1.15.0 for all packages (#35237)
- repo: clean Angular CLI restore target before cache copy (#35121)
- repo: update issue-notifier.yml (#35178)
❤️ Thank You
- Alexandre Ducarne @JiggyJinjo
- Claude
- Claude Opus 4.6
- Claude Opus 4.6 (1M context)
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- FUASHI LOT-BILL
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- leosvelperez @leosvelperez
- MaxKless @MaxKless
- Parker Norwood @parker-norwood
- Robert Sidzinka
- Steven Nance
- Victor Savkin @vsavkin
22.7.0-beta.11
22.7.0-beta.11 (2026-04-08)
🚀 Features
- core: allow generate command to skip project graph creation (#35170)
- core: remove polygraph cloud passthrough (#35153)
- repo: add e2e test for nx build process verification (#35119)
🩹 Fixes
- core: misc tui perf fixes (#35187)
- core: replace LGPL-licensed @ltd/j-toml with BSD-3-Clause smol-toml (#35188)
- core: supply chain hardening via transitive dependency pinning (#35159)
- core: kill discrete tasks and use tree-kill for batch cleanup on SIGINT (#35175)
- gradle: infer input extensions on project graph generation (#35160)
- gradle: hoist shared task computation out of per-class loop in atomized CI target generation (#35199)
- gradle: patch 0.1.19 to beta.11 (#35202)
- maven: prevent batch executor hang from premature worker exit (#35001, #34757)
- maven: make install targets noop when maven.install.skip=true (#35009)
- repo: update issue-notifier.yml (#35178)
❤️ Thank You
- Alexandre Ducarne @JiggyJinjo
- Claude
- Claude Opus 4.6 (1M context)
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- jaysoo @jaysoo
- Louie Weng @lourw
- MaxKless @MaxKless
- Victor Savkin @vsavkin
22.7.0-beta.10
22.7.0-beta.10 (2026-04-02)
🚀 Features
- misc: lock in CNW cloud prompt A/B winner and add new variants (#35154)
- repo: enforce no-disabled-tests via ESLint with per-project warning caps (#35122)
🩹 Fixes
- bundling: bump esbuild for new projects to a version compatible with vite 8 (#35132)
- core: reduce published nx package size with files allowlist (#35109)
- core: clean up legacy .gemini/skills during configure-ai-agents (#35117)
- core: copy pnpm install configuration to generated package.json (#35016, #30240)
- core: improve migrate error reporting (#34980)
- core: display actual error message when plugin loading fails (#35138, #35137)
- core: bump axios to 1.13.5 to resolve CVE-2026-25639 (#35148, #35145)
- core: update and pin ejs to 5.0.1 (#35157)
- gradle: prevent Gradle and Maven daemon accumulation during project graph recalculation (#35143)
- js: use explicit nx/bin/nx path in start-local-registry (#35127)
- js: resolve ENOWORKSPACES test error in setupVerdaccio for @nx/js:library generator (#34755)
- misc: use workspace root for package manager detection and normalize paths in plugins (#35116)
- repo: clean Angular CLI restore target before cache copy (#35121)
- repo: correct build target outputs for docker and vue packages (#35136)
- repo: narrow copy-assets outputs to prevent overlap with build-base (#35097)
❤️ Thank You
- Claude Opus 4.6
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- leosvelperez @leosvelperez
- MaxKless @MaxKless
- Parker Norwood @parker-norwood
- Robert Sidzinka
- Steven Nance
22.6.4
22.6.4 (2026-04-01)
🚀 Features
- misc: update nx init telemetry meta from CSV to JSON format (#35076)
- nx-dev: add conditional blog/changelog proxy in edge function (#35043)
🩹 Fixes
- core: validate bundler option for Angular presets in create-nx-workspace (#35074)
- core: handle "." and absolute paths as workspace name in CNW (#35083, #1)
- core: pin version of axios (#35093)
- core: preserve sibling dependency inputs in native hashing (#35071)
- core: sandbox exclusions, multi-line typeof import detection, global ensurePackage mock (#35056)
- core: no-interactive should disable prompts during migrate (#35106)
- gradle: increase project graph timeout defaults (#35058)
- js: recognize tsgo in dependency-checks lint rule (#35048)
- js: narrow tsc build-base outputs to only tsc-produced file types (#35041)
- js: include tsbuildinfo in narrowed tsc build-base outputs (#35086, #35041)
- js: use explicit nx/bin/nx path in start-local-registry (#35127)
- misc: handle non-interactive mode and add template shorthand names for CNW (#35045)
- react: force Vite 7 when using React Router in framework mode (#35101)
- react-native: use vite's transformWithEsbuild instead of direct esbuild import (5771eb3346)
- repo: pass env vars into docker builds in publish workflow (#35060)
- repo: bump picomatch from 4.0.2 to 4.0.4 (#35081, #35068)
- repo: fixup lock-threads failing with resource inaccessible message (#35005)
- repo: fix lockfile (b070e23445)
- repo: re-enable Cypress HMR e2e tests after upstream tapable fix (#35105, #34969, #20693)
- repo: disable ts-jest diagnostics for workspace-plugin tests (b013f93dca)
- vite: update vitest and plugin-react-swc versions for vite 8 compat (#35062)
- vite: bump sass version for vue/nuxt presets for Vite 8 compat (#35073)
- webpack: bump postcss-loader to ^8.2.1 to eliminate transitive yaml@1.x CVE (#35028, #35025)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Robert Sidzinka
22.7.0-beta.9
22.7.0-beta.9 (2026-03-31)
🩹 Fixes
- core: restore metadata table for telemetry session tracking (#35099)
- core: no-interactive should disable prompts during migrate (#35106)
- gradle: detect @input provider-based dependencies (#35090)
- react: force Vite 7 when using React Router in framework mode (#35101)
- repo: fixup lock-threads failing with resource inaccessible message (#35005)
- repo: re-enable Cypress HMR e2e tests after upstream tapable fix (#35105, #34969, #20693)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Louie Weng @lourw
22.7.0-beta.8
22.7.0-beta.8 (2026-03-31)
🚀 Features
- misc: update nx init telemetry meta from CSV to JSON format (#35076)
- repo: enable tsgo compiler for nx package (#35047)
🩹 Fixes
- core: validate bundler option for Angular presets in create-nx-workspace (#35074)
- core: handle "." and absolute paths as workspace name in CNW (#35083, #1)
- core: pin version of axios (#35093)
- core: preserve sibling dependency inputs in native hashing (#35071)
- core: restore nx package exports compatibility (#35095)
- core: sandbox exclusions, multi-line typeof import detection, global ensurePackage mock (#35056)
- gradle: increase project graph timeout defaults (#35058)
- gradle: use object notation for exclude tasks (#35085)
- js: include tsbuildinfo in narrowed tsc build-base outputs (#35086, #35041)
- repo: pass env vars into docker builds in publish workflow (#35060)
- repo: bump picomatch from 4.0.2 to 4.0.4 (#35081, #35068)
- vite: update vitest and plugin-react-swc versions for vite 8 compat (#35062)
- vite: bump sass version for vue/nuxt presets for Vite 8 compat (#35073)
- webpack: bump postcss-loader to ^8.2.1 to eliminate transitive yaml@1.x CVE (#35028, #35025)
❤️ Thank You
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- lourw @lourw
- Miroslav Jonaš @meeroslav
- Robert Sidzinka
22.7.0-beta.7
22.7.0-beta.7 (2026-03-28)
🚀 Features
- nx-dev: add conditional blog/changelog proxy in edge function (#35043)
🩹 Fixes
- gradle: increase project graph timeout defaults (#35058)
- js: recognize tsgo in dependency-checks lint rule (#35048)
- js: narrow tsc build-base outputs to only tsc-produced file types (#35041)
- misc: handle non-interactive mode and add template shorthand names for CNW (#35045)
- repo: copy-assets plugin and e2e improvements (#35042, #34994)
- repo: pass env vars into docker builds in publish workflow (#35060)
- vite: update vitest and plugin-react-swc versions for vite 8 compat (#35062)
❤️ Thank You
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz