The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.
Last release today
26 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
3 years old
1890 releases · first in 2023
Release timeline
1890 releases since 2023Releases
- 22.6.120 Mar 2026
Release notes
Open source →22.6.1 (2026-03-20)
🩹 Fixes
- 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)
- gradle: remove annotations from atomizer (#34871)
- js: normalize cwd path separator in typescript plugin targets (#34911)
- js: preserve tsconfig fields in typescript plugin cache (#34908)
- linter: detect require() calls in enforce-module-boundaries rule (#34896, #34096)
- linter: use native nx.configs in convert-to-flat-config for Nx plugins (#34897, #31736)
- linter: convert project-level eslint configs and log when skipped (#34899, #29458)
- linter: use root config to determine ESLint class in plugin (#34900, #32110)
- nx-dev: resolve changelog page 500 error (#34920, #34909)
- testing: handle undefined options in playwright preset (#34750)
- testing: gracefully handle broken jest configs in alias migration (#34901)
❤️ Thank You
- Caleb Ukle
- Claude Opus 4.6
- Claude Opus 4.6 (1M context)
- Craigory Coppola @AgentEnder
- Eric Baer
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- John Wiegert
- Juri Strumpflohner @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- lourw @lourw
- 22.6.018 Mar 2026
Release notes
Open source →22.6.0 (2026-03-18)
🚀 Features
- angular: add support for Angular v21.2 (#34592)
- core: update formatting of agent rules documentation (#33356)
- core: add nxVersion to meta in shortUrl for cnw (#34401)
- core: handle agentic sandboxing (#34402)
- core: extract sandbox detection into reusable utility (#34408)
- core: add negation pattern support for plugin include/exclude (#34160)
- core: add --stdin to affected options (#34435, #28770)
- core: support dependency filesets with ^{projectRoot} syntax (#34310)
- core: add agentic mode to nx init (#34418)
- core: automatically set up ai agents in cnw/init when run from within an ai agent (#34469)
- core: implement configure-ai-agents outdated message after tasks (#34463)
- core: improve codex support for configure-ai-agents (#34488)
- core: add --otp to top-level nx release command and detect EOTP errors (#34473)
- core: use static_vcruntime to avoid msvcrt dependency (#19781, #19779)
- core: add commands for debugging cache inputs / outputs (#34414)
- core: improve AX of configure-ai-agents with auto-detection (#34496)
- core: add AI agent mode to nx import (#34498)
- core: add preferBatch executor option (#34293)
- core: add --json flag for better AX to nx list (#34551)
- core: add passthrough for nx-cloud apply-locally command (#34557)
- core: add yarn berry catalog support (#34552)
- core: add explicit cloud opt-out to CNW (#34580)
- core: use jemalloc with tuned decay timers for native module (#34444, #99)
- core: add .nx/polygraph to gitignore in migration and caia (#34659)
- core: migrate napi-rs v2 to v3 (#34619)
- core: add Codex subagent support to configure-ai-agents (#34553)
- core: add polygraph command to initiaze cross-repo sessions (#34722)
- core: add safe plugin cache write utilities with LRU eviction (#34503)
- core: add analytics (#34144)
- core: persist analytics session ID across CLI invocations (#34763)
- core: centralize perf tracking and report metrics to telemetry (#34795)
- core: prompt for analytics preference during workspace creation (#34818)
- core: add task and project count telemetry via performance lifecycle (#34821)
- core: bring back cloud prompts and templates in CNW (#34887, #34671, #34818)
- devkit: add NX_SKIP_FORMAT environment variable to skip Prettier formatting (#34336, #30426, #30403)
- gradle: add properties and wrappers to inputs (#34778)
- js: support configurable typecheck config name (#34675)
- js: add deps-sync generator (#34407)
- maven: report external Maven dependencies in project graph (#34368)
- misc: update PLUGIN.md files to help agents verification (#34379)
- misc: lock in CNW variant 2 with deferred connection (#34416)
- misc: use caret range for swc dependencies in pnpm catalog (#34487, #34472)
- misc: track server page views for AI traffic using Netlify-Agent-Category (#34883)
- nx-dev: add YouTube channel callout to courses page (#34669)
- testing: add cacheDir option to playwright executor (#34413, #34397)
🩹 Fixes
- angular: use SASS indented syntax in nx-welcome component when style is sass (#34510, #33489)
- angular: preserve skipLibCheck in tsconfig.json for standalone projects (#34695, #34164)
- angular-rspack: exclude .json files from JS/TS regex patterns (#34195)
- angular-rspack: use relative path for postcss-cli-resources output (#34681, #34092)
- 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: make sure that mcp args aren't overridden when running configure-ai-agents (#34381)
- core: use a consistent batch id between scheduler and task runner (#34392)
- core: clean up stale socket files before listening (#34236, #34233)
- core: avoid dropping unrelated continuous deps in
makeAcyclic(#34389) - core: make runtime cache key deterministic (#34390)
- core: handle dangling symlinks during cache restore (#34396, #34013)
- core: hitting [1] or [2] should remove pinned panes if they match the current task (#34433, #34175)
- core: remove shellapi from winapi featureset to minimize AV false positives (#34208)
- core: handle Ctrl+C gracefully in configure-ai-agents (dd3b79ebf4)
- core: prevent staggered and duplicate lines in dynamic output (#34462)
- core: only pull configure-ai-agents from latest if local version is not latest (#34484)
- core: gate tui-logger init behind
NX_TUIenv var (#34426) - core: avoid blocking event loop during TUI PTY resize (#34385)
- core: use workspace root for path resolution when baseUrl is not set (#34453)
- core: replace buggy ignore-files trie with correct path-component gitignore matching (#34447)
- core: skip stale recomputations and prevent lost file changes in daemon (#34424)
- core: reduce terminal output duplication and allocations in task runner (#34427)
- core: commands shouldn't hang when passing --help (#34506)
- core: preserve existing source properties in claude plugin config (#34499)
- core: retry entire SQLite transaction on DatabaseBusy (#34533)
- core: show the correct status for stopped continuous tasks (#34226)
- 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)
- 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: 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)
- 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)
- core: add missing @nx/angular-rspack packages to nx packageGroup (#34743, #32772)
- core: batch-safe hashing for maven and gradle (#34446, #30949)
- 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)
- core: gate tui-logger init behind NX_TUI env var " (#34426, #34797)
- core: batch hashing, topological cache walk, and TUI batch fixes (#34798)
- core: fix TUI help text layout (#34754)
- core: preserve params and options when expanding wildcard dependsOn targets (#34822)
- core: add download-cloud-client to cloud command bypass list (#34788, #34746, #34728)
- core: add null guards for runningTasksService in WASM fallback (#34825, #34573)
- core: skip analytics prompt for cloud commands (#34789)
- core: ensure postTasksExecution fires on SIGINT for continuous tasks (#34623)
- core: ensure postTasksExecution fires on SIGINT for continuous tasks " (#34623, #34869)
- core: add .claude/settings.local.json to .gitignore (#34870)
- core: show continuous property in nx show target (#34867)
- core: detect npm from package-lock.json before falling back to invoking PM (#34877, #34691)
- core: trim memory usage associated with io-tracing service (#34866)
- core: ensure workers shutdown after phase cancelled (#34799)
- core: avoid overwhelming DB with connections during analytics init (#34881)
- core: gracefully handle missing package manager and invalid workspace for CNW (#34902)
- core: share .agents skills dir across codex, cursor, gemini (#34882)
- core: wrap CNW normalize args function in error handler (#34905)
- gradle: ensure that atomized task targets have dependsOn (#34611)
- gradle: use globs for dependent task output files (#34590)
- gradle: tee batch runner output to stderr for terminal display (#34630)
- gradle: use object format for dependsOn instead of shorthand strings (#34715)
- gradle: exclude non-JS gradle sub-projects from eslint plugin (#34735)
- gradle: ensure that ci test target depends on take overrides into account (#34777)
- gradle: handle project names containing .json substring (#34832, #34768)
- gradle: always check disk cache for gradle project graph reports (#34873)
- 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)
- js: strip catalogs from pruned pnpm lockfile (#34697, #34337)
- js: normalize paths to posix format in typescript plugin (#34702, #31232)
- js: derive tsbuildinfo filename from iterated tsconfig, not outer config (#34738, #34737)
- js: include tsbuildinfo in dependentTasksOutputFiles for tsc tasks (#34733)
- 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)
- js: support bun-only environments in release-publish executor (#34835)
- js: skip npm dist-tag add when no new version was resolved (#34843)
- js: track tsconfig files from dependency reference chain as inputs (#34848)
- linter: support eslint v10 (#34534, #34415)
- linter: allow for wildcards paths in enforce-module-boundaries rule (#34066, #32190)
- linter: add catalog: references when fixing missing dependencies (#34734)
- maven: use module-level variable for cache transfer between createNodes and createDependencies (#34386)
- maven: correctly map between maven locators and nx project names (#34366)
- maven: write output after each task in batch mode to ensure correct files are cached (#34400)
- maven: fix set the pom file without changing base directory (#34182, #34181)
- maven: synchronize batch runner invoke() to prevent concurrent access (#34600)
- maven: use mutable lists for Maven session projects (#34834, #34758)
- misc: rewrite Framer URLs to nx.dev in HTML responses (#34445)
- misc: prevent nxCloudId from being generated for new workspaces (#34532)
- misc: bump minimatch to 10.2.1 to address CVE-2026-26996 (#34509, #34507)
- misc: update maven & gradle icons to java duke icon (#34508)
- 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 (#34703)
- misc: address security CVE cluster (copy-webpack-plugin, koa, minimatch) (#34708, #34632, #34621, #34701)
- module-federation: use sslKey instead of sslCert for pathToKey (#34824, #34811)
- nextjs: reset daemon client after project graph creation in withNx (#34518, #32880)
- nuxt: bump nuxt to 3.21.1 to resolve critical audit vulnerability (#34783)
- nuxt: fix E2E test environment and lint issues (#34808)
- nx-cloud: allow download-cloud-client to work outside nx workspaces (#34746)
- nx-cloud: download light client to tmp dir when outside nx workspace (#34805)
- nx-dev: improve plugin registry visibility (#34395)
- nx-dev: add missing nx-cloud intro in sidebar (#34403)
- nx-dev: clarify project linking for workspaces (#34405)
- nx-dev: use shared preview url for netlify deploy (#34467)
- nx-dev: widen search dialog (#34504)
- nx-dev: update breadcrumb links to match sidebar (#34500)
- nx-dev: correct interpolate sub command for cli reference (#34585)
- nx-dev: move redirects from Next.js config to Netlify _redirects (#34612)
- nx-dev: adding missing legacy route redirects (#34772)
- nx-dev: remove nx-cloud paths from Framer excluded URL rewrites (#34852)
- nx-dev: cross site link checks working as expected (#34685)
- nx-dev: add clickjacking protection headers to Netlify configs (#34893)
- release: remove unnecessary number from release return type (#34481)
- release: allow null values in schema of dockerVersion (#34171)
- release: add null-safe fallback for version in createGitTagValues (#34598, #34382, #33890, #34391)
- release: skip indirect patch bump for commit types with semverBump "none" (#34841)
- release: include dependent projects in release commit message when using --projects filter (#34845)
- release: deduplicate projects in changelog when using filtered project list (#34851)
- repo: use sudo for global npm install in publish workflow (#34409)
- repo: replace addnab/docker-run-action with direct docker run (#34448)
- repo: revert sudo for global npm install in publish workflow (#34451, #34409)
- repo: fix e2e CI failures from Node 22.12 incompatibility (#34501)
- repo: remove chalk from e2e tests (#34570)
- repo: reset package.json files after local release (#34648)
- repo: remove redundant inputs override for build-base target (#34649)
- testing: use surgical text replacement in Jest matcher alias migration (#34350, #32062)
- testing: remove stale ci.yml from extras.test snapshot (#34690, #34332, #34616)
- testing: infer dependency tsconfig files as playwright plugin inputs (#34803)
- testing: infer task inputs from jest config file references (#34740)
- vite: isPreview=true for Vite Preview server (#34597)
- vite: skip root-relative paths in nxViteTsPaths resolveId (#34694, #34300)
- vite: pin vitest v4 to ~4.0.x to fix Yarn Classic resolution failure (#34878)
- vitest: respect reporters from target options in vitest executor (#34663, #34495)
- vitest: handle zoneless Angular apps in vitest configuration generator (#34700, #33983)
- ⚠️ vitest: resolve reportsDirectory against workspace root (#34720)
- webpack: ensure safe
process.envfallback replacement (#34464, #30826, #34460) - webpack: update e2e snapshot for vitest reportsDirectory change (#34766, #34720)
- webpack: cap less version to <4.6.0 to avoid ESM incompatibility (#34781)
- webpack: bump fork-ts-checker-webpack-plugin to 9.1.0 (#34826, #34404)
⚠️ Breaking Changes
- vitest: resolve reportsDirectory against workspace root (#34720)
❤️ Thank You
- Aaron Casanova
- AgentEnder @AgentEnder
- AI-JamesHenry @AI-JamesHenry
- Amp
- Andreas Hörnicke
- Anurag Agarwal @altaiezior
- anurag.ag @anuragagarwal561994
- barbados-clemens @barbados-clemens
- Benjamin Cabanes @bcabanes
- Benjamin Staneck @Stanzilla
- Brett Burley
- Caleb Ukle
- Charlie Croom
- Chau Tran @nartc
- Claude
- Claude Opus 4.5
- Claude Opus 4.6
- Claude Opus 4.6 (1M context)
- Claude Sonnet 4.5
- Colum Ferry @Coly010
- Coly010 @Coly010
- Copilot @Copilot
- Craigory Coppola @AgentEnder
- Eric Baer @baer
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jason Weinzierl @JasonWeinzierl
- Jay Bell
- Jesse Zomer
- Joel Lefkowitz
- Josh VanAllen @joshvanallen
- Juri @juristr
- Juri Strumpflohner @juristr
- Kai Gritun
- Leosvel Pérez Espinosa @leosvelperez
- leosvelperez @leosvelperez
- Loëck Vézien
- Louie Weng @lourw
- lourw @lourw
- Mathias Schopmans
- MaxKless @MaxKless
- meeroslav @meeroslav
- Miguel @mpsanchis
- Miroslav Jonaš @meeroslav
- Nelson Dominguez @ekkolon
- Nikola Kalinov @nkalinov
- omasakun @omasakun
- Ondrej Kelle @tondrej
- Samuel Briole
- Steven Nance
- Tomas Ptacek @faileon
- Victor Savkin @vsavkin
- 22.6.0-rc.217 Mar 2026pre-release
Release notes
Open source →22.6.0-rc.2 (2026-03-17)
🚀 Features
🩹 Fixes
- nx-dev: cross site link checks working as expected (#34685)
❤️ Thank You
- barbados-clemens @barbados-clemens
- Caleb Ukle
- Claude Opus 4.6
- Jack Hsu @jaysoo
- 22.6.0-rc.117 Mar 2026pre-release
Release notes
Open source →22.6.0-rc.1 (2026-03-17)
🚀 Features
- js: add deps-sync generator (#34407)
- misc: track server page views for AI traffic using Netlify-Agent-Category (#34883)
🩹 Fixes
- core: ensure postTasksExecution fires on SIGINT for continuous tasks " (#34623, #34869)
- core: add .claude/settings.local.json to .gitignore (#34870)
- core: show continuous property in nx show target (#34867)
- core: detect npm from package-lock.json before falling back to invoking PM (#34877, #34691)
- core: trim memory usage associated with io-tracing service (#34866)
- core: ensure workers shutdown after phase cancelled (#34799)
- core: avoid overwhelming DB with connections during analytics init (#34881)
- gradle: always check disk cache for gradle project graph reports (#34873)
- nx-cloud: download light client to tmp dir when outside nx workspace (#34805)
- vite: pin vitest v4 to ~4.0.x to fix Yarn Classic resolution failure (#34878)
❤️ Thank You
- Claude
- Claude Opus 4.6 (1M context)
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- lourw @lourw
- MaxKless @MaxKless
- Miroslav Jonaš @meeroslav
- Victor Savkin @vsavkin
- 22.6.0-rc.016 Mar 2026pre-release
Release notes
Open source →22.6.0-rc.0 (2026-03-16)
🩹 Fixes
- core: ensure postTasksExecution fires on SIGINT for continuous tasks " (#34623, #34869)
- core: add .claude/settings.local.json to .gitignore (#34870)
- nx-cloud: download light client to tmp dir when outside nx workspace (#34805)
❤️ Thank You
- Jason Jean @FrozenPandaz
- Victor Savkin @vsavkin
- 22.6.0-pr.34894.f87249119 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34876.84b745d19 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34876.039ddae17 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34866.93e888716 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34764.c1c3b2710 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34764.a95729610 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34764.868a8639 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34764.07d8b1510 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34746.a1e500d6 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34728.66566c05 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34722.ef1fe915 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34721.53ed28a6 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34630.341e0e326 Feb 2026pre-release
Nothing published for this version
- 22.6.0-pr.34619.1a7f4022 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34600.455e59026 Feb 2026pre-release
Nothing published for this version
- 22.6.0-pr.34591.64acf172 Mar 2026pre-release
Nothing published for this version
- 22.6.0-pr.34414.d0fddb919 Feb 2026pre-release
Nothing published for this version
- 22.6.0-pr.33655.b3efa094 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260317-b73cc6917 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260313-6b59e7413 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260311-e206a0d11 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260310-6326b9c10 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260309-4bb7c769 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260306-2cd3d586 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260306-18e47b36 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260304-e11be5d4 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260303-1a973ba3 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260302-923fc452 Mar 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260227-eb4988627 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260226-ac2ef1a26 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260225-dc81b8b25 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260224-6d9057224 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260223-dd325d723 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260220-df8a2c420 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260219-4ca3ee919 Feb 2026pre-release
Nothing published for this version
- 22.6.0-canary.20260218-18bfb0b18 Feb 2026pre-release
Nothing published for this version
- 22.6.0-beta.1416 Mar 2026pre-release
Release notes
Open source →22.6.0-beta.14 (2026-03-16)
🚀 Features
- core: prompt for analytics preference during workspace creation (#34818)
- core: add task and project count telemetry via performance lifecycle (#34821)
🩹 Fixes
- core: fix TUI help text layout (#34754)
- core: preserve params and options when expanding wildcard dependsOn targets (#34822)
- core: add download-cloud-client to cloud command bypass list (#34788, #34746, #34728)
- core: add null guards for runningTasksService in WASM fallback (#34825, #34573)
- core: skip analytics prompt for cloud commands (#34789)
- core: ensure postTasksExecution fires on SIGINT for continuous tasks (#34623)
- gradle: handle project names containing .json substring (#34832, #34768)
- js: support bun-only environments in release-publish executor (#34835)
- js: skip npm dist-tag add when no new version was resolved (#34843)
- js: track tsconfig files from dependency reference chain as inputs (#34848)
- maven: use mutable lists for Maven session projects (#34834, #34758)
- module-federation: use sslKey instead of sslCert for pathToKey (#34824, #34811)
- nx-dev: remove nx-cloud paths from Framer excluded URL rewrites (#34852)
- release: skip indirect patch bump for commit types with semverBump "none" (#34841)
- release: include dependent projects in release commit message when using --projects filter (#34845)
- release: deduplicate projects in changelog when using filtered project list (#34851)
- testing: infer dependency tsconfig files as playwright plugin inputs (#34803)
- testing: infer task inputs from jest config file references (#34740)
- webpack: bump fork-ts-checker-webpack-plugin to 9.1.0 (#34826, #34404)
❤️ Thank You
- AI-JamesHenry @AI-JamesHenry
- Benjamin Cabanes @bcabanes
- Caleb Ukle
- Claude Opus 4.6
- Jason Jean
- Joel Lefkowitz
- Leosvel Pérez Espinosa
- MaxKless @MaxKless
- 22.6.0-beta.1313 Mar 2026pre-release
Release notes
Open source →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.1211 Mar 2026pre-release
Release notes
Open source →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.119 Mar 2026pre-release
Release notes
Open source →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.106 Mar 2026pre-release
Release notes
Open source →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.94 Mar 2026pre-release
Release notes
Open source →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.6.0-beta.83 Mar 2026pre-release
Release notes
Open source →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.727 Feb 2026pre-release
Release notes
Open source →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
- core: support canonical SSH URLs when extracting GitHub user/repo slug during
- 22.6.0-beta.627 Feb 2026pre-release
Release notes
Open source →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.6.0-beta.526 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.5 (2026-02-26)
🚀 Features
- core: add explicit cloud opt-out to CNW (#34580)
🩹 Fixes
- 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)
- gradle: ensure that atomized task targets have dependsOn (#34611)
- gradle: use globs for dependent task output files (#34590)
- js: remove redundant vite.config.ts generation for vitest projects (#34603, #34399)
- nx-dev: move redirects from Next.js config to Netlify _redirects (#34612)
- vite: isPreview=true for Vite Preview server (#34597)
❤️ Thank You
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- Nikola Kalinov @nkalinov
- 22.6.0-beta.426 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.4 (2026-02-25)
🩹 Fixes
- angular-rspack: exclude .json files from JS/TS regex patterns (#34195)
- bundling: fix regression on process.env usage for webpack (#34583, #34279)
- core: show the correct status for stopped continuous tasks (#34226)
- 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)
- js: guard against undefined closest node in rehoistNodes (#34347, #34322)
- nx-dev: correct interpolate sub command for cli reference (#34585)
- 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)
❤️ Thank You
- Amp
- Caleb Ukle
- Charlie Croom
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Kai Gritun
- Leosvel Pérez Espinosa @leosvelperez
- Miguel @mpsanchis
- Miroslav Jonaš @meeroslav
- Tomas Ptacek @faileon
- 22.6.0-beta.324 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.3 (2026-02-24)
🚀 Features
- core: improve AX of configure-ai-agents with auto-detection (#34496)
- core: add AI agent mode to nx import (#34498)
- core: add preferBatch executor option (#34293)
- core: add --json flag for better AX to nx list (#34551)
- core: add passthrough for nx-cloud apply-locally command (#34557)
- core: add yarn berry catalog support (#34552)
🩹 Fixes
- angular: use SASS indented syntax in nx-welcome component when style is sass (#34510, #33489)
- 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)
- core: preserve existing source properties in claude plugin config (#34499)
- core: retry entire SQLite transaction on DatabaseBusy (#34533)
- js: use per-invocation cache in TS plugin to fix NX_ISOLATE_PLUGINS=false (#34566)
- misc: bump minimatch to 10.2.1 to address CVE-2026-26996 (#34509, #34507)
- misc: update maven & gradle icons to java duke icon (#34508)
- webpack: ensure safe
process.envfallback replacement (#34464, #30826, #34460)
❤️ Thank You
- Claude Opus 4.6
- Colum Ferry
- Jack Hsu
- Jason Jean
- Leosvel Pérez Espinosa
- Loëck Vézien
- Mathias Schopmans
- MaxKless @MaxKless
- Samuel Briole
- 22.6.0-beta.220 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.2 (2026-02-20)
🚀 Features
- core: add commands for debugging cache inputs / outputs (#34414)
🩹 Fixes
- core: commands shouldn't hang when passing --help (#34506)
- misc: prevent nxCloudId from being generated for new workspaces (#34532)
- nextjs: reset daemon client after project graph creation in withNx (#34518, #32880)
❤️ Thank You
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- 22.6.0-beta.120 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.1 (2026-02-19)
🚀 Features
🩹 Fixes
- core: skip stale recomputations and prevent lost file changes in daemon (#34424)
- core: reduce terminal output duplication and allocations in task runner (#34427)
- maven: write output after each task in batch mode to ensure correct files are cached (#34400)
- nx-dev: widen search dialog (#34504)
- nx-dev: update breadcrumb links to match sidebar (#34500)
- repo: fix e2e CI failures from Node 22.12 incompatibility (#34501)
❤️ Thank You
- Caleb Ukle
- Claude Opus 4.6
- Craigory Coppola @AgentEnder
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Ondrej Kelle @tondrej
- 22.6.0-beta.018 Feb 2026pre-release
Release notes
Open source →22.6.0-beta.0 (2026-02-18)
🚀 Features
- core: update formatting of agent rules documentation (#33356)
- core: add nxVersion to meta in shortUrl for cnw (#34401)
- core: handle agentic sandboxing (#34402)
- core: extract sandbox detection into reusable utility (#34408)
- core: add negation pattern support for plugin include/exclude (#34160)
- core: add --stdin to affected options (#34435, #28770)
- core: support dependency filesets with ^{projectRoot} syntax (#34310)
- core: add agentic mode to nx init (#34418)
- core: automatically set up ai agents in cnw/init when run from within an ai agent (#34469)
- core: implement configure-ai-agents outdated message after tasks (#34463)
- core: improve codex support for configure-ai-agents (#34488)
- core: add --otp to top-level nx release command and detect EOTP errors (#34473)
- devkit: add NX_SKIP_FORMAT environment variable to skip Prettier formatting (#34336, #30426, #30403)
- misc: update PLUGIN.md files to help agents verification (#34379)
- misc: lock in CNW variant 2 with deferred connection (#34416)
- misc: use caret range for swc dependencies in pnpm catalog (#34487, #34472)
- testing: add cacheDir option to playwright executor (#34413, #34397)
🩹 Fixes
- core: make sure that mcp args aren't overridden when running configure-ai-agents (#34381)
- core: use a consistent batch id between scheduler and task runner (#34392)
- core: clean up stale socket files before listening (#34236, #34233)
- core: avoid dropping unrelated continuous deps in
makeAcyclic(#34389) - core: make runtime cache key deterministic (#34390)
- core: handle dangling symlinks during cache restore (#34396, #34013)
- core: hitting [1] or [2] should remove pinned panes if they match the current task (#34433, #34175)
- core: remove shellapi from winapi featureset to minimize AV false positives (#34208)
- core: handle Ctrl+C gracefully in configure-ai-agents (dd3b79ebf4)
- core: prevent staggered and duplicate lines in dynamic output (#34462)
- core: only pull configure-ai-agents from latest if local version is not latest (#34484)
- core: gate tui-logger init behind
NX_TUIenv var (#34426) - core: avoid blocking event loop during TUI PTY resize (#34385)
- core: use workspace root for path resolution when baseUrl is not set (#34453)
- core: replace buggy ignore-files trie with correct path-component gitignore matching (#34447)
- maven: use module-level variable for cache transfer between createNodes and createDependencies (#34386)
- maven: correctly map between maven locators and nx project names (#34366)
- misc: rewrite Framer URLs to nx.dev in HTML responses (#34445)
- nx-dev: improve plugin registry visibility (#34395)
- nx-dev: add missing nx-cloud intro in sidebar (#34403)
- nx-dev: clarify project linking for workspaces (#34405)
- nx-dev: use shared preview url for netlify deploy (#34467)
- release: remove unnecessary number from release return type (#34481)
- repo: use sudo for global npm install in publish workflow (#34409)
- repo: replace addnab/docker-run-action with direct docker run (#34448)
- repo: revert sudo for global npm install in publish workflow (#34451, #34409)
❤️ Thank You
- Aaron Casanova
- AgentEnder @AgentEnder
- Andreas Hörnicke
- Benjamin Staneck @Stanzilla
- Brett Burley
- Caleb Ukle
- Claude Opus 4.5
- Claude Opus 4.6
- Claude Sonnet 4.5
- Colum Ferry @Coly010
- Coly010 @Coly010
- Craigory Coppola @AgentEnder
- Eric Baer @baer
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jay Bell
- Josh VanAllen @joshvanallen
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- meeroslav @meeroslav
- Miroslav Jonaš @meeroslav
- Steven Nance
- 22.5.44 Mar 2026
Release notes
Open source →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.5.326 Feb 2026
Release notes
Open source →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
- 22.5.220 Feb 2026
Release notes
Open source →22.5.2 (2026-02-20)
🚀 Features
- core: use static_vcruntime to avoid msvcrt dependency (#19781, #19779)
- misc: use caret range for swc dependencies in pnpm catalog (#34487, #34472)
🩹 Fixes
- core: handle Ctrl+C gracefully in configure-ai-agents (9128fcb66f)
- core: prevent staggered and duplicate lines in dynamic output (#34462)
- core: only pull configure-ai-agents from latest if local version is not latest (#34484)
- core: gate tui-logger init behind
NX_TUIenv var (#34426) - core: avoid blocking event loop during TUI PTY resize (#34385)
- core: use workspace root for path resolution when baseUrl is not set (#34453)
- core: replace buggy ignore-files trie with correct path-component gitignore matching (#34447)
- core: skip stale recomputations and prevent lost file changes in daemon (#34424)
- core: reduce terminal output duplication and allocations in task runner (#34427)
- core: commands shouldn't hang when passing --help (#34506)
- maven: write output after each task in batch mode to ensure correct files are cached (#34400)
- misc: rewrite Framer URLs to nx.dev in HTML responses (#34445)
- misc: prevent nxCloudId from being generated for new workspaces (#34532)
- nextjs: reset daemon client after project graph creation in withNx (#34518, #32880)
- nx-dev: use shared preview url for netlify deploy (#34467)
- nx-dev: widen search dialog (#34504)
- nx-dev: update breadcrumb links to match sidebar (#34500)
- release: remove unnecessary number from release return type (#34481)
- repo: fix e2e CI failures from Node 22.12 incompatibility (#34501)
❤️ Thank You
- Andreas Hörnicke
- Caleb Ukle
- Claude Opus 4.6
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jay Bell
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Ondrej Kelle @tondrej
- Steven Nance
- 22.5.113 Feb 2026
Release notes
Open source →22.5.1 (2026-02-13)
🚀 Features
- core: update formatting of agent rules documentation (#33356)
- core: add nxVersion to meta in shortUrl for cnw (#34401)
- core: handle agentic sandboxing (#34402)
- core: extract sandbox detection into reusable utility (#34408)
- core: add negation pattern support for plugin include/exclude (#34160)
- misc: update PLUGIN.md files to help agents verification (#34379)
- misc: lock in CNW variant 2 with deferred connection (#34416)
- testing: add cacheDir option to playwright executor (#34413, #34397)
🩹 Fixes
- core: make sure that mcp args aren't overridden when running configure-ai-agents (#34381)
- core: use a consistent batch id between scheduler and task runner (#34392)
- core: clean up stale socket files before listening (#34236, #34233)
- core: avoid dropping unrelated continuous deps in
makeAcyclic(#34389) - core: make runtime cache key deterministic (#34390)
- core: handle dangling symlinks during cache restore (#34396, #34013)
- core: hitting [1] or [2] should remove pinned panes if they match the current task (#34433, #34175)
- core: remove shellapi from winapi featureset to minimize AV false positives (#34208)
- maven: use module-level variable for cache transfer between createNodes and createDependencies (#34386)
- maven: correctly map between maven locators and nx project names (#34366)
- nx-dev: improve plugin registry visibility (#34395)
- nx-dev: add missing nx-cloud intro in sidebar (#34403)
- nx-dev: clarify project linking for workspaces (#34405)
- repo: use sudo for global npm install in publish workflow (#34409)
- repo: replace addnab/docker-run-action with direct docker run (#34448)
- repo: revert sudo for global npm install in publish workflow (#34451, #34409)
❤️ Thank You
- Benjamin Staneck @Stanzilla
- Brett Burley
- Caleb Ukle
- Claude Opus 4.5
- Claude Opus 4.6
- Claude Sonnet 4.5
- Colum Ferry @Coly010
- Coly010 @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Josh VanAllen @joshvanallen
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- meeroslav @meeroslav
- Miroslav Jonaš @meeroslav
- Steven Nance