Releases: nrwl/nx
Releases · nrwl/nx
23.0.0-beta.1
23.0.0-beta.1 (2026-04-27)
🩹 Fixes
- 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)
- detox: generate valid JSON in .detoxrc for non-expo apps (bde1f18cef)
- js: include extended tsconfigs from project references in typecheck inputs (#35457)
- linter: detect root lint target added in same generator run (#35296, #23147, #34531)
- testing: convert executor-based jest.config.ts and preserve type-only imports (#35286, #34593)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
23.0.0-beta.0
23.0.0-beta.0 (2026-04-24)
🚀 Features
- core: add support for '...' as a spread token when merging target config (#34285)
🩹 Fixes
- core: remove redundant
allWorkspaceFilesfrom the project graph pipeline (#34425)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
- Leosvel Pérez Espinosa @leosvelperez
22.7.0
22.7.0 (2026-04-24)
🚀 Features
- core: add .nx/self-healing to .gitignore (#34855)
- core: decouple DB version from Nx version and share DB across worktrees (#34942)
- core: auto-open browser for Cloud setup URL during create-nx-workspace (#35014)
- core: allow generate command to skip project graph creation (#35170)
- core: remove polygraph cloud passthrough (#35153)
- 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)
- 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)
- core: add page up/down to tui shortcuts (#34525)
- core: add logging and progress message types to daemon (#35342)
- dotnet: add ci-workflow generator (#33321)
- js: support nx.sync.ignoredDependencies in typescript-sync (#35401)
- misc: a/b test cloud prompt copy in create-nx-workspace (#35039)
- misc: update nx init telemetry meta from CSV to JSON format (#35076)
- misc: lock in CNW cloud prompt A/B winner and add new variants (#35154)
- nx-dev: add conditional blog/changelog proxy in edge function (#35043)
- nx-dev: add nx-blog sitemap to root sitemap index (#35363)
- repo: add nx-labs repo target and use glob pattern for update-all-repos (#34999)
- repo: enable tsgo compiler for nx package (#35047)
- repo: enforce no-disabled-tests via ESLint with per-project warning caps (#35122)
- repo: add e2e test for nx build process verification (#35119)
- vite: add compiler option to vite plugin for tsgo support (#35429, #33821, #35047, #35167)
🩹 Fixes
- angular: update duplicate migration keys (#34961)
- angular: add storybook and playwright as implicit dependencies (#35224)
- 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: ensure rebuild chunks emitted summary accurate (#34979, #34936)
- 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)
- bundling: disable swc input source map resolution (#35010, #32671)
- bundling: bump esbuild for new projects to a version compatible with vite 8 (#35132)
- bundling: declare tsconfig.json as input for esbuild targets (#35432)
- core: skip analytics and DB connection when global bin hands off to local (#34914)
- core: properly quote shell metacharacters in CLI args passed to tasks (#34491, #32305, #26682)
- core: avoid redundant project graph requests in ngcli adapter (#34907)
- core: ensure postTasksExecution fires on SIGINT for continuous tasks (#34876, #34623, #34869)
- core: improve error handling in nx migrate registry fetching (#34926, #33014, #33135)
- core: remove CRA migration logic from nx init (#34912)
- core: pass collectInputs flag through daemon IPC for task hashing (#34915)
- core: prevent DB corruption from concurrent initialization (#34861)
- core: set windowsHide: true on all child process spawns (#34894, #34455)
- core: split-target should handle projects with colons in name better (#34725)
- core: prevent TUI crash when task output arrives after completion (#34785, #34677)
- core: respect --parallel limit for discrete task concurrency (#34721, #34117, #31494)
- core: use scroll-offset-based scrollbar positioning in TUI (#34689)
- core: skip import-equals namespace aliases in native scanner (#34947, #34644)
- core: include command name on all telemetry events (#34949)
- core: skip workspace context setup when global bin hands off to local (#34953, #34914)
- core: add explicit exports entry for nx/src/native directory (#34967, #34111)
- core: use upsert to prevent FK constraint violations in task DB (#34977)
- core: runtime inputs shouldn't be cached at task_hasher layer and filesets should be in the hash_plans layer (#34971, #30170)
- core: suppress postinstall error output when nx is not yet built (#34986)
- core: show better log message when isolated plugin shuts down after hook completion (#34922)
- core: handle owners and conformance project refs on move/remove (#34815)
- core: resolve published nx migrate package resolution (#35013, #34111)
- core: prevent batch executor error on prematurely completed tasks (#35015)
- core: add timeouts to GitHub push flow to prevent CLI hangs (#35011, #34482)
- core: prevent nx watch infinite loop from overly broad output globs (#34995)
- core: add package export for nx/release/changelog-renderer (#35033)
- 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)
- core: restore metadata table for telemetry session tracking (#35099)
- core: no-interactive should disable prompts during migrate (#35106)
- 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)
- *...
22.7.0-rc.2
22.7.0-rc.2 (2026-04-24)
🚀 Features
🩹 Fixes
- bundling: declare tsconfig.json as input for esbuild targets (#35432)
- core: allow --target/-t and -p flags for nx run with colon targets (#35394, #35098)
- core: make nx version lookup bundle-safe (#35430)
- core: restore top-level schemas/ in published nx package (#35427, #34111, #35109, #35411)
- core: wait for stdio drain before capturing task output (#35422, #35302)
- js: add npm workspace support to prune-lockfile executor (#35383, #33523)
- maven: honor settings.xml in Maven 3 batch runner (#35216)
- misc: remove process exit handlers when child process exits (#35279)
- nx-dev: remove broken header links (podcast) (#35410)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jeff Miller @jeff-miller-cfa
- Juri Strumpflohner @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Lucas Estevão
- MaxKless @MaxKless
- Seth Davenport @SethDavenport
22.7.0-rc.1
22.7.0-rc.1 (2026-04-23)
🚀 Features
- js: support nx.sync.ignoredDependencies in typescript-sync (#35401)
🩹 Fixes
- js: avoid double-prefixing node executor output paths (#35050, #35044, #33577)
- release: apply preid to dependent patch bumps (#35381, #33488)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Raashish Aggarwal @raashish1601
22.7.0-rc.0
22.7.0-beta.17
22.7.0-beta.17 (2026-04-22)
🚀 Features
- core: add logging and progress message types to daemon (#35342)
- nx-dev: add nx-blog sitemap to root sitemap index (#35363)
🩹 Fixes
- core: create process report on fatal error in .nx/workspace-data (#35193)
- core: improve native TypeScript type definitions (#35251)
- maven: log analyzer startup under verbose instead of stdout (#35361)
- misc: allow create-nx-workspace . --no-interactive in empty directory (#35281)
- testing: include config file path in plugin hash calculation (#35346)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Claude Opus 4.6
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jack Stevenson
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- mungodewar @mungodewar
22.7.0-beta.16
22.7.0-beta.16 (2026-04-21)
🩹 Fixes
- core: speed up nx --version by avoiding heavy imports (#35326)
- core: resolve native binary crash on aarch64 linux with 16K/64K page kernels (#35356, #145353, #6541, #1547, #1549, #35345)
- core: normalize spawned run-commands output (#35358)
- gradle: recognize Kotlin compile tasks in inferred input extensions (#35335)
- gradle: resolve sandbox violations in e2e-gradle tests (#35349, #35315)
- js: declare .d.cts/.d.mts as typecheck inputs and outputs (#35357)
- js: resolve build output dir from globbed outputs in node executor (#35288, #35041, #35198, #35301)
- module-federation: bump @module-federation/enhanced to ^2.3.3 (#35314, #35311)
- nx-dev: restore sitemap generation (#35351)
❤️ Thank You
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
22.7.0-beta.15
22.7.0-beta.15 (2026-04-17)
🩹 Fixes
- core: use v8 serialization in pseudo-IPC channel (#35332)
- core: recognize json inputs in TS task hasher fallback (#35334)
❤️ Thank You
- AgentEnder @AgentEnder
- Craigory Coppola @AgentEnder
22.7.0-beta.14
22.7.0-beta.14 (2026-04-17)
🚀 Features
- core: add page up/down to tui shortcuts (#34525)
🩹 Fixes
- core: allow controlling migrate fallback installation concurrency (#35312)
- core: support pnpm multi-document lockfiles (#35271)
- core: await queued processTask promises before cache.getBatch (#35322, #35172)
- repo: switch agent apt mirror to azure to avoid canonical sync races (#35324)
❤️ Thank You
- Ben Snyder
- Caleb Ukle
- Craigory Coppola @AgentEnder
- Jason Jean @FrozenPandaz
- Jay Bell
- Leosvel Pérez Espinosa @leosvelperez