PackageTrack

npm · #4128

@nx/nx-linux-x64-musl

23.1.2nrwl/nx

Release timeline

1896 releases since 2023
202420252026

Releases

  1. 23.0.210 Jul 2026
    Release notes

    23.0.2 (2026-07-10)

    🚀 Features

    • core: re-add isCacheableTask helper (#36177)

    🩹 Fixes

    • bundling: prevent TS6059 when an app imports a workspace lib from source (#36217, #35017)
    • core: prefer module.registerHooks to avoid DEP0205 deprecation warning (#36081)
    • core: prevent nx migrate crash when include=optional filters out the target package (#36087)
    • core: make nx migrate honor preapproved packages and emit a valid temp workspace (#36086)
    • core: skip daemon project-graph recompute on no-op file rewrites (#36082)
    • core: prevent the TUI from auto-selecting a completed task when a batch finishes (#35833)
    • core: deregister pseudo-terminal exit handlers when tasks finish (#36115)
    • core: prevent path traversal / zip-slip in self-hosted remote cache (#36116)
    • core: respect explicit --nxCloud=skip for AI agents in create-nx-workspace (#36131)
    • core: warn when the self-hosted remote cache disables TLS verification (NXC-4593) (#36132, #36116)
    • core: throw actionable error when pnpm .modules.yaml is missing (#35666, #35635)
    • core: support ${configDir} in tsconfig path alias resolution (#36037, #35804)
    • core: prevent non-npm devEngines pin from breaking npm registry lookups (#36020, #35815)
    • core: clarify nx sync remediation messaging and surface spinner output in non-tty (#35747)
    • core: exclude direct-dependency overrides from generated package.json (#36040, #35675)
    • core: apply target defaults when project.json overrides an inferred run-commands target with different commands (#36142, #36067)
    • core: run the nx.bat wrapper for dot-nx setup on windows (#36048)
    • core: speed up bun lockfile parsing (#36198)
    • core: set NX_CLI_SET in batch worker processes (#36214, #36210)
    • core: preserve comments in catalog YAML updates (#35733)
    • core: box JsonFileSet payload to keep HashInstruction small (#36247, #35248, #36244, #36152)
    • core: share workspace fileset hash results instead of deep-cloning per task (#36244, #34971, #34942)
    • core: replace per-input visited clones with undo-log scoping in hash planner (#36248, #35071, #36152, #34971, #36244, #35248, #36247)
    • core: intern hash instructions in a pool and plan with id lists (#36249, #35071, #36152, #36248)
    • core: detect Codex sandbox on Linux to disable daemon and plugin isolation (#36273)
    • devkit: restore prettier v2 support in formatFiles (#36193)
    • graph: prevent project details web view top from being clipped (#36154)
    • js: prevent doubled output paths in buildable library path mappings (#36138, #36079)
    • js: scope incremental type-check .tsbuildinfo per project (#36137, #36113)
    • js: preserve npm allowScripts allowlist in pruned package.json (#36016, #35931)
    • js: resolve catalog references in pruned package.json output (#35805, #35419)
    • js: avoid import locator unicode position panic (#36133, #36128)
    • js: prevent Windows TS6059 rootDir errors in tsc builds (#36184, #35696)
    • js: wait for process tree exit when stopping node executor tasks (#36230)
    • linter: update terminal cli regex for local-dist build (#36201, #36199)
    • maven: de-flake maven e2e by dropping -X debug forks and widening timeout (#36091)
    • misc: bump axios to 1.16.1 (#36120)
    • misc: use default import for chalk in @nx/workspace output.ts (#35523, #35521, #34111, #21201, #26667)
    • misc: remove duplicate nx init cloud-prompt telemetry event (#36145)
    • nx-cloud: use standard utm params on cloud prompt links (#36227, #36226)
    • nx-dev: remove empty SaaS and Mobile template filters (#36085)
    • react: reserve ports in rspack e2e test to avoid default port collisions (#36090)
    • react: stop pinning eslint-plugin-react in generated projects (#36168, #36161)
    • release: widen release e2e timeouts to absorb pre-version dlx install (#36092)
    • repo: trust wix/brew tap so macOS detox CI can install applesimutils (#36146)
    • rspack: use contenthash for chunkFilename to prevent stale chunks (#36136, #2292, #36014)
    • rspack: stop mocking non-existent is-serve-mode util in apply-base-config test (fea2cabbcc)
    • vite: widen vite ts-solution e2e build timeouts for cold multi-lib build (#36093)
    • vite: detect @vitejs/plugin-vue2 (vite:vue2) for vue-tsc typecheck (#36125, #36094)
    • vite: update deprecation docs link (#36070, #36053)
    • vitest: support passing mode through to vitest (#35069)
    • web: run executor/plugin/generator commands with the workspace package manager (#36021, #35950)
    • webpack: prevent TS6059 when a tsc build bundles a workspace lib (#36188, #35017)

    ❤️ Thank You

    • AgentEnder @AgentEnder
    • Aidan Temple @aidant
    • Craigory Coppola @AgentEnder
    • cyphercodes @cyphercodes
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Jonathan Garvey @jdgarvey
    • Leosvel Pérez Espinosa @leosvelperez
    • Miroslav Jonaš @meeroslav
    • Rayan Salhab
    • Richard Roozenboom @Roozenboom
    • Sai Asish Y @SAY-5
    • Steven Nance
    • titanniya542-spec @titanniya542-spec
    • Wilson Pinto
    Open source →
  2. 23.0.123 Jun 2026
    Release notes

    23.0.1 (2026-06-23)

    🚀 Features

    • nx-cloud: add utm tracking to clickable cloud prompt links (#36028)

    🩹 Fixes

    • angular: resolve esbuild option paths relative to the workspace root (#36017, #35936)
    • angular-rspack: surface compilation failures as build errors and release resources on teardown (#36018)
    • bundling: restore preprocessor extensions in postcss normalizeOp… (#36057, #35854)
    • core: avoid tsconfig path false positives for sibling project roots (#35796, #35795, #35786)
    • core: do not write minimumReleaseAgeExclude during nx migrate (#36045)
    • core: do not crash nx migrate on non-semver dependency specifiers (#36051)
    • core: format AI-edited files after agentic migrations (#36064)
    • misc: bump happy-dom, tmp, and form-data to patched versions (#36013)
    • nx-dev: keep mobile sidebar toggle clear of the conference banner (#36047)
    • nx-dev: run next-sitemap directly instead of via pnpm (#36054)
    • ⚠️ release: stop breaking change changelog entry from swallowing trailing PR body (#36052, #35910, #33070)
    • vitest: apply mode-based config consistently in the test executor (#36041, #35196)

    ❤️ Thank You

    • Alex Croteau @cw-alexcroteau
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Marwan Johnstone
    Open source →
  3. 23.0.016 Jun 2026
    Release notes

    23.0.0 (2026-06-16)

    🚀 Features

    • ⚠️ angular: remove deprecated @nx/angular/module-federation entry point (#35512)
    • ⚠️ angular: remove deprecated move generator (#35513)
    • ⚠️ angular: remove deprecated ngrx generator (#35567)
    • angular: deprecate convert-to-with-mf generator (#35862)
    • angular: deprecate SCAM generators (#35887)
    • ⚠️ bundling: drop legacy typescript plugin and align rollup buildLibsFromSource default (#35516)
    • ⚠️ bundling: remove SVGR option and provide withSvgr migration (#35611)
    • bundling: add Vite 7 -> 8 migrations (#35614)
    • core: add support for '...' as a spread token when merging target config (#34285)
    • core: show target uses task graph + filter broken dependsOn during normalization (#35367)
    • core: add --mode and --multi-major-mode flags to nx migrate (#35497)
    • core: support prompt field in migration entries (#35638)
    • core: rename nx watch --includeDependentProjects to --includeDependencies (#35699)
    • core: support filtered array-shape targetDefaults with projects and source (#35340)
    • core: enable native Node.js TypeScript stripping by default (#35608)
    • core: add shell tab-completion (bash, zsh, fish, powershell) (#34951)
    • core: add agentic mode to nx migrate --run-migrations (#35718)
    • core: add a migrate configuration section to nx.json (#35831)
    • core: feed migration docs to agents in nx migrate (#35835)
    • core: avoid redundant rematch in findMatchingConfigFiles (#35793, #35792)
    • ⚠️ core: rename CreateNodes V2 types to canonical OG names (#35386, #32951)
    • core: support prompt-only and hybrid migrations in Nx Console UI (#35822, #35718, #3153)
    • core: add JSON schema for migrations.json files (#35888)
    • core: add migrations for createNodesV2 -> createNodes rename (#35893, #35386)
    • core: extend nx migrate --include to any package that supports optional updates (#35905)
    • core: report analytics events for the nx migrate flow (#35937)
    • core: revert array-shape targetDefaults support pending redesign and reapplication (#36005, #35340, #35711, #35752, #35991)
    • ⚠️ detox: deprecate the @nx/detox build and test executors (#35529)
    • devkit: migrate @nx/devkit/src/... deep imports (#35541, #34946)
    • ⚠️ devkit: deprecate the standalone parameter of addProjectConfiguration (#35883)
    • gradle: stream batch task results to nx as they finish (#35487)
    • js: support pnpm 11.2.2 (#35772)
    • linter: allow prompt-only entries in migration nx-plugin-checks (#35700, #35638)
    • linter: deprecate ESLint v8 support (#35819)
    • ⚠️ misc: remove Tailwind CSS setup-tailwind generators (#35049)
    • ⚠️ misc: remove deprecated stylesheet options from generators (#35103)
    • misc: drop Node 20 support and bump @types/node (#35591)
    • ⚠️ misc: deprecate executors with inferred-plugin replacements (#35576, #35517)
    • ⚠️ misc: remove deprecated js option from component generators (#35616, #29111)
    • misc: convert prompt generator migrations to use prompt field (#35688)
    • ⚠️ misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)
    • misc: add --trustThirdPartyPreset flag to skip confirmation prompt (#35827, #35826)
    • misc: remove migrations prior to v21 in preparation for v23 (#35909, #30839, #32904, #35900)
    • misc: multi-version support compliance for detox, expo, react-native, and remix (#35885)
    • misc: prompt analytics earlier in init flow (#35922)
    • module-federation: deprecate old generators and add new consumer/provider generators (#35825)
    • ⚠️ nextjs: deprecate withNx function (#35861)
    • nx-dev: track docs analytics for code copy, LLM prompt, YouTube (#35526)
    • nx-dev: add docs top banner for ai monorepos conference (#35956)
    • nx-dev: support optional artwork in the promo banner card (#35992)
    • ⚠️ release: drop deprecated releaseTag* flat properties and update v23 defaults (#35694)
    • ⚠️ testing: deprecate the @nx/cypress:cypress executor (#35531, #35529)
    • testing: bump cypress to 15.14 + remove stale Vite 8 guard (#35613)
    • testing: add migration for Jest 30 snapshot guide link (#35629)
    • ⚠️ testing: remove deprecated skipSetupFile and setupFile jest options (#35588)
    • ⚠️ vite: remove vitest support in favor of @nx/vitest (#35517)
    • ⚠️ vite: deprecate the nxViteTsPaths and nxCopyAssetsPlugin helpers (#35664)
    • ⚠️ webpack: deprecate webpack/rspack config compose helpers (#35867)

    🩹 Fixes

    • angular: disable vitest watch by default (#35493)
    • angular: multi-version support compliance (#35587)
    • angular: only add @oxc-project/runtime on the vitest-analog path (#35734)
    • angular: bump zoneJsVersion to ~0.16.0 to align with Angular v21 (#35799)
    • angular-rspack: keep root-scoped assets out of per-locale i18n emit (#35621)
    • angular-rspack: exclude eslint config from tailwind v4 source scan (#35663)
    • angular-rspack: apply multi-version compliance to @nx/angular-rspack(-compiler) (#35806)
    • angular-rspack: dispose stylesheet bundler so one-shot builds exit (#35869)
    • bundling: include tsconfig solution input for rollup (#35476)
    • bundling: include tsconfig solution input for webpack (#35477, #35476)
    • bundling: multi-version support compliance for @nx/esbuild (#35768)
    • core: remove redundant allWorkspaceFiles from the project graph pipeline (#34425)
    • core: prevent spinner flicker when sync applying (#35445)
    • core: exclude hyperfine env vars from daemon env reflection (182273670a)
    • core: provide actionable feedback when running migrations and pre-install fails with npm peer dep errors (#33961, #33942)
    • core: consider virtual trees in multiGlobWithWorkspaceContext (#35447, #31805, #35373, #32588)
    • core: surface ./nx --version stderr and force devDeps install (#35469)
    • core: keep continuous children alive when nx:noop orchestrator completes (#35388)
    • core: start TUI event reader synchronously in enter() to prevent stdin race (#35465, #34619, #34144)
    • core: use require for global to local Nx handoff so Windows drive paths work (#35478)
    • core: prevent daemon shutdown from cache-poisoned in-process nx loads (#35482, #35444, #34463, #34111)
    • core: add provenance check in nx console status path (#35485)
    • core: skip target-defaults synthesis when defaults are incompatible with the specified target (#35486)
    • core: native watcher rewrite + daemon hardening for daemon-on e2e (#35204, #14, #19, #12, #13)
    • core: remove access control header from graph app (#35494)
    • core: preserve hydrateFileMap back-compat for cached nx-cloud workers (#35502, #34425)
    • core: correctly classify same-second in-place updates in macOS watcher (#35514)
    • core: restore deprecated allWorkspaceFiles on WorkspaceFileMap (#35518, #34425, #35502)
    • core: ensure verbose logs go to stderr and daemon logs are properly decorated (#34358)
    • core: show flaky-task count in run summary (#35491)
    • core: unique telemetry user_id; expose workspace_id dimension (#35553)
    • core: use workspace root for package manager detection in script targets (#35550, #35116)
    • core: update minimatch to 10.2.5 (#35569, #34660)
    • core: restore use-legacy-versioning shim for @nx/js@21 ensurePackage path (#35574)
    • core: isolate NX_PARALLEL env var in parallel-related specs (#35579)
    • core: bump axios to 1.16.0 for all packages (#35568)
    • core: skip handleimport miss path when nx key packages are absent (#35596)
    • core: use gethostuuid(3) instead of ioreg on macOS (#35599)
    • core: isolate cache env vars in splitArgs spec (#35584)
    • core: enable node's native v8 compile cache support (#35415, #20454)
    • core: error with helpful error instead of looping nx invocations (#34820)
    • core: support skipped batch tasks end-to-end and fix TUI double logs (#35617)
    • core: keep TUI task selection on the in-progress section (#35640)
    • core: drain in-flight notify events in daemon force_flush_pending (#35646, #35630)
    • ⚠️ core: drop legacy 'self'/'dependencies' magic strings in dependsOn (#35648, #4017)
    • core: correct TUI sidebar viewport height off-by-one (#34682)
    • core: allow nx mcp to run outside of an Nx workspace (#35655)
    • core: warn before installing unknown npm packages as preset (#35644)
    • core: freshness-gate daemon recompute + per-OS force-flush grace (#35650, #35646)
    • core: improve nx migrate multi-major flag handling and feedback (#35673, #35497, #35444)
    • core: use native graceful process tree shutdown (#33655, #32438)
    • core: warn instead of silently dropping legacy 'self'/'dependencies' dependsOn values (#35687, #35648)
    • core: preserve input order in createNodes plugin results (#35595)
    • ⚠️ core: remove deprecated initTasksRunner API (#35708, #29993)
    • core: do not drop target defaults in 23.0.0 array migration (#35711)
    • core: restore nx/src/index entrypoint for Nx Cloud client compatibility (#35712, #35708)
    • core: resolve local plugin subpath imports from source (#35631)
    • core: treat undefined task parallelism as parallel when scheduling (#35736)
    • core: handle object form of bin field in getPrettierPath (#35680)
    • core: detect vscode copilot ai agent (#35757)
    • core: allow local plugin subpath imports without custom conditions (#35751, #35631)
    • core: always set task.cache as an explicit boolean (#35778)
    • core: update brace-expansion and yaml (#35790)
    • core: allow nx build scripts in generated pnpm-workspace.yaml (#35564)
    • core: update tmp to 0.2.6 due to CVE-2026-44705 (#35813)
    • core: correct nx migrate commit-tally undercount and consolidate outcome state (#35820)
    • core: read pod cgroup limits instead of node limits in resource metrics (#35622, #35665)
    • core: forward full task graph to batch executors under DTE (#35859)
    • core: support local plugins using NodeNext .js import specifiers (#35834)
    • core: gate nx migrate first-party/third-party modes to Nx v23+ targets (#35830)
    • core: correct 'occured' typo to 'occurred' in error messages (#35852)
    • core: use workspace package manager when fetching migrations via install (#35866)
    • core: disallow nx migrate --interactive for Nx v23+ targets (#35874)
    • core: pre-authorize agentic handoff writes and consult the user before failing a step (#35889)
    • core: respect --no-interactive across all nx migrate prompts (#35884)
    • core: keep daemon alive when a recompute's plugin load fails (#35705, #35650)
    • core: respect NX_PREFER_TS_NODE over native type stripping (#35892)
    • core: respect package manager minimum release age in nx migrate (#35902)
    • core: show agentic migration prompt descriptions only for the focused choice (#35908)
    • core: allow analytics requests through Claude Code sandbox network filter (#35949)
    • core: exclude NX_CLOUD_ env vars from daemon env reflection (#35961)
    • core: degrade cooldown-blocked dist-tags within their own channel (#35967)
    • core: override shell-quote to ^1.8.4 to patch GHSA-w7jw-789q-3m8p (#35974)
    • core: re-hash batch tasks with deps outputs after execution (#35980, #34798)
    • core: do not fail local plugin lookup when workspace has no root tsconfig (#35969, #35631, #35751, #35970)
    • core: handle --help for commands that bypass workspace handling (#35989, #32662)
    • core: allow {projectRoot} after the start of an output when project is at the workspace root (#35993, #26244, #35839)
    • core: read and replay cached failures when NX_CACHE_FAILURES is enabled (#35997, #35901)
    • detox: generate valid JSON in .detoxrc for non-expo apps (bde1f18cef)
    • devkit: drop build-base outputs override (#35542, #34946)
    • devkit: only rewrite deep-import paths in real import sites (#35566, #35541, #35565, #3131)
    • devkit: exclude dist from jest module path scan (#35615)
    • dotnet: correct output paths for Web SDK and centralized dist setups (#35398)
    • dotnet: include Directory.. files in inputs (#35738)
    • dotnet: declare obj output for publish/pack and track vitest dep spec tsconfig input (#35858)
    • ⚠️ dotnet: graduate @nx/dotnet — drop experimental banner and the /plugin export (#35895)
    • gradle: exclude batch-runner from jest haste-map crawl (#35501)
    • gradle: exclude project-graph from jest module path scan (#35609)
    • gradle: support Windows file paths (#35184, #34987)
    • gradle: add transitive:true to all tasks (#35677)
    • gradle: pin generated e2e project toolchain to installed JDK (#35703)
    • gradle: make project graph configuration hash deterministic (#35972)
    • gradle: exclude incremental-compilation .bin files from task inputs (#35975)
    • js: include extended tsconfigs from project references in typecheck inputs (#35457)
    • js: strip glob from inferred outputs before resolving as path (#35463, #35452)
    • js: reference vitest.config in eslint dep-checks for vitest libs (#35460, #33670, #35450)
    • js: include transitive workspace deps in pruned pnpm lockfile (#35532, #35347, #34655)
    • js: build to local dist and use nodenext (#35538)
    • js: add backwards-compatible ./src/internal export shim for conformance@4/5 (#35710, #11347)
    • js: always register transpiler for registerTsProject so subsequent require(file) will work (#35735)
    • js: fall back to npm publish when bun publish fails with auth error (#35756)
    • js: multi-version support compliance (#35725)
    • js: support auto mode for non-pnpm lock files in affected detection (#35141, #34937)
    • js: handle already-published version errors in release-publish executor (#35782, #35235)
    • js: use TypeScript readConfigFile instead of JSON.parse in resolvePathsBaseUrl (#35539, #34965, #35537, #35824)
    • js: align tsconfig include and exclude inputs inference with TypeScript behavior (#35876)
    • js: correct inferred tsbuildinfo output path when rootDir is set (#36011)
    • linter: detect root lint target added in same generator run (#35296, #23147, #34531)
    • linter: prevent ENOENT crash in getRelativeImportPath for unresolvable paths (#35007, #13872, #34066, #30491, #16716, #35006, #21889, #32190)
    • linter: improve convert-to-flat-config output fidelity (#35330)
    • linter: only rewrite workspace-package peer deps to workspace:* (#35423, #35318, #33417)
    • ⚠️ linter: migrate @nx/eslint and @nx/eslint-plugin to local dist build (#35720)
    • linter: multi-version support compliance for @nx/eslint and @nx/eslint-plugin (#35811, #35806)
    • maven: skip attached artifacts that fail to materialize in batch record (#35473)
    • maven: serialize Maven 4 build state recording (#35555)
    • maven: widen runCLI timeout for --no-batch maven.test.ts cases (#35589)
    • misc: exclude stories and specs from tailwind content scanning (#35470)
    • misc: resolve pnpm catalog: refs in version lookups (#35459, #35453)
    • misc: adopt PluginCache across createNodes plugins to prevent flaky cache parse errors (#35544)
    • misc: vite migration import fix and ai doc corrections (#35647)
    • misc: stop inferring projects: 'self' in dependsOn entries (#35686)
    • misc: skip $ escaping in file paths on windows (#35692)
    • misc: multi-version compliance for @nx/express, @nx/node, and @nx/nest (#35807)
    • misc: publish migration prompt files and report the real migrate fetch error (#35886)
    • misc: multi-version support compliance for rollup, webpack, and module-federation (#35860)
    • misc: rename createNodesV2 value usages in v23 migration, not just imports (#35930)
    • misc: declare continuous on inferred executor targets (#35941)
    • misc: fix gitlab ci workflow for new repos and merge requests (#34237)
    • module-federation: bound static remote proxy port check to avoid nx serve hang (#35996, #33871, #33909)
    • nextjs: use cached project graph in withNx (#35475, #34518, #32880)
    • nextjs: multi-version support compliance (NXC-4395) (#35870)
    • node: include tsconfig input in node-app esbuild scaffold (#35466)
    • nx-dev: document nested CLI subcommands beyond two levels (#35519)
    • nx-dev: short-circuit bot probes in framer rewrite edge function (#35527)
    • nx-plugin: plugin lint checks should use dependentTasksOutputFiles (#35755)
    • react: withSvgr migration preserves other properties (#35484)
    • react: multi-version support compliance (NXC-4399) (#35872)
    • react-native: fix TS2742 build error and retarget rollup/webpack migrations to beta.24 (#35896)
    • release: handle short and full project names in commit scopes (#34219)
    • release: restore packages/devkit/package.json after release (#35598, #34946)
    • release: skip expensive changelog operations when changelogs are disabled (#35405)
    • release: scope fallback to project history for new packages (#35323)
    • release: require docker config for docker versioning (#35841)
    • release: scope ambiguous-scope check to active release group's projects (#35745, #35744)
    • remix: correct migration implementation path for flat-build packages (#35899, #35893)
    • repo: resolve graph-client build-client sandbox violations (#35522)
    • repo: drop node 26 from nightly matrix until playwright/yauzl fix (#35626, #40724, #168)
    • repo: run dotnet restore before publish (#35771)
    • repo: run dotnet restore before macos e2e job (#35774)
    • repo: rename publish VERSION env var to avoid MSBuild leak (#35849)
    • repo: set workspace-plugin type to module to silence Node strip-types warning (#35880)
    • ⚠️ repo: migrate remaining first-party plugins to local dist build (M2-M5) (#35785, #34946, #35743)
    • repo: use import type for type-only @nx/devkit imports in copy-a… (#35897)
    • repo: increase FreeBSD publish VM memory to prevent OOM (#35914)
    • repo: correct config path in update-repos scripts and use next migrate CLI (#35968, #35915)
    • rsbuild: infer build outputs from distPath.root directly (#35707)
    • rspack: multi-version support compliance for @nx/rspack and @nx/rsbuild (#35676)
    • storybook: multi-version support compliance (#35770)
    • testing: convert executor-based jest.config.ts and preserve type-only imports (#35286, #34593)
    • testing: pin jest to ~30.3.0 to avoid jest-runtime 30.4 RN incompat (#35618)
    • testing: handle absolute cypress screenshotsFolder/videosFolder paths (#35624)
    • testing: correct paths and reserve ports across flaky React MF e2e tests (#35633, #34148, #32948, #35325)
    • testing: multi-version support compliance for @nx/playwright (#35642)
    • testing: exclude dist and out-tsc from default jest module path scan (#35619)
    • testing: multi-version support compliance for @nx/cypress (#35670)
    • testing: correct yargs-parser import in getJestProjectsAsync (#35672, #35654)
    • ⚠️ testing: migrate @nx/jest to local dist build (#35713)
    • testing: publish @nx/vitest, @nx/cypress, @nx/playwright, @nx/vite from local dist (#35743)
    • testing: enforce jest 29-30 multi-version compliance for @nx/jest (#35758)
    • testing: give remix integrated e2e tests headroom for npm install (#35998)
    • vite: enforce multi-version support windows for @nx/vite and @nx/vitest (#35671)
    • vite: improve vitest 4 migration to better handle vitest workspace config (#35940)
    • vue: multi-version support compliance for @nx/vue and @nx/nuxt (#35845)
    • webpack: add webpack tooling to devDependencies in the v23 migration (#35944)

    ⚠️ Breaking Changes

    • dotnet: graduate @nx/dotnet — drop experimental banner and the /plugin export (#35895) ** the @nx/dotnet/plugin entry point has been removed; use @nx/dotnet. The included migration updates nx.json automatically.

      Related Issue(s)

      <!-- Please link the issue being fixed so it gets closed when this is merged. --> N/A
    • repo: migrate remaining first-party plugins to local dist build (M2-M5) (#35785, #34946, #35743)
    • devkit: deprecate the standalone parameter of addProjectConfiguration (#35883)
    • webpack: deprecate webpack/rspack config compose helpers (#35867)
    • core: rename CreateNodes V2 types to canonical OG names (#35386, #32951)
    • nextjs: deprecate withNx function (#35861)
    • vite: deprecate the nxViteTsPaths and nxCopyAssetsPlugin helpers (#35664)
    • testing: remove deprecated skipSetupFile and setupFile jest options (#35588) The setupFile option of the @nx/jest:jest executor and the skipSetupFile option of the @nx/jest:configuration generator are removed.
    • misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)
    • linter: migrate @nx/eslint and @nx/eslint-plugin to local dist build (#35720)
    • testing: migrate @nx/jest to local dist build (#35713)
    • core: remove deprecated initTasksRunner API (#35708, #29993) ** The deprecated initTasksRunner export is removed from the nx package. Consumers should use runDiscreteTasks / runContinuousTasks instead.

      Related Issue(s)

      Internal: NXC-4307
    • release: drop deprecated releaseTag* flat properties and update v23 defaults (#35694)
    • misc: remove deprecated js option from component generators (#35616, #29111)
    • core: drop legacy 'self'/'dependencies' magic strings in dependsOn (#35648, #4017)
    • bundling: remove SVGR option and provide withSvgr migration (#35611)
    • misc: deprecate executors with inferred-plugin replacements (#35576, #35517)
    • angular: remove deprecated ngrx generator (#35567) The @nx/angular:ngrx generator has been removed. Use @nx/angular:ngrx-root-store for root state and @nx/angular:ngrx-feature-store for feature state instead.
    • vite: remove vitest support in favor of @nx/vitest (#35517)
    • bundling: drop legacy typescript plugin and align rollup buildLibsFromSource default (#35516)
    • testing: deprecate the @nx/cypress:cypress executor (#35531, #35529)
    • detox: deprecate the @nx/detox build and test executors (#35529)
    • angular: remove deprecated move generator (#35513) The @nx/angular:move generator is removed. Use @nx/workspace:move (or its mv alias) instead.
    • angular: remove deprecated @nx/angular/module-federation entry point (#35512) The @nx/angular/module-federation entry point is removed. Update imports to use @nx/module-federation/angular instead. The update-23-0-0-update-with-module-federation-import migration handles this automatically when running nx migrate.
    • misc: remove deprecated stylesheet options from generators (#35103)
    • misc: remove Tailwind CSS setup-tailwind generators (#35049)

    ❤️ Thank You

    • Abdullah Alaqeel @aqeelat
    • Adam Keenan @adamk33n3r
    • AgentEnder @AgentEnder
    • AI-JamesHenry @AI-JamesHenry
    • Alex
    • Alex Croteau @cw-alexcroteau
    • Amp
    • Artur @arturovt
    • beeman
    • Benjamin Cabanes @bcabanes
    • Benjamin Staneck @Stanzilla
    • Charlie Croom
    • Claude
    • Claude Opus 4.6
    • Claude Opus 4.8 (1M context)
    • Copilot @Copilot
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jack Stevenson
    • Jason Jean @FrozenPandaz
    • jaysoo @jaysoo
    • Justin McLellan @jmclellan-crexi
    • Leosvel Pérez Espinosa @leosvelperez
    • leosvelperez @leosvelperez
    • llwt @llwt
    • Louie Weng @lourw
    • Max Kless
    • MaxKless @MaxKless
    • Minh Lê @DucMinhNe
    • Miroslav Jonaš @meeroslav
    • Olawuni Olagoke @olagokemills
    • Optischa @Optischa
    • Rares Matei
    • rarmatei @rarmatei
    • Sharon Lougheed
    • ShwethaSundar
    • Steven Nance
    • Thiago Zanluca @zanlucathiago
    • Thomas Dekiere @thdk
    Open source →
  4. 23.0.0-rc.415 Jun 2026pre-release
    Release notes

    23.0.0-rc.4 (2026-06-15)

    🚀 Features

    • core: revert array-shape targetDefaults support pending redesign and reapplication (#36005, #35340, #35711, #35752, #35991)
    • nx-dev: support optional artwork in the promo banner card (#35992)

    🩹 Fixes

    • core: handle --help for commands that bypass workspace handling (#35989, #32662)
    • core: allow {projectRoot} after the start of an output when project is at the workspace root (#35993, #26244, #35839)
    • core: read and replay cached failures when NX_CACHE_FAILURES is enabled (#35997, #35901)
    • module-federation: bound static remote proxy port check to avoid nx serve hang (#35996, #33871, #33909)
    • testing: give remix integrated e2e tests headroom for npm install (#35998)

    ❤️ Thank You

    • Benjamin Cabanes @bcabanes
    • Claude
    • Craigory Coppola @AgentEnder
    • Jason Jean @FrozenPandaz
    Open source →
  5. 23.0.0-rc.312 Jun 2026pre-release
    Release notes

    23.0.0-rc.3 (2026-06-12)

    🩹 Fixes

    • core: re-hash batch tasks with deps outputs after execution (#35980, #34798)
    • core: do not fail local plugin lookup when workspace has no root tsconfig (#35969, #35631, #35751, #35970)

    ❤️ Thank You

    • Alex
    • Jason Jean
    • Rares Matei
    • rarmatei @rarmatei
    Open source →
  6. 23.0.0-rc.212 Jun 2026pre-release
    Release notes

    23.0.0-rc.2 (2026-06-12)

    🩹 Fixes

    • core: override shell-quote to ^1.8.4 to patch GHSA-w7jw-789q-3m8p (#35974)
    • gradle: make project graph configuration hash deterministic (#35972)
    • gradle: exclude incremental-compilation .bin files from task inputs (#35975)

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    Open source →
  7. 23.0.0-rc.111 Jun 2026pre-release
    Release notes

    23.0.0-rc.1 (2026-06-11)

    🚀 Features

    • nx-dev: add docs top banner for ai monorepos conference (#35956)

    🩹 Fixes

    • core: allow analytics requests through Claude Code sandbox network filter (#35949)
    • core: exclude NX_CLOUD_ env vars from daemon env reflection (#35961)
    • core: degrade cooldown-blocked dist-tags within their own channel (#35967)
    • repo: correct config path in update-repos scripts and use next migrate CLI (#35968, #35915)

    ❤️ Thank You

    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  8. 23.0.0-rc.011 Jun 2026pre-release
    Release notes

    23.0.0-rc.0 (2026-06-10)

    🚀 Features

    • core: extend nx migrate --include to any package that supports optional updates (#35905)
    • core: report analytics events for the nx migrate flow (#35937)
    • misc: remove migrations prior to v21 in preparation for v23 (#35909, #30839, #32904, #35900)
    • misc: multi-version support compliance for detox, expo, react-native, and remix (#35885)
    • misc: prompt analytics earlier in init flow (#35922)

    🩹 Fixes

    • core: show agentic migration prompt descriptions only for the focused choice (#35908)
    • misc: rename createNodesV2 value usages in v23 migration, not just imports (#35930)
    • misc: declare continuous on inferred executor targets (#35941)
    • misc: fix gitlab ci workflow for new repos and merge requests (#34237)
    • release: scope ambiguous-scope check to active release group's projects (#35745, #35744)
    • repo: increase FreeBSD publish VM memory to prevent OOM (#35914)
    • vite: improve vitest 4 migration to better handle vitest workspace config (#35940)
    • webpack: add webpack tooling to devDependencies in the v23 migration (#35944)

    ❤️ Thank You

    • Claude Opus 4.8 (1M context)
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Justin McLellan @jmclellan-crexi
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  9. 23.0.0-pr.35465.2bc264327 Apr 2026pre-release

    Nothing published for this version

  10. 23.0.0-pr.35413.460eeef24 Apr 2026pre-release

    Nothing published for this version

  11. 23.0.0-pr.35204.e5f145929 Apr 2026pre-release

    Nothing published for this version

  12. 23.0.0-pr.33655.cdc3e7228 Apr 2026pre-release

    Nothing published for this version

  13. 23.0.0-pr.33655.96527d27 May 2026pre-release

    Nothing published for this version

  14. 23.0.0-pr.33655.05d95425 May 2026pre-release

    Nothing published for this version

  15. 23.0.0-canary.20260618-f22e75c18 Jun 2026pre-release

    Nothing published for this version

  16. 23.0.0-canary.20260616-d9d260c16 Jun 2026pre-release

    Nothing published for this version

  17. 23.0.0-canary.20260615-71bbc7015 Jun 2026pre-release

    Nothing published for this version

  18. 23.0.0-canary.20260612-d5143c012 Jun 2026pre-release

    Nothing published for this version

  19. 23.0.0-canary.20260612-10af44f12 Jun 2026pre-release

    Nothing published for this version

  20. 23.0.0-canary.20260610-ab099bd10 Jun 2026pre-release

    Nothing published for this version

  21. 23.0.0-canary.20260609-b9a05829 Jun 2026pre-release

    Nothing published for this version

  22. 23.0.0-canary.20260603-fc8444b3 Jun 2026pre-release

    Nothing published for this version

  23. 23.0.0-canary.20260602-6ca3f3a2 Jun 2026pre-release

    Nothing published for this version

  24. 23.0.0-canary.20260521-b6858ba21 May 2026pre-release

    Nothing published for this version

  25. 23.0.0-canary.20260519-6e6edab19 May 2026pre-release

    Nothing published for this version

  26. 23.0.0-canary.20260515-4f1406715 May 2026pre-release

    Nothing published for this version

  27. 23.0.0-canary.20260514-feb64ba14 May 2026pre-release

    Nothing published for this version

  28. 23.0.0-canary.20260513-934a70b13 May 2026pre-release

    Nothing published for this version

  29. 23.0.0-canary.20260508-a2dfac68 May 2026pre-release

    Nothing published for this version

  30. 23.0.0-canary.20260508-9f8a6c28 May 2026pre-release

    Nothing published for this version

  31. 23.0.0-canary.20260506-b5945376 May 2026pre-release

    Nothing published for this version

  32. 23.0.0-canary.20260504-e8aa6124 May 2026pre-release

    Nothing published for this version

  33. 23.0.0-canary.20260501-fde01fa1 May 2026pre-release

    Nothing published for this version

  34. 23.0.0-canary.20260429-0205b2229 Apr 2026pre-release

    Nothing published for this version

  35. 23.0.0-canary.20260428-b05d65328 Apr 2026pre-release

    Nothing published for this version

  36. 23.0.0-canary.20260424-608c3be24 Apr 2026pre-release

    Nothing published for this version

  37. 23.0.0-beta.259 Jun 2026pre-release
    Release notes

    23.0.0-beta.25 (2026-06-09)

    🚀 Features

    • core: extend nx migrate --include to any package that supports optional updates (#35905)
    • misc: remove migrations prior to v21 in preparation for v23 (#35909, #30839, #32904, #35900)
    • misc: multi-version support compliance for detox, expo, react-native, and remix (#35885)

    🩹 Fixes

    • core: respect package manager minimum release age in nx migrate (#35902)
    • core: show agentic migration prompt descriptions only for the focused choice (#35908)
    • release: scope ambiguous-scope check to active release group's projects (#35745, #35744)
    • remix: correct migration implementation path for flat-build packages (#35899, #35893)
    • repo: increase FreeBSD publish VM memory to prevent OOM (#35914)

    ❤️ Thank You

    • Claude Opus 4.8 (1M context)
    • FrozenPandaz @FrozenPandaz
    • Jason Jean @FrozenPandaz
    • Justin McLellan @jmclellan-crexi
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  38. 23.0.0-beta.246 Jun 2026pre-release
    Release notes

    23.0.0-beta.24 (2026-06-06)

    🚀 Features

    • angular: deprecate SCAM generators (#35887)
    • core: support prompt-only and hybrid migrations in Nx Console UI (#35822, #35718, #3153)
    • core: add JSON schema for migrations.json files (#35888)
    • core: add migrations for createNodesV2 -> createNodes rename (#35893, #35386)
    • ⚠️ devkit: deprecate the standalone parameter of addProjectConfiguration (#35883)
    • misc: add --trustThirdPartyPreset flag to skip confirmation prompt (#35827, #35826)
    • ⚠️ webpack: deprecate webpack/rspack config compose helpers (#35867)

    🩹 Fixes

    • core: disallow nx migrate --interactive for Nx v23+ targets (#35874)
    • core: pre-authorize agentic handoff writes and consult the user before failing a step (#35889)
    • core: respect --no-interactive across all nx migrate prompts (#35884)
    • core: keep daemon alive when a recompute's plugin load fails (#35705, #35650)
    • core: respect NX_PREFER_TS_NODE over native type stripping (#35892)
    • ⚠️ dotnet: graduate @nx/dotnet — drop experimental banner and the /plugin export (#35895)
    • js: align tsconfig include and exclude inputs inference with TypeScript behavior (#35876)
    • misc: publish migration prompt files and report the real migrate fetch error (#35886)
    • misc: multi-version support compliance for rollup, webpack, and module-federation (#35860)
    • nextjs: multi-version support compliance (NXC-4395) (#35870)
    • react: multi-version support compliance (NXC-4399) (#35872)
    • react-native: fix TS2742 build error and retarget rollup/webpack migrations to beta.24 (#35896)
    • repo: set workspace-plugin type to module to silence Node strip-types warning (#35880)
    • ⚠️ repo: migrate remaining first-party plugins to local dist build (M2-M5) (#35785, #34946, #35743)
    • repo: use import type for type-only @nx/devkit imports in copy-a… (#35897)

    ⚠️ Breaking Changes

    • dotnet: graduate @nx/dotnet — drop experimental banner and the /plugin export (#35895) ** the @nx/dotnet/plugin entry point has been removed; use @nx/dotnet. The included migration updates nx.json automatically.

      Related Issue(s)

      <!-- Please link the issue being fixed so it gets closed when this is merged. --> N/A
    • repo: migrate remaining first-party plugins to local dist build (M2-M5) (#35785, #34946, #35743)
    • devkit: deprecate the standalone parameter of addProjectConfiguration (#35883)
    • webpack: deprecate webpack/rspack config compose helpers (#35867)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jack Stevenson
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  39. 23.0.0-beta.234 Jun 2026pre-release
    Release notes

    23.0.0-beta.23 (2026-06-04)

    🚀 Features

    • angular: deprecate convert-to-with-mf generator (#35862)
    • core: avoid redundant rematch in findMatchingConfigFiles (#35793, #35792)
    • ⚠️ core: rename CreateNodes V2 types to canonical OG names (#35386, #32951)
    • ⚠️ nextjs: deprecate withNx function (#35861)

    🩹 Fixes

    • angular-rspack: dispose stylesheet bundler so one-shot builds exit (#35869)
    • core: support local plugins using NodeNext .js import specifiers (#35834)
    • core: gate nx migrate first-party/third-party modes to Nx v23+ targets (#35830)
    • core: correct 'occured' typo to 'occurred' in error messages (#35852)
    • core: use workspace package manager when fetching migrations via install (#35866)
    • dotnet: declare obj output for publish/pack and track vitest dep spec tsconfig input (#35858)
    • js: use TypeScript readConfigFile instead of JSON.parse in resolvePathsBaseUrl (#35539, #34965, #35537, #35824)
    • vue: multi-version support compliance for @nx/vue and @nx/nuxt (#35845)

    ⚠️ Breaking Changes

    • core: rename CreateNodes V2 types to canonical OG names (#35386, #32951)
    • nextjs: deprecate withNx function (#35861)

    ❤️ Thank You

    • Abdullah Alaqeel @aqeelat
    • Alex Croteau @cw-alexcroteau
    • Claude
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Minh Lê @DucMinhNe
    Open source →
  40. 23.0.0-beta.223 Jun 2026pre-release
    Release notes

    23.0.0-beta.22 (2026-06-02)

    🚀 Features

    • core: add a migrate configuration section to nx.json (#35831)
    • core: feed migration docs to agents in nx migrate (#35835)
    • linter: deprecate ESLint v8 support (#35819)
    • ⚠️ testing: remove deprecated skipSetupFile and setupFile jest options (#35588)
    • ⚠️ vite: deprecate the nxViteTsPaths and nxCopyAssetsPlugin helpers (#35664)

    🩹 Fixes

    • angular: bump zoneJsVersion to ~0.16.0 to align with Angular v21 (#35799)
    • core: read pod cgroup limits instead of node limits in resource metrics (#35622, #35665)
    • core: forward full task graph to batch executors under DTE (#35859)
    • js: support auto mode for non-pnpm lock files in affected detection (#35141, #34937)
    • js: handle already-published version errors in release-publish executor (#35782, #35235)
    • misc: multi-version compliance for @nx/express, @nx/node, and @nx/nest (#35807)
    • release: skip expensive changelog operations when changelogs are disabled (#35405)
    • release: scope fallback to project history for new packages (#35323)
    • release: require docker config for docker versioning (#35841)
    • repo: rename publish VERSION env var to avoid MSBuild leak (#35849)
    • testing: enforce jest 29-30 multi-version compliance for @nx/jest (#35758)
    • vite: enforce multi-version support windows for @nx/vite and @nx/vitest (#35671)

    ⚠️ Breaking Changes

    • vite: deprecate the nxViteTsPaths and nxCopyAssetsPlugin helpers (#35664)
    • testing: remove deprecated skipSetupFile and setupFile jest options (#35588) The setupFile option of the @nx/jest:jest executor and the skipSetupFile option of the @nx/jest:configuration generator are removed.

    ❤️ Thank You

    • Claude
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • llwt @llwt
    • Miroslav Jonaš @meeroslav
    • Olawuni Olagoke @olagokemills
    • Steven Nance
    • Thiago Zanluca @zanlucathiago
    • Thomas Dekiere @thdk
    Open source →
  41. 23.0.0-beta.211 Jun 2026pre-release
    Release notes

    23.0.0-beta.21 (2026-05-29)

    🚀 Features

    • module-federation: deprecate old generators and add new consumer/provider generators (#35825)

    🩹 Fixes

    • angular-rspack: apply multi-version compliance to @nx/angular-rspack(-compiler) (#35806)
    • core: allow nx build scripts in generated pnpm-workspace.yaml (#35564)
    • core: update tmp to 0.2.6 due to CVE-2026-44705 (#35813)
    • core: correct nx migrate commit-tally undercount and consolidate outcome state (#35820)
    • linter: multi-version support compliance for @nx/eslint and @nx/eslint-plugin (#35811, #35806)
    • storybook: multi-version support compliance (#35770)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jack Stevenson
    • Leosvel Pérez Espinosa @leosvelperez
    • Miroslav Jonaš @meeroslav
    Open source →
  42. 23.0.0-beta.2027 May 2026pre-release
    Release notes

    23.0.0-beta.20 (2026-05-27)

    🚀 Features

    • core: add agentic mode to nx migrate --run-migrations (#35718)

    🩹 Fixes

    • core: update brace-expansion and yaml (#35790)

    ❤️ Thank You

    • Jack Hsu @jaysoo
    • Leosvel Pérez Espinosa @leosvelperez
    • leosvelperez @leosvelperez
    Open source →
  43. 23.0.0-beta.1923 May 2026pre-release
    Release notes

    23.0.0-beta.19 (2026-05-22)

    🚀 Features

    • js: support pnpm 11.2.2 (#35772)
    • ⚠️ misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)

    🩹 Fixes

    • bundling: multi-version support compliance for @nx/esbuild (#35768)
    • core: always set task.cache as an explicit boolean (#35778)
    • nx-plugin: plugin lint checks should use dependentTasksOutputFiles (#35755)
    • repo: run dotnet restore before publish (#35771)
    • repo: run dotnet restore before macos e2e job (#35774)
    • testing: publish @nx/vitest, @nx/cypress, @nx/playwright, @nx/vite from local dist (#35743)

    ⚠️ Breaking Changes

    • misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)

    ❤️ Thank You

    • Claude
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • jaysoo @jaysoo
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  44. 23.0.0-beta.1822 May 2026pre-release
    Release notes

    23.0.0-beta.18 (2026-05-22)

    🚀 Features

    • core: add shell tab-completion (bash, zsh, fish, powershell) (#34951)
    • ⚠️ misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)

    🩹 Fixes

    • angular: only add @oxc-project/runtime on the vitest-analog path (#35734)
    • core: detect vscode copilot ai agent (#35757)
    • core: allow local plugin subpath imports without custom conditions (#35751, #35631)
    • dotnet: include Directory.. files in inputs (#35738)
    • js: fall back to npm publish when bun publish fails with auth error (#35756)
    • js: multi-version support compliance (#35725)
    • repo: run dotnet restore before publish (#35771)

    ⚠️ Breaking Changes

    • misc: drop deprecated webpack plugin re-exports + v23 polish (#35659)

    ❤️ Thank You

    • Benjamin Staneck @Stanzilla
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • jaysoo @jaysoo
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  45. 23.0.0-beta.1719 May 2026pre-release
    Release notes

    23.0.0-beta.17 (2026-05-19)

    🚀 Features

    • misc: convert prompt generator migrations to use prompt field (#35688)

    🩹 Fixes

    • core: resolve local plugin subpath imports from source (#35631)
    • core: treat undefined task parallelism as parallel when scheduling (#35736)
    • core: handle object form of bin field in getPrettierPath (#35680)
    • js: always register transpiler for registerTsProject so subsequent require(file) will work (#35735)
    • ⚠️ linter: migrate @nx/eslint and @nx/eslint-plugin to local dist build (#35720)
    • misc: skip $ escaping in file paths on windows (#35692)
    • rsbuild: infer build outputs from distPath.root directly (#35707)

    ⚠️ Breaking Changes

    • linter: migrate @nx/eslint and @nx/eslint-plugin to local dist build (#35720)

    ❤️ Thank You

    • AgentEnder @AgentEnder
    • Artur @arturovt
    • Copilot @Copilot
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • leosvelperez @leosvelperez
    Open source →
  46. 23.0.0-beta.1617 May 2026pre-release
    Release notes

    23.0.0-beta.16 (2026-05-17)

    🚀 Features

    • core: enable native Node.js TypeScript stripping by default (#35608)

    🩹 Fixes

    • ⚠️ testing: migrate @nx/jest to local dist build (#35713)

    ⚠️ Breaking Changes

    • testing: migrate @nx/jest to local dist build (#35713)

    ❤️ Thank You

    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    Open source →
  47. 23.0.0-beta.1516 May 2026pre-release
    Release notes

    23.0.0-beta.15 (2026-05-16)

    🩹 Fixes

    • core: restore nx/src/index entrypoint for Nx Cloud client compatibility (#35712, #35708)

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    Open source →
  48. 23.0.0-beta.1416 May 2026pre-release
    Release notes

    23.0.0-beta.14 (2026-05-16)

    🩹 Fixes

    • ⚠️ core: remove deprecated initTasksRunner API (#35708, #29993)
    • core: do not drop target defaults in 23.0.0 array migration (#35711)
    • js: add backwards-compatible ./src/internal export shim for conformance@4/5 (#35710, #11347)

    ⚠️ Breaking Changes

    • core: remove deprecated initTasksRunner API (#35708, #29993) ** The deprecated initTasksRunner export is removed from the nx package. Consumers should use runDiscreteTasks / runContinuousTasks instead.

      Related Issue(s)

      Internal: NXC-4307

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    Open source →
  49. 23.0.0-beta.1316 May 2026pre-release
    Release notes

    23.0.0-beta.13 (2026-05-15)

    🚀 Features

    • core: rename nx watch --includeDependentProjects to --includeDependencies (#35699)
    • core: support filtered array-shape targetDefaults with projects and source (#35340)
    • linter: allow prompt-only entries in migration nx-plugin-checks (#35700, #35638)
    • ⚠️ release: drop deprecated releaseTag* flat properties and update v23 defaults (#35694)

    🩹 Fixes

    • core: use native graceful process tree shutdown (#33655, #32438)
    • core: warn instead of silently dropping legacy 'self'/'dependencies' dependsOn values (#35687, #35648)
    • core: preserve input order in createNodes plugin results (#35595)
    • gradle: pin generated e2e project toolchain to installed JDK (#35703)
    • js: build to local dist and use nodenext (#35538)
    • rspack: multi-version support compliance for @nx/rspack and @nx/rsbuild (#35676)

    ⚠️ Breaking Changes

    • release: drop deprecated releaseTag* flat properties and update v23 defaults (#35694)

    ❤️ Thank You

    • AI-JamesHenry @AI-JamesHenry
    • Alex
    • Claude Opus 4.6
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  50. 23.0.0-beta.1214 May 2026pre-release
    Release notes

    23.0.0-beta.12 (2026-05-14)

    🚀 Features

    • core: support prompt field in migration entries (#35638)

    🩹 Fixes

    • core: improve nx migrate multi-major flag handling and feedback (#35673, #35497, #35444)
    • linter: only rewrite workspace-package peer deps to workspace:* (#35423, #35318, #33417)
    • misc: stop inferring projects: 'self' in dependsOn entries (#35686)
    • testing: multi-version support compliance for @nx/cypress (#35670)
    • testing: correct yargs-parser import in getJestProjectsAsync (#35672, #35654)

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  51. 23.0.0-beta.1113 May 2026pre-release
    Release notes

    23.0.0-beta.11 (2026-05-13)

    🩹 Fixes

    • core: freshness-gate daemon recompute + per-OS force-flush grace (#35650, #35646)
    • gradle: add transitive:true to all tasks (#35677)

    ❤️ Thank You

    • FrozenPandaz @FrozenPandaz
    • Jason Jean @FrozenPandaz
    • Louie Weng @lourw
    Open source →
  52. 23.0.0-beta.1013 May 2026pre-release
    Release notes

    23.0.0-beta.10 (2026-05-13)

    🚀 Features

    • ⚠️ bundling: remove SVGR option and provide withSvgr migration (#35611)
    • bundling: add Vite 7 -> 8 migrations (#35614)
    • core: add --mode and --multi-major-mode flags to nx migrate (#35497)
    • ⚠️ misc: remove deprecated js option from component generators (#35616, #29111)
    • testing: bump cypress to 15.14 + remove stale Vite 8 guard (#35613)
    • testing: add migration for Jest 30 snapshot guide link (#35629)

    🩹 Fixes

    • angular: multi-version support compliance (#35587)
    • angular-rspack: exclude eslint config from tailwind v4 source scan (#35663)
    • core: support skipped batch tasks end-to-end and fix TUI double logs (#35617)
    • core: keep TUI task selection on the in-progress section (#35640)
    • core: drain in-flight notify events in daemon force_flush_pending (#35646, #35630)
    • ⚠️ core: drop legacy 'self'/'dependencies' magic strings in dependsOn (#35648, #4017)
    • core: correct TUI sidebar viewport height off-by-one (#34682)
    • core: allow nx mcp to run outside of an Nx workspace (#35655)
    • core: warn before installing unknown npm packages as preset (#35644)
    • gradle: support Windows file paths (#35184, #34987)
    • linter: improve convert-to-flat-config output fidelity (#35330)
    • misc: vite migration import fix and ai doc corrections (#35647)
    • testing: correct paths and reserve ports across flaky React MF e2e tests (#35633, #34148, #32948, #35325)
    • testing: multi-version support compliance for @nx/playwright (#35642)
    • testing: exclude dist and out-tsc from default jest module path scan (#35619)

    ⚠️ Breaking Changes

    • misc: remove deprecated js option from component generators (#35616, #29111)
    • core: drop legacy 'self'/'dependencies' magic strings in dependsOn (#35648, #4017)
    • bundling: remove SVGR option and provide withSvgr migration (#35611)

    ❤️ Thank You

    • Adam Keenan @adamk33n3r
    • Amp
    • Charlie Croom
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Max Kless
    Open source →
  53. 23.0.0-beta.98 May 2026pre-release
    Release notes

    23.0.0-beta.9 (2026-05-08)

    🚀 Features

    • ⚠️ angular: remove deprecated ngrx generator (#35567)
    • misc: drop Node 20 support and bump @types/node (#35591)
    • ⚠️ misc: deprecate executors with inferred-plugin replacements (#35576, #35517)
    • ⚠️ vite: remove vitest support in favor of @nx/vitest (#35517)

    🩹 Fixes

    • angular-rspack: keep root-scoped assets out of per-locale i18n emit (#35621)
    • core: skip handleimport miss path when nx key packages are absent (#35596)
    • core: use gethostuuid(3) instead of ioreg on macOS (#35599)
    • core: isolate cache env vars in splitArgs spec (#35584)
    • core: enable node's native v8 compile cache support (#35415, #20454)
    • core: error with helpful error instead of looping nx invocations (#34820)
    • devkit: exclude dist from jest module path scan (#35615)
    • gradle: exclude project-graph from jest module path scan (#35609)
    • linter: prevent ENOENT crash in getRelativeImportPath for unresolvable paths (#35007, #13872, #34066, #30491, #16716, #35006, #21889, #32190)
    • maven: widen runCLI timeout for --no-batch maven.test.ts cases (#35589)
    • release: restore packages/devkit/package.json after release (#35598, #34946)
    • repo: drop node 26 from nightly matrix until playwright/yauzl fix (#35626, #40724, #168)
    • testing: pin jest to ~30.3.0 to avoid jest-runtime 30.4 RN incompat (#35618)
    • testing: handle absolute cypress screenshotsFolder/videosFolder paths (#35624)

    ⚠️ Breaking Changes

    • misc: deprecate executors with inferred-plugin replacements (#35576, #35517)
    • angular: remove deprecated ngrx generator (#35567) The @nx/angular:ngrx generator has been removed. Use @nx/angular:ngrx-root-store for root state and @nx/angular:ngrx-feature-store for feature state instead.
    • vite: remove vitest support in favor of @nx/vitest (#35517)

    ❤️ Thank You

    • AgentEnder @AgentEnder
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • jaysoo @jaysoo
    • Leosvel Pérez Espinosa @leosvelperez
    • Sharon Lougheed
    Open source →
  54. 23.0.0-beta.86 May 2026pre-release
    Release notes

    23.0.0-beta.8 (2026-05-06)

    🚀 Features

    • ⚠️ bundling: drop legacy typescript plugin and align rollup buildLibsFromSource default (#35516)

    🩹 Fixes

    • core: update minimatch to 10.2.5 (#35569, #34660)
    • core: restore use-legacy-versioning shim for @nx/js@21 ensurePackage path (#35574)
    • core: isolate NX_PARALLEL env var in parallel-related specs (#35579)
    • core: bump axios to 1.16.0 for all packages (#35568)
    • dotnet: correct output paths for Web SDK and centralized dist setups (#35398)
    • repo: resolve graph-client build-client sandbox violations (#35522)

    ⚠️ Breaking Changes

    • bundling: drop legacy typescript plugin and align rollup buildLibsFromSource default (#35516)

    ❤️ Thank You

    • beeman
    • Claude
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Optischa @Optischa
    Open source →
  55. 23.0.0-beta.75 May 2026pre-release
    Release notes

    23.0.0-beta.7 (2026-05-05)

    🩹 Fixes

    ❤️ Thank You

    • FrozenPandaz @FrozenPandaz
    • Jason Jean @FrozenPandaz
    Open source →
  56. 23.0.0-beta.65 May 2026pre-release
    Release notes

    23.0.0-beta.6 (2026-05-05)

    🚀 Features

    • ⚠️ detox: deprecate the @nx/detox build and test executors (#35529)
    • devkit: migrate @nx/devkit/src/... deep imports (#35541, #34946)
    • ⚠️ testing: deprecate the @nx/cypress:cypress executor (#35531, #35529)

    🩹 Fixes

    • core: unique telemetry user_id; expose workspace_id dimension (#35553)
    • core: use workspace root for package manager detection in script targets (#35550, #35116)
    • devkit: drop build-base outputs override (#35542, #34946)
    • js: include transitive workspace deps in pruned pnpm lockfile (#35532, #35347, #34655)
    • maven: serialize Maven 4 build state recording (#35555)
    • misc: adopt PluginCache across createNodes plugins to prevent flaky cache parse errors (#35544)

    ⚠️ Breaking Changes

    • testing: deprecate the @nx/cypress:cypress executor (#35531, #35529)
    • detox: deprecate the @nx/detox build and test executors (#35529)

    ❤️ Thank You

    • FrozenPandaz @FrozenPandaz
    • Jason Jean @FrozenPandaz
    • MaxKless @MaxKless
    Open source →
  57. 23.0.0-beta.54 May 2026pre-release
    Release notes

    23.0.0-beta.5 (2026-05-01)

    🚀 Features

    • gradle: stream batch task results to nx as they finish (#35487)
    • nx-dev: track docs analytics for code copy, LLM prompt, YouTube (#35526)

    🩹 Fixes

    • nx-dev: short-circuit bot probes in framer rewrite edge function (#35527)

    ❤️ Thank You

    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    Open source →
  58. 23.0.0-beta.430 Apr 2026pre-release
    Release notes

    23.0.0-beta.4 (2026-04-30)

    🚀 Features

    • ⚠️ angular: remove deprecated @nx/angular/module-federation entry point (#35512)
    • ⚠️ angular: remove deprecated move generator (#35513)
    • core: show target uses task graph + filter broken dependsOn during normalization (#35367)

    🩹 Fixes

    • core: correctly classify same-second in-place updates in macOS watcher (#35514)
    • core: restore deprecated allWorkspaceFiles on WorkspaceFileMap (#35518, #34425, #35502)
    • core: ensure verbose logs go to stderr and daemon logs are properly decorated (#34358)
    • core: show flaky-task count in run summary (#35491)
    • js: reference vitest.config in eslint dep-checks for vitest libs (#35460, #33670, #35450)
    • maven: skip attached artifacts that fail to materialize in batch record (#35473)
    • nx-dev: document nested CLI subcommands beyond two levels (#35519)

    ⚠️ Breaking Changes

    • angular: remove deprecated move generator (#35513) The @nx/angular:move generator is removed. Use @nx/workspace:move (or its mv alias) instead.
    • angular: remove deprecated @nx/angular/module-federation entry point (#35512) The @nx/angular/module-federation entry point is removed. Update imports to use @nx/module-federation/angular instead. The update-23-0-0-update-with-module-federation-import migration handles this automatically when running nx migrate.

    ❤️ Thank You

    • AgentEnder @AgentEnder
    • Craigory Coppola @AgentEnder
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  59. 23.0.0-beta.330 Apr 2026pre-release
    Release notes

    23.0.0-beta.3 (2026-04-30)

    🩹 Fixes

    • core: preserve hydrateFileMap back-compat for cached nx-cloud workers (#35502, #34425)
    • gradle: exclude batch-runner from jest haste-map crawl (#35501)

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    Open source →
  60. 23.0.0-beta.229 Apr 2026pre-release
    Release notes

    23.0.0-beta.2 (2026-04-29)

    🚀 Features

    • ⚠️ misc: remove Tailwind CSS setup-tailwind generators (#35049)
    • ⚠️ misc: remove deprecated stylesheet options from generators (#35103)

    🩹 Fixes

    • angular: disable vitest watch by default (#35493)
    • bundling: include tsconfig solution input for rollup (#35476)
    • bundling: include tsconfig solution input for webpack (#35477, #35476)
    • core: keep continuous children alive when nx:noop orchestrator completes (#35388)
    • core: start TUI event reader synchronously in enter() to prevent stdin race (#35465, #34619, #34144)
    • core: use require for global to local Nx handoff so Windows drive paths work (#35478)
    • core: prevent daemon shutdown from cache-poisoned in-process nx loads (#35482, #35444, #34463, #34111)
    • core: add provenance check in nx console status path (#35485)
    • core: skip target-defaults synthesis when defaults are incompatible with the specified target (#35486)
    • core: native watcher rewrite + daemon hardening for daemon-on e2e (#35204, #14, #19, #12, #13)
    • core: remove access control header from graph app (#35494)
    • js: strip glob from inferred outputs before resolving as path (#35463, #35452)
    • misc: exclude stories and specs from tailwind content scanning (#35470)
    • misc: resolve pnpm catalog: refs in version lookups (#35459, #35453)
    • nextjs: use cached project graph in withNx (#35475, #34518, #32880)
    • node: include tsconfig input in node-app esbuild scaffold (#35466)
    • react: withSvgr migration preserves other properties (#35484)
    • release: handle short and full project names in commit scopes (#34219)

    ⚠️ Breaking Changes

    • misc: remove deprecated stylesheet options from generators (#35103)
    • misc: remove Tailwind CSS setup-tailwind generators (#35049)

    ❤️ Thank You

    • Claude
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • MaxKless @MaxKless
    • ShwethaSundar
    Open source →