Releases: nrwl/nx
Releases · nrwl/nx
22.6.0-beta.13
22.6.0-beta.13 (2026-03-13)
🚀 Features
- core: centralize perf tracking and report metrics to telemetry (#34795)
🩹 Fixes
- core: gate tui-logger init behind NX_TUI env var " (#34426, #34797)
- core: batch hashing, topological cache walk, and TUI batch fixes (#34798)
- nuxt: bump nuxt to 3.21.1 to resolve critical audit vulnerability (#34783)
- nuxt: fix E2E test environment and lint issues (#34808)
- nx-dev: adding missing legacy route redirects (#34772)
❤️ Thank You
- Caleb Ukle
- Claude Opus 4.6
- Jason Jean @FrozenPandaz
22.6.0-beta.12
22.6.0-beta.12 (2026-03-11)
🚀 Features
- core: persist analytics session ID across CLI invocations (#34763)
- gradle: add properties and wrappers to inputs (#34778)
- maven: report external Maven dependencies in project graph (#34368)
🩹 Fixes
- core: misc graph changes with nx/graph 1.0.5 (#34761)
- core: improve nx wrapper error message for malformed nx.json (#34736)
- core: ensure batch tasks always have hash for DTE (#34764, #34446)
- core: show json by default for agentic ai (#34780)
- gradle: ensure that ci test target depends on take overrides into account (#34777)
- js: include transitive dep outputs in typecheck inputs (#34773)
- js: add external project reference config files as inputs for tsc tasks (#34770)
- js: always infer dependentTasksOutputFiles for tsc build targets (#34784)
- webpack: update e2e snapshot for vitest reportsDirectory change (#34766, #34720)
- webpack: cap less version to <4.6.0 to avoid ESM incompatibility (#34781)
❤️ Thank You
- Chau Tran @nartc
- Claude Opus 4.6
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- lourw @lourw
- MaxKless @MaxKless
22.6.0-beta.11
22.6.0-beta.11 (2026-03-09)
🚀 Features
- core: add analytics (#34144)
🩹 Fixes
- core: add missing @nx/angular-rspack packages to nx packageGroup (#34743, #32772)
- core: batch-safe hashing for maven and gradle (#34446, #30949)
- gradle: use object format for dependsOn instead of shorthand strings (#34715)
- gradle: exclude non-JS gradle sub-projects from eslint plugin (#34735)
- js: derive tsbuildinfo filename from iterated tsconfig, not outer config (#34738, #34737)
- js: include tsbuildinfo in dependentTasksOutputFiles for tsc tasks (#34733)
- linter: add catalog: references when fixing missing dependencies (#34734)
- nx-cloud: allow download-cloud-client to work outside nx workspaces (#34746)
⚠️ vitest: resolve reportsDirectory against workspace root (#34720)
⚠️ Breaking Changes
- vitest: resolve reportsDirectory against workspace root (#34720)
❤️ Thank You
- Claude Opus 4.6
- Colum Ferry @Coly010
- Coly010 @Coly010
- FrozenPandaz @FrozenPandaz
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- leosvelperez @leosvelperez
- Steven Nance
- Victor Savkin @vsavkin
22.6.0-beta.10
22.6.0-beta.10 (2026-03-06)
🚀 Features
- core: add polygraph command to initiaze cross-repo sessions (#34722)
- core: add safe plugin cache write utilities with LRU eviction (#34503)
- js: support configurable typecheck config name (#34675)
- nx-dev: add YouTube channel callout to courses page (#34669)
🩹 Fixes
- angular: preserve skipLibCheck in tsconfig.json for standalone projects (#34695, #34164)
- core: enable output prefixing for direct nx:run-commands path (#34670)
- core: support tuple validation when schema
itemsis an array (JSON Schema draft 07) (#34636, #34631) - core: prevent TUI panic when Nx Console is connected (#34718)
- core: add .claude/worktrees to gitignore (#34693)
- core: surface clearer error when CNW hits SANDBOX_FAILED (#34724)
- core: allow nx cloud commands to run outside of a workspace (#34728)
- js: strip catalogs from pruned pnpm lockfile (#34697, #34337)
- js: normalize paths to posix format in typescript plugin (#34702, #31232)
- misc: exclude .netlify paths from Framer proxy edge function (#34703)
- misc: address security CVE cluster (copy-webpack-plugin, koa, minimatch) (#34708, #34632, #34621, #34701)
- vite: skip root-relative paths in nxViteTsPaths resolveId (#34694, #34300)
- vitest: handle zoneless Angular apps in vitest configuration generator (#34700, #33983)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude Opus 4.6
- Copilot @Copilot
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri Strumpflohner @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Victor Savkin @vsavkin
22.6.0-beta.9
22.6.0-beta.9 (2026-03-04)
🚀 Features
- core: migrate napi-rs v2 to v3 (#34619)
- core: add Codex subagent support to configure-ai-agents (#34553)
🩹 Fixes
- core: resolve input files for targets with defaultConfiguration (#34638, #34594)
- core: interpolate {projectRoot} and {projectName} in {workspaceRoot} input patterns in native hasher (#34637, #43, #34225, #34595)
- core: skip writing deps cache if already up-to-date (#34582)
- core: resolve false positive loop detection when running with Bun (#34640, #0, #1, #2, #3, #4, #5, #6, #33997)
- core: stabilizes project references in dependsOn and inputs when later plugins rename a project (#34332)
- core: fall back to invoking PM in detection (#34691)
- core: restore CNW user flow to match v22.1.3 (#34671)
- testing: remove stale ci.yml from extras.test snapshot (#34690, #34332, #34616)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude Opus 4.6
- Copilot @Copilot
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- MaxKless @MaxKless
22.5.4
22.5.4 (2026-03-04)
🚀 Features
- core: add .nx/polygraph to gitignore in migration and caia (#34659)
🩹 Fixes
- angular-rspack: use relative path for postcss-cli-resources output (#34681, #34092)
- core: support canonical SSH URLs when extracting GitHub user/repo slug during
nx release(#31684, #31682) - core: update sourceRespository description of nx import (#34606)
- core: update minimatch to 10.2.4 (#34660)
- core: skip writing deps cache if already up-to-date (#34582)
- core: resolve false positive loop detection when running with Bun (#34640, #0, #1, #2, #3, #4, #5, #6, #33997)
- core: fall back to invoking PM in detection (#34691)
- core: restore CNW user flow to match v22.1.3 (#34671)
- gradle: tee batch runner output to stderr for terminal display (#34630)
- maven: synchronize batch runner invoke() to prevent concurrent access (#34600)
- misc: boost CLI command reference search ranking (#34625)
- misc: fix broken nx.dev redirects and remove legacy redirect-rules files (#34673)
- misc: use pathToFileURL for cross-platform path handling in postcss-cli-resources (#34676, #33052)
- misc: exclude .netlify paths from Framer proxy edge function (1ce5e91f5e)
- repo: reset package.json files after local release (#34648)
- repo: remove redundant inputs override for build-base target (#34649)
- vitest: respect reporters from target options in vitest executor (#34663, #34495)
❤️ Thank You
- AgentEnder @AgentEnder
- Caleb Ukle
- Claude Opus 4.6
- Copilot @Copilot
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Nelson Dominguez @ekkolon
22.6.0-beta.8
22.6.0-beta.8 (2026-03-03)
🚀 Features
- core: add .nx/polygraph to gitignore in migration and caia (#34659)
🩹 Fixes
- angular-rspack: use relative path for postcss-cli-resources output (#34681, #34092)
- core: update sourceRespository description of nx import (#34606)
- core: update minimatch to 10.2.4 (#34660)
- gradle: tee batch runner output to stderr for terminal display (#34630)
- misc: boost CLI command reference search ranking (#34625)
- misc: fix broken nx.dev redirects and remove legacy redirect-rules files (#34673)
- misc: use pathToFileURL for cross-platform path handling in postcss-cli-resources (#34676, #33052)
- repo: reset package.json files after local release (#34648)
- repo: remove redundant inputs override for build-base target (#34649)
- vitest: respect reporters from target options in vitest executor (#34663, #34495)
❤️ Thank You
- Caleb Ukle
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
22.6.0-beta.7
22.6.0-beta.7 (2026-02-27)
🚀 Features
🩹 Fixes
- core: support canonical SSH URLs when extracting GitHub user/repo slug during
nx release(#31684, #31682) - maven: synchronize batch runner invoke() to prevent concurrent access (#34600)
❤️ Thank You
- Claude Opus 4.6
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Nelson Dominguez @ekkolon
22.6.0-beta.6
22.6.0-beta.6 (2026-02-27)
🚀 Features
- angular: add support for Angular v21.2 (#34592)
🩹 Fixes
- core: preserve nxCloud=skip in non-interactive CNW mode (#34616, #34580)
- core: make watch command work with all and initialRun specified (#32282, #32281)
- linter: support eslint v10 (#34534, #34415)
- linter: allow for wildcards paths in enforce-module-boundaries rule (#34066, #32190)
- maven: fix set the pom file without changing base directory (#34182, #34181)
- testing: use surgical text replacement in Jest matcher alias migration (#34350, #32062)
❤️ Thank You
- Anurag Agarwal @altaiezior
- anurag.ag @anuragagarwal561994
- Eric Baer
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jason Weinzierl
- Jesse Zomer
- Leosvel Pérez Espinosa @leosvelperez
- omasakun @omasakun
22.5.3
22.5.3 (2026-02-26)
🚀 Features
- core: add --json flag for better AX to nx list (#34551)
- core: add passthrough for nx-cloud apply-locally command (#34557)
- core: add explicit cloud opt-out to CNW (#34580)
🩹 Fixes
- angular: use SASS indented syntax in nx-welcome component when style is sass (#34510, #33489)
- angular-rspack: exclude .json files from JS/TS regex patterns (#34195)
- bundling: skip unnecessary type-check in TS Solution Setup when skipTypeCheck is true (#34493, #34492)
- bundling: add docs link to generatePackageJson error message (#34562, #30146)
- bundling: fix regression on process.env usage for webpack (#34583, #34279)
- core: preserve existing source properties in claude plugin config (#34499)
- core: retry entire SQLite transaction on DatabaseBusy (#34533)
- core: reject pending promises directly when plugin worker exits unexpectedly (#34588, #34564)
- core: use recursive FSEvents on macOS instead of non-recursive kqueue (#34523, #34329, #33781, #34522)
- core: remove unused getTerminalOutput from BatchProcess (#34604)
- core: handle FORCE_COLOR=0 with picocolors (#34520, #34305, #34387)
- core: use scoped cache key for unresolved npm imports in TargetProjectLocator (#34605)
- core: preserve nxCloud=skip in non-interactive CNW mode (#34616, #34580)
- core: make watch command work with all and initialRun specified (#32282, #32281)
- gradle: ensure that atomized task targets have dependsOn (#34611)
- gradle: use globs for dependent task output files (#34590)
- js: use per-invocation cache in TS plugin to fix NX_ISOLATE_PLUGINS=false (#34566)
- js: guard against undefined closest node in rehoistNodes (#34347, #34322)
- js: remove redundant vite.config.ts generation for vitest projects (#34603, #34399)
- linter: support eslint v10 (#34534, #34415)
- linter: allow for wildcards paths in enforce-module-boundaries rule (#34066, #32190)
- maven: fix set the pom file without changing base directory (#34182, #34181)
- misc: bump minimatch to 10.2.1 to address CVE-2026-26996 (#34509, #34507)
- misc: update maven & gradle icons to java duke icon (#34508)
- nx-dev: correct interpolate sub command for cli reference (#34585)
- nx-dev: move redirects from Next.js config to Netlify _redirects (#34612)
- release: allow null values in schema of dockerVersion (#34171)
- release: add null-safe fallback for version in createGitTagValues (#34598, #34382, #33890, #34391)
- repo: remove chalk from e2e tests (#34570)
- testing: use surgical text replacement in Jest matcher alias migration (#34350, #32062)
- vite: isPreview=true for Vite Preview server (#34597)
- webpack: ensure safe
process.envfallback replacement (#34464, #30826, #34460)
❤️ Thank You
- Amp
- Anurag Agarwal @altaiezior
- anurag.ag @anuragagarwal561994
- Caleb Ukle
- Charlie Croom
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Eric Baer
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jason Weinzierl
- Jesse Zomer
- Kai Gritun
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- Mathias Schopmans
- MaxKless @MaxKless
- Miguel @mpsanchis
- Miroslav Jonaš @meeroslav
- Nikola Kalinov @nkalinov
- omasakun @omasakun
- Samuel Briole
- Tomas Ptacek @faileon