23.1.2
Fixed 18
- make webpack-related packages optional peer dependencies in angular
- keep buildable libraries private in angular
- stop builds crashing on non-array styleUrls in angular-rspack
- rebuild components when their templates or styles change on Windows in angular-rspack
- normalize resolved module paths in core
- stop pruneProjectGraph from mutating the source project graph in core
- make preset empty work without github.com and improve template download errors in core
- drain to stdout before exiting nx affected in core
- drain stdout before exiting nx run-many and nx run in core
- resolve main worktree root without a Windows verbatim prefix in core
- accept bun.lock lockfileVersion 2 and 3 in core
- maintain cacheability when an executor target default applies in core
- don't leave an unkillable nx process when a terminal closes in core
- honor the package manager's registry config in nx migrate in core
- resolve telemetry DNS in-process to avoid a getenv segfault in core
- skip target group members without a target in core
- port quoteShellArg helper for no-shell spawn fixes in core
- stop resending accumulated task hash results to the daemon when hashing tasks in core
Security 2
- update brace-expansion to 5.0.9 for CVE-2026-14257 in core
- restrict daemon and plugin worker socket access to the owning user in core
From Nx
23.1.2 (2026-08-26)
🩹 Fixes
- angular: make webpack-related packages optional peer dependencies (#36310)
- angular: keep buildable libraries private (#36545)
- angular-rspack: stop builds crashing on non-array styleUrls (#36550)
- angular-rspack: rebuild components when their templates or styles change on Windows (#36641, #36619)
- core: normalize resolved module paths (#36556, #36549)
- core: stop pruneProjectGraph from mutating the source project graph (#36517, #36470)
- core: make preset empty work without github.com and improve template download errors (#36508)
- core: drain to stdout before exiting
nx affected(#36569, #36568) - core: update brace-expansion to 5.0.9 for CVE-2026-14257 (#36577)
- core: restrict daemon and plugin worker socket access to the owning user (#36370)
- core: drain stdout before exiting nx run-many and nx run (#36607, #36606)
- core: resolve main worktree root without a Windows verbatim prefix (#36649, #35637)
- core: accept bun.lock lockfileVersion 2 and 3 (#36666)
- core: maintain cacheability when an executor target default applies (#36477)
- core: don't leave an unkillable nx process when a terminal closes (#36683, #36682)
- core: honor the package manager's registry config in nx migrate (#35954, #35843)
- core: resolve telemetry DNS in-process to avoid a getenv segfault (#36673)
- core: skip target group members without a target (#36711, #36712)
- core: port quoteShellArg helper for no-shell spawn fixes (a9e493bf5f)
- core: stop resending accumulated task hash results to the daemon when hashing tasks (#36716)
- core: apply package.json updates unblocked by later package groups (#36636)
- core: adapt held-updates spec to enquirer prompt shape (8fe6dab9d2)
- core: create external nodes for out-of-workspace link dependencies (#36745)
- core: point duplicate project names from worktrees at the fix (#36734)
- core: exclude volatile shell and editor env vars from the daemon (#36642, #36610)
- core: stop the daemon before nx add installs a package (#36767)
- devkit: honour cascading ignore files in tree walks and generator formatting (#36575)
- devkit: correct version floor validation for ranges and prereleases (#36724)
- docker: skip unchanged version action projects (#36542)
- expo: keep the expo dev server alive under jest (#36635)
- expo: derive metro projectRoot and node_modules from the app being bundled (#36650, #36531)
- gradle: emit valid Groovy when applying the plugin to an existing allprojects block (#36697)
- gradle: surface project graph timeout errors when the process ignores the kill signal (#36713)
- js: avoid duplicate node start without watch (#36695, #36694)
- js: resolve override selectors in affected detection (#36699, #36698)
- maven: stop running maven and gradle graph analysis through a shell (#36626)
- misc: move plugin internal imports to devkit/internal (#36430)
- misc: use workspaceRoot in workspaceModule path (#35142)
- misc: bump css-loader so npm can resolve rspack core 2 (#36643)
- misc: make generated code lint-clean under oxlint defaults (#36749)
- misc: de-flake the nx watch e2e suite (#36758)
- nextjs: stop installing unused Next.js ESLint packages from the library generator (#36779)
- nextjs: describe the library generator and export its server entry (#36776)
- nx-dev: keep the kb index working for uncommitted articles (#36588)
- nx-dev: update docs pricing link (#36625)
- react: make module federation packages optional peer dependencies (#36492)
- release: ignore deleted projects in historical affectedness (#36538)
- release: support custom conventional commit types (#36539)
- release: skip changelog resolution for unversioned projects (#36544)
- release: preserve package.json formatting (#36540)
- release: Don't attribute commits with no author email to
@find(#36526) - release: resolve out-of-set local dependency versions (#36334)
- repo: tell review-pr agents to compare base and HEAD with git (#36644)
- testing: reserve dev-server ports in the react-router e2e suite (#36585)
- testing: install typescript in npm e2e workspaces to keep tsquery off TypeScript 7 (#36478)
❤️ Thank You
- Aaron Thomas @ATKasem
- AgentEnder @AgentEnder
- AI-JamesHenry @AI-JamesHenry
- Aleksandr Lihih @sanshan
- ATKasem @ATKasem
- Austin Turner @paustint
- Caleb Ukle
- Craigory Coppola @AgentEnder
- David Johnson @djohnson-aperture
- driessamyn-sparta
- FrozenPandaz @FrozenPandaz
- Harsh Mathur @harshmathurx
- Jack Hsu @jaysoo
- Jamie Trip
- Jarred Sumner @Jarred-Sumner
- Jason Jean @FrozenPandaz
- Kevin @kevindcode
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicole Oliver
- Optischa @Optischa
- Tyler Kindy