22.7.2 (2026-05-14)
🚀 Features
- gradle: stream batch task results to nx as they finish (#35487)
- nx-dev: track docs analytics for code copy, LLM prompt, YouTube (#35526)
- testing: add migration for Jest 30 snapshot guide link (#35629)
🩹 Fixes
- angular: disable vitest watch by default (#35493)
- angular-rspack: keep root-scoped assets out of per-locale i18n emit (#35621)
- bundling: include tsconfig solution input for rollup (#35476)
- bundling: include tsconfig solution input for webpack (#35477, #35476)
- core: bump axios to 1.16.0 for all packages (#35568)
- core: add provenance check in nx console status path (#35485)
- core: remove access control header from graph app (#35494)
- 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: 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: 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: 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: allow
nx mcpto run outside of an Nx workspace (#35655) - core: cast perf entries to PerformanceMeasure for detail access (43c0c821ba)
- devkit: exclude dist from jest module path scan (#35615)
- devkit: expand @nx/devkit/internal re-exports for cherry-picked v23 deep-import migration (#35541)
- dotnet: correct output paths for Web SDK and centralized dist setups (#35398)
- 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)
- 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)
- linter: prevent ENOENT crash in getRelativeImportPath for unresolvable paths (#35007, #13872, #34066, #30491, #16716, #35006, #21889, #32190)
- 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)
- nx-dev: document nested CLI subcommands beyond two levels (#35519)
- nx-dev: short-circuit bot probes in framer rewrite edge function (#35527)
- react: withSvgr migration preserves other properties (#35484)
- repo: clear NX_INVOCATION_ROOT_PID in run-native-target to avoid recursion false-positive (443dee0b22)
- repo: revert deep-import rewrites that targeted v23-only @nx/devkit/internal entry (ac8187963d)
- repo: unblock 22.7.x cargo tests and nx-build e2e (#34285)
- repo: expand "..." spread token in graph typecheck inputs (#34285, #35458)
- 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: exclude dist and out-tsc from default jest module path scan (#35619)
- testing: update remaining snapshot guide links missed by migration (cd350c1140)
❤️ Thank You
- Adam Keenan @adamk33n3r
- AgentEnder @AgentEnder
- beeman
- Claude
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Max Kless
- MaxKless @MaxKless
- Optischa @Optischa
- Sharon Lougheed