npm @nx/angular 22.6.0

11 hours ago

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_TUI env 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 items is 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.env fallback 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

Don't miss a new angular release

NewReleases is sending notifications on new releases.