NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4325 most downloaded on npm
Angular Schematics - CLI
Last release 3 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
1017 releases · first in 2018
decouple official Node.js support check from execution gate
| Commit | Description |
|---|---|
| decouple official Node.js support check from execution gate |
One column per quarter.
| Commit | Type | Description |
|---|---|---|
| f52fb536a1 | fix | decouple official Node.js support check from execution gate |
| Commit | Type | Description |
|---|---|---|
| c5b8bf0369 | feat | add library builder |
| feb41cc934 | feat | add polyfills option to unit-test builder |
| d09f98ee70 | fix | avoid top-level await for Zone.js injection in Vitest runner |
| a0a6b422cd | fix | ensure asset followSymlinks defaults to false |
| 69acf5b822 | fix | include dataurl option in global stylesheet config hash |
| 76dd17d522 | fix | re-analyze exports on package.json change in library builder |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.2.1"></a>
correctly parse inline boolean values in CLI options
| Commit | Description |
|---|---|
| correctly parse inline boolean values in CLI options (#34201) |
| Commit | Description |
|---|---|
| add browsers option to angular.json during vitest browser provider ng-add |
| Commit | Description |
|---|---|
| skip components with a change detection strategy in the zoneless migration tool |
| Commit | Description |
|---|---|
| correctly parse inline boolean values in CLI options (#34201) |
| Commit | Description |
|---|---|
| do not mark standalone expression statements as pure |
| Commit | Description |
|---|---|
| deduplicate spurious chokidar polling change events (#34188) | |
| encode script type in auto-CSP loader | |
| ensure @angular/compiler is loaded for Vitest TestBed initialization | |
| preserve nested workspace path for git worktree cache | |
| prevent chokidar from scanning unimported node_modules in watch mode | |
| reset component updates on dev-server SSR page request | |
| serve emitted HTML assets in dev-server | |
| watchers outside the workspace via parcel didn't work | |
| avoid loading compiler-cli and typescript in js transform worker | |
| avoid sharding intermediate files under worker surplus in i18n inliner | |
| bound aggregate worker allocation across dominant files in i18n inliner | |
| bound concurrent worker allocation for dominant files in i18n inliner | |
| process batch locales sequentially in i18n inliner worker |
| Commit | Type | Description |
|---|---|---|
| db053444e0 | fix | skip components with a change detection strategy in the zoneless migration tool |
| Commit | Type | Description |
|---|---|---|
| 663c580c86 | fix | add browsers option to angular.json during vitest browser provider ng-add |
| Commit | Type | Description |
|---|---|---|
| e6350b6f57 | fix | correctly parse inline boolean values in CLI options (#34201) |
| Commit | Type | Description |
|---|---|---|
| 516df4ee6d | fix | correctly parse inline boolean values in CLI options (#34201) |
| Commit | Type | Description |
|---|---|---|
| ac70f86208 | fix | do not mark standalone expression statements as pure |
| Commit | Type | Description |
|---|---|---|
| ec9c0b51c2 | fix | deduplicate spurious chokidar polling change events (#34188) |
| c1b5154180 | fix | encode script type in auto-CSP loader |
| cb4dd71a1b | fix | ensure @angular/compiler is loaded for Vitest TestBed initialization |
| b198044048 | fix | preserve nested workspace path for git worktree cache |
| 5194b41531 | fix | prevent chokidar from scanning unimported node_modules in watch mode |
| 37cf399d95 | fix | reset component updates on dev-server SSR page request |
| ddff42cb03 | fix | serve emitted HTML assets in dev-server |
| e3e893682d | fix | watchers outside the workspace via parcel didn't work |
| d55e899954 | perf | avoid loading compiler-cli and typescript in js transform worker |
| 3d08e5b053 | perf | avoid sharding intermediate files under worker surplus in i18n inliner |
| 5ea36fe8b8 | perf | bound aggregate worker allocation across dominant files in i18n inliner |
| 90ee193bd1 | perf | bound concurrent worker allocation for dominant files in i18n inliner |
| 41b353856b | perf | process batch locales sequentially in i18n inliner worker |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.2.0"></a>
deprecate splitting option in unit-test builder
| Commit | Description |
|---|---|
add --root command line option to mcp command |
|
| skip eager yargs help message formatting during command execution |
| Commit | Description |
|---|---|
| pre-compile critical CSS plans at build time |
The splitting option in the unit-test builder is deprecated as it is no longer needed with Vitest 5.
Disabling code splitting is no longer necessary with Vitest 5, as the issue where shared-module exports were uninitialized in class-field initializers under JSDOM has been resolved.
The splitting option in the unit-test builder is deprecated as it is no longer needed with Vitest 5.
Disabling code splitting is no longer necessary with Vitest 5, as the issue where shared-module exports were uninitialized in class-field initializers under JSDOM has been resolved.
| Commit | Type | Description |
|---|---|---|
| 41555dfb3 | feat | add --root command line option to mcp command |
| 6e7f809a7 | perf | skip eager yargs help message formatting during command execution |
| Commit | Type | Description |
|---|---|---|
| ad8271320 | feat | migrate Angular Linker to oxc-parser and magic-string |
| 175273931 | feat | Support splitting browser and server stats jsonfiles for easier consumption |
| fe2f180fd | fix | add automatic corruption recovery in SQLite cache store |
| 675f1f527 | fix | avoid pure comment pattern in oxc transform |
| d396324b4 | fix | default preloadInitial to false when serviceWorker is enabled |
| 7e5510e46 | fix | disable linker internal source mapping in OXC linker |
| 8504cfffc | fix | disable root config extension for inline test project |
| ee3041325 | fix | ensure chokidar watcher is ready before returning |
| 54d712f57 | fix | ensure parent directory exists in SQLite cache store |
| 80acd6236 | fix | execute setup file hooks for each spec file when coverage is enabled |
| 978351af7 | fix | include inline component stylesheets in referenced watch files |
| f47f77f5f | fix | only compile included test files in unit-test builder |
| 72dc9677c | fix | pass load cache to compiler plugin and escape extension regex in polyfills |
| 701bde481 | fix | preserve duplicate bundle filenames across output file types |
| e4111ae81 | fix | prevent memory leaks in parallel compilation and caches |
| 31c045639 | fix | prevent stale bundler caching and correctly resolve load cache |
| bad31421c | fix | prevent syntax corruption in linker and oxc transform |
| 0d9851600 | fix | recursively ignore output and cache paths in watch mode |
| 040bc21ec | fix | scope Sass package resolution caching for stylesheets in node_modules |
| 1fc273279 | fix | support parenthesized expressions in oxc linker |
| b423bc39c | fix | use chokidar watcher when followSymlinks is enabled |
| 87551ad5c | perf | avoid encoding intermediate source maps before remapping |
| 6ee559ca9 | perf | bypass worker dispatch for files without transform candidates |
| 0589edd9c | perf | consolidate component stylesheet bundling with shared load result cache |
| 482f6d8aa | perf | decouple diagnostic type checking from build start |
| a877aa7eb | perf | implement SharedArrayBuffer translation dictionaries for zero-copy worker access |
| f1cc95943 | perf | implement sliding-window batching and worker translation eviction |
| d97c8857c | perf | key Sass package resolutions without containing URL qualification |
| 5cd20e141 | perf | only reset Sass worker pool caches when stylesheet files change |
| 1c00edce0 | perf | optimize sourcemap stripping and loading with buffer fast path |
| 0ba4d8e29 | perf | reduce watcher debounce latency for faster incremental rebuilds |
| a6ef9cfbe | perf | replace watchpack with @parcel/watcher and chokidar |
| 4d11a1334 | perf | selectively compress large entries in SQLite cache store |
| 0a137f98d | perf | share sass directory and resolution caches across stylesheets |
| f4dad31cc | perf | unify Oxc linking and optimization AST traversal passes |
| 2b85529e8 | perf | use iterative post-order AST traversal for OXC transforms |
| ecbcd87b8 | perf | use native sass-embedded compiler daemon |
| ce83ac0e8 | perf | use size-weighted task heuristics in i18n inliner |
| d11a663e7 | perf | verify cache metadata before reading file and eliminate sqlite read-locks |
| 66bd6bd1e | refactor | deprecate splitting option in unit-test builder |
| Commit | Type | Description |
|---|---|---|
| 23e3d44a7 | perf | pre-compile critical CSS plans at build time |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.9"></a>
skip eager yargs help message formatting during command execution
| Commit | Description |
|---|---|
| skip eager yargs help message formatting during command execution |
| Commit | Type | Description |
|---|---|---|
| 6e7f809a7d | perf | skip eager yargs help message formatting during command execution |
| Commit | Type | Description |
|---|---|---|
| 978351af71 | fix | include inline component stylesheets in referenced watch files |
| 72dc9677cf | fix | pass load cache to compiler plugin and escape extension regex in polyfills |
| 31c045639e | fix | prevent stale bundler caching and correctly resolve load cache |
| d97c8857c1 | perf | key Sass package resolutions without containing URL qualification |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.2.0-next.7"></a>
deprecate splitting option in unit-test builder
| Commit | Description |
|---|---|
| add automatic corruption recovery in SQLite cache store | |
| avoid pure comment pattern in oxc transform | |
| default preloadInitial to false when serviceWorker is enabled | |
| disable root config extension for inline test project | |
| disable strictPort when port 0 is used in dev-server | |
| ensure parent directory exists in SQLite cache store | |
| use chokidar watcher when followSymlinks is enabled | |
| avoid full JSON parsing when updating sourcemap ignore list | |
| decouple diagnostic type checking from build start | |
| read rendered module length once per module in chunk optimizer (#34045) | |
| reduce watcher debounce latency for faster incremental rebuilds | |
| selectively compress large entries in SQLite cache store | |
| share sass directory and resolution caches across stylesheets | |
| verify cache metadata before reading file and eliminate sqlite read-locks | |
| deprecate splitting option in unit-test builder |
| Commit | Description |
|---|---|
| pre-compile critical CSS plans at build time |
The splitting option in the unit-test builder is deprecated as it is no longer needed with Vitest 5.
Disabling code splitting is no longer necessary with Vitest 5, as the issue where shared-module exports were uninitialized in class-field initializers under JSDOM has been resolved.
The splitting option in the unit-test builder is deprecated as it is no longer needed with Vitest 5.
Disabling code splitting is no longer necessary with Vitest 5, as the issue where shared-module exports were uninitialized in class-field initializers under JSDOM has been resolved.
| Commit | Type | Description |
|---|---|---|
| fe2f180fd0 | fix | add automatic corruption recovery in SQLite cache store |
| 675f1f5274 | fix | avoid pure comment pattern in oxc transform |
| d396324b4e | fix | default preloadInitial to false when serviceWorker is enabled |
| 8504cfffcf | fix | disable root config extension for inline test project |
| 5d21812aae | fix | disable strictPort when port 0 is used in dev-server |
| 54d712f579 | fix | ensure parent directory exists in SQLite cache store |
| b423bc39cd | fix | use chokidar watcher when followSymlinks is enabled |
| 5a0d226b7c | perf | avoid full JSON parsing when updating sourcemap ignore list |
| 482f6d8aab | perf | decouple diagnostic type checking from build start |
| f1afa603b4 | perf | read rendered module length once per module in chunk optimizer (#34045) |
| 0ba4d8e29c | perf | reduce watcher debounce latency for faster incremental rebuilds |
| 4d11a1334f | perf | selectively compress large entries in SQLite cache store |
| 0a137f98d0 | perf | share sass directory and resolution caches across stylesheets |
| d11a663e77 | perf | verify cache metadata before reading file and eliminate sqlite read-locks |
| 66bd6bd1ea | refactor | deprecate splitting option in unit-test builder |
| Commit | Type | Description |
|---|---|---|
| 23e3d44a7f | perf | pre-compile critical CSS plans at build time |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.24"></a>
isolate temporary package installations from parent Yarn workspace
| Commit | Description |
|---|---|
| isolate temporary package installations from parent Yarn workspace |
| Commit | Description |
|---|---|
| decode pathname when constructing server asset path | |
| ensure public directory containment in CommonEngine |
| Commit | Type | Description |
|---|---|---|
| b37c93329 | fix | isolate temporary package installations from parent Yarn workspace |
| Commit | Type | Description |
|---|---|---|
| 4b8c62a8f | fix | add splitting option to unit-test builder |
| 51565d4bc | fix | enable code splitting for vitest browser tests |
| 5b850fdfc | fix | fail build and exclude routes when prerendering fails |
| dfa7f03a9 | fix | keep dev-server Vite cache worktree-local |
| 135662d9a | fix | preserve binary values in the SQLite cache store |
| 701bde481 | fix | preserve duplicate bundle filenames across output file types |
| 6ee559ca9 | perf | bypass worker dispatch for files without transform candidates |
| 2b85529e8 | perf | use iterative post-order AST traversal for OXC transforms |
| ecbcd87b8 | perf | use native sass-embedded compiler daemon |
| ce83ac0e8 | perf | use size-weighted task heuristics in i18n inliner |
| Commit | Type | Description |
|---|---|---|
| 4fa81d403 | fix | decode pathname when constructing server asset path |
| bb72145f9 | fix | ensure public directory containment in CommonEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.7"></a>
ignore side-effect annotations in unit test builds
| Commit | Description |
|---|---|
| abort web request signal when node request is aborted |
| Commit | Type | Description |
|---|---|---|
| 4d0be683b7 | fix | ignore side-effect annotations in unit test builds |
| e4111ae818 | fix | prevent memory leaks in parallel compilation and caches |
| 62999cabf4 | perf | batch prerender routes and share in-memory server bundles |
| 0589edd9cd | perf | consolidate component stylesheet bundling with shared load result cache |
| a877aa7ebd | perf | implement SharedArrayBuffer translation dictionaries for zero-copy worker access |
| f1cc959439 | perf | implement sliding-window batching and worker translation eviction |
| f4dad31cce | perf | unify Oxc linking and optimization AST traversal passes |
| Commit | Type | Description |
|---|---|---|
| f8576e3c8b | fix | abort web request signal when node request is aborted |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.6"></a>
transform fail() to expect.fail() in refactor-jasmine-vitest
| Commit | Description |
|---|---|
| transform fail() to expect.fail() in refactor-jasmine-vitest |
| Commit | Description |
|---|---|
| enforce MCP roots in get_best_practices tool | |
| handle errors from isAllowedWorkspacePath in best-practices tool | |
| throw on out-of-roots workspace in best-practices tool |
| Commit | Type | Description |
|---|---|---|
| 34e1e0bb5 | fix | enforce MCP roots in get_best_practices tool |
| 2b060630c | fix | handle errors from isAllowedWorkspacePath in best-practices tool |
| 24fd8fce2 | fix | throw on out-of-roots workspace in best-practices tool |
| Commit | Type | Description |
|---|---|---|
| ce1b60f89 | fix | transform fail() to expect.fail() in refactor-jasmine-vitest |
| Commit | Type | Description |
|---|---|---|
| 175273931 | feat | Support splitting browser and server stats jsonfiles for easier consumption |
| 1ee0beca7 | fix | correct misleading error message for top-level await |
| 0ffe2d27f | fix | disable code splitting for unit test builds |
| 50994d76e | fix | preserve integrity and crossorigin in autoCsp loader |
| d6fd24320 | perf | traverse AST with iterative post-order walker in i18n inliner |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.5"></a>
generate CLAUDE.md for Claude Code instead of AGENTS.md
| Commit | Description |
|---|---|
| generate CLAUDE.md for Claude Code instead of AGENTS.md | |
| import UrlSegment instead of subPath in guard generator |
| Commit | Description |
|---|---|
| disable searching current directory for bare executable names on Windows | |
| serialize configuration as a single argv token in run_target strategies (#33657) | |
| avoid eager module loading during global bootstrap |
| Commit | Description |
|---|---|
| destroy platform when response stream is cancelled |
| Commit | Type | Description |
|---|---|---|
| 7106676e6 | fix | disable searching current directory for bare executable names on Windows |
| ecf8c0822 | fix | serialize configuration as a single argv token in run_target strategies (#33657) |
| 2e4dd90c3 | perf | avoid eager module loading during global bootstrap |
| Commit | Type | Description |
|---|---|---|
| 1161e6c99 | fix | generate CLAUDE.md for Claude Code instead of AGENTS.md |
| c536ae364 | fix | import UrlSegment instead of subPath in guard generator |
| Commit | Type | Description |
|---|---|---|
| 04b532772 | fix | count statically imported chunks in the initial total |
| 2274babb6 | fix | normalize setupFiles paths to POSIX for vitest runner |
| 199a864df | fix | prevent syntax corruption for Crockford-style enum IIFE |
| 0d9851600 | fix | recursively ignore output and cache paths in watch mode |
| 3eba6f726 | fix | return direct file contents for non-Angular TypeScript files |
| 3c7ac1518 | fix | return only lowest version per target engine |
| 3e9fed9a6 | fix | set target for Rolldown dependency prebundling in Vite dev server |
| 87551ad5c | perf | avoid encoding intermediate source maps before remapping |
| 194be2088 | perf | avoid encoding the inline source map before remapping |
| a55a6b78e | perf | batch last_accessed updates in sqlite cache store |
| 33b305416 | perf | hash the i18n inline cache key options once per locale |
| 1c00edce0 | perf | optimize sourcemap stripping and loading with buffer fast path |
| b6269a816 | perf | optimize template string size calculation in server manifest |
| a6ef9cfbe | perf | replace watchpack with @parcel/watcher and chokidar |
| 596847f89 | perf | share i18n translations with the inliner workers by reference |
| 19c91e48d | perf | use Map for chunk asset size lookups in budget calculator |
| Commit | Type | Description |
|---|---|---|
| 6a3446770 | fix | destroy platform when response stream is cancelled |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.4"></a>
disable linker internal source mapping in OXC linker
| Commit | Type | Description |
|---|---|---|
| 7e5510e464 | fix | disable linker internal source mapping in OXC linker |
| bad31421cb | fix | prevent syntax corruption in linker and oxc transform |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.2.0-next.1"></a>
add --root command line option to mcp command
| Commit | Description |
|---|---|
add --root command line option to mcp command |
|
| add packages with built-in schematics to devDependencies only | |
| always install package during ng add to inspect manifest on disk for schematics (#33718) | |
| correctly report available package updates during bare ng update | |
| discover migrations from installed packages when omitted by registry metadata (#33718) | |
| normalize Windows drive-letter casing for process.cwd |
| Commit | Description |
|---|---|
| migrate Angular Linker to oxc-parser and magic-string | |
| prevent build process hang on unhandled error (#33715) | |
| prevent IIFE wrapper interleaving for adjacent classes in minified files | |
| retain watch files on error in load result cache | |
| support case-insensitive and alternative license file names | |
| release build resources early in non-watch mode (#33715) |
| Commit | Description |
|---|---|
| settle writeResponseToNodeResponse when client disconnects | |
| avoid buffering request body when sanitizing headers |
| Commit | Type | Description |
|---|---|---|
| 41555dfb3b | feat | add --root command line option to mcp command |
| 035b9d5c9b | fix | add packages with built-in schematics to devDependencies only |
| 0ae5690c35 | fix | always install package during ng add to inspect manifest on disk for schematics (#33718) |
| 44ff584b33 | fix | correctly report available package updates during bare ng update |
| 1d4f9ebbe9 | fix | discover migrations from installed packages when omitted by registry metadata (#33718) |
| 25034f97ad | fix | normalize Windows drive-letter casing for process.cwd |
| Commit | Type | Description |
|---|---|---|
| ad8271320f | feat | migrate Angular Linker to oxc-parser and magic-string |
| 4fb12292c2 | fix | prevent build process hang on unhandled error (#33715) |
| abd8ec9f3e | fix | prevent IIFE wrapper interleaving for adjacent classes in minified files |
| bcadbbef20 | fix | retain watch files on error in load result cache |
| e1c7193dce | fix | support case-insensitive and alternative license file names |
| f4a0f846e7 | perf | release build resources early in non-watch mode (#33715) |
| Commit | Type | Description |
|---|---|---|
| b74eef889f | fix | settle writeResponseToNodeResponse when client disconnects |
| 33169801c6 | perf | avoid buffering request body when sanitizing headers |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.3"></a>
|  | support npm 12 metadata array and erro
| Commit | Type | Description |
|---|---|---|
| e148a8df93 | fix | support npm 12 metadata array and error formats |
| Commit | Type | Description |
|---|---|---|
| 6469b5f1f5 | fix | rewrite paths from sandboxed execroots when running under Bazel |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.0"></a>
update @types/node to a version vitest 5 accepts
| Commit | Type | Description |
|---|---|---|
| b94dabdb7 | fix | update @types/node to a version vitest 5 accepts |
| Commit | Type | Description |
|---|---|---|
| 5aaad0a13 | fix | name the unknown option in a schema validation error |
| Commit | Type | Description |
|---|---|---|
| bfec8bac4 | fix | support standard JavaScript MIME types and case insensitivity in auto-CSP |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.24"></a>
disable strictPort when port 0 is used in dev-server
| Commit | Description |
|---|---|
| disable strictPort when port 0 is used in dev-server | |
| avoid full JSON parsing when updating sourcemap ignore list | |
| read rendered module length once per module in chunk optimizer (#34045) |
| Commit | Type | Description |
|---|---|---|
| a6e30fa378 | fix | disable strictPort when port 0 is used in dev-server |
| 35a5d4aa49 | perf | avoid full JSON parsing when updating sourcemap ignore list |
| 48cc43cbf2 | perf | read rendered module length once per module in chunk optimizer (#34045) |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.7"></a>
isolate temporary package installations from parent Yarn workspace
| Commit | Description |
|---|---|
| isolate temporary package installations from parent Yarn workspace |
| Commit | Description |
|---|---|
| decode pathname when constructing server asset path | |
| ensure public directory containment in CommonEngine |
| Commit | Type | Description |
|---|---|---|
| e9db85c0f | fix | isolate temporary package installations from parent Yarn workspace |
| Commit | Type | Description |
|---|---|---|
| 1c9b1af61 | fix | add splitting option to unit-test builder |
| 4b861f458 | fix | enable code splitting for vitest browser tests |
| f1fd82381 | fix | fail build and exclude routes when prerendering fails |
| a84906fe3 | fix | keep dev-server Vite cache worktree-local |
| fcf883ef1 | fix | preserve binary values in the SQLite cache store |
| Commit | Type | Description |
|---|---|---|
| baf1ca189 | fix | decode pathname when constructing server asset path |
| 70748ca8e | fix | ensure public directory containment in CommonEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.23"></a>
ignore side-effect annotations in unit test builds
| Commit | Type | Description |
|---|---|---|
| 3f132eaa97 | fix | ignore side-effect annotations in unit test builds |
| 5b1028936f | perf | batch prerender routes and share in-memory server bundles |
| Commit | Type | Description |
|---|---|---|
| 76818cb811 | fix | abort web request signal when node request is aborted |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.22"></a>
transform fail() to expect.fail() in refactor-jasmine-vitest
| Commit | Description |
|---|---|
| transform fail() to expect.fail() in refactor-jasmine-vitest |
| Commit | Description |
|---|---|
| enforce MCP roots in get_best_practices tool | |
| handle errors from isAllowedWorkspacePath in best-practices tool | |
| throw on out-of-roots workspace in best-practices tool |
| Commit | Type | Description |
|---|---|---|
| e672271f8 | fix | enforce MCP roots in get_best_practices tool |
| a14916cc4 | fix | handle errors from isAllowedWorkspacePath in best-practices tool |
| d6e1cddff | fix | throw on out-of-roots workspace in best-practices tool |
| Commit | Type | Description |
|---|---|---|
| ba2b0e4c2 | fix | transform fail() to expect.fail() in refactor-jasmine-vitest |
| Commit | Type | Description |
|---|---|---|
| cba72902d | fix | correct misleading error message for top-level await |
| b4679998c | fix | disable code splitting for unit test builds |
| ff1d3565e | fix | preserve integrity and crossorigin in autoCsp loader |
| 1fc1fb05c | perf | traverse AST with iterative post-order walker in i18n inliner |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.4"></a>
generate CLAUDE.md for Claude Code instead of AGENTS.md
| Commit | Description |
|---|---|
| generate CLAUDE.md for Claude Code instead of AGENTS.md | |
| import UrlSegment instead of subPath in guard generator |
| Commit | Description |
|---|---|
| disable searching current directory for bare executable names on Windows | |
| serialize configuration as a single argv token in run_target strategies (#33657) | |
| avoid eager module loading during global bootstrap |
| Commit | Description |
|---|---|
| destroy platform when response stream is cancelled |
| Commit | Type | Description |
|---|---|---|
| 67a29899b | fix | disable searching current directory for bare executable names on Windows |
| 1b0ba5c17 | fix | serialize configuration as a single argv token in run_target strategies (#33657) |
| 9440432d2 | perf | avoid eager module loading during global bootstrap |
| Commit | Type | Description |
|---|---|---|
| d4a48e3ab | fix | generate CLAUDE.md for Claude Code instead of AGENTS.md |
| d451f15b2 | fix | import UrlSegment instead of subPath in guard generator |
| Commit | Type | Description |
|---|---|---|
| 46fcb29d6 | fix | count statically imported chunks in the initial total |
| 796b57684 | fix | normalize setupFiles paths to POSIX for vitest runner |
| c805e5cfb | fix | prevent syntax corruption for Crockford-style enum IIFE |
| cc6c17716 | fix | prevent syntax corruption in oxc transform |
| a142f6f83 | fix | return direct file contents for non-Angular TypeScript files |
| 956c6578d | fix | return only lowest version per target engine |
| 689b5b116 | fix | set target for Rolldown dependency prebundling in Vite dev server |
| 70461f6ed | perf | avoid encoding the inline source map before remapping |
| 22cce7563 | perf | batch last_accessed updates in sqlite cache store |
| ab2ed18d5 | perf | hash the i18n inline cache key options once per locale |
| 34516ff73 | perf | optimize template string size calculation in server manifest |
| 712971c37 | perf | share i18n translations with the inliner workers by reference |
| 78f8c5fef | perf | use Map for chunk asset size lookups in budget calculator |
| Commit | Type | Description |
|---|---|---|
| 2331c1047 | fix | destroy platform when response stream is cancelled |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.21"></a>
always install package during ng add to inspect manifest on disk for schematics
| Commit | Description |
|---|---|
| always install package during ng add to inspect manifest on disk for schematics (#33718) | |
| correctly report available package updates during bare ng update | |
| discover migrations from installed packages when omitted by registry metadata (#33718) | |
| normalize Windows drive-letter casing for process.cwd |
| Commit | Description |
|---|---|
| prevent build process hang on unhandled error (#33715) | |
| retain watch files on error in load result cache | |
| support case-insensitive and alternative license file names | |
| release build resources early in non-watch mode (#33715) |
| Commit | Description |
|---|---|
| settle writeResponseToNodeResponse when client disconnects | |
| avoid buffering request body when sanitizing headers |
| Commit | Type | Description |
|---|---|---|
| f837b788c6 | fix | always install package during ng add to inspect manifest on disk for schematics (#33718) |
| 72ae93638d | fix | correctly report available package updates during bare ng update |
| a949e06568 | fix | discover migrations from installed packages when omitted by registry metadata (#33718) |
| 1d9122fd50 | fix | normalize Windows drive-letter casing for process.cwd |
| Commit | Type | Description |
|---|---|---|
| a4860d505a | fix | prevent build process hang on unhandled error (#33715) |
| 7686d66cab | fix | retain watch files on error in load result cache |
| 25b7cf7504 | fix | support case-insensitive and alternative license file names |
| 4fd81402ce | perf | release build resources early in non-watch mode (#33715) |
| Commit | Type | Description |
|---|---|---|
| 6af906cb94 | fix | settle writeResponseToNodeResponse when client disconnects |
| 917d3b2254 | perf | avoid buffering request body when sanitizing headers |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.20"></a>
|  | add packages with built-in schematics
| Commit | Type | Description |
|---|---|---|
| 57db27ea91 | fix | add packages with built-in schematics to devDependencies only |
| Commit | Type | Description |
|---|---|---|
| baed978885 | fix | prevent IIFE wrapper interleaving for adjacent classes in minified files |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.1"></a>
|  | support npm 12 metadata array and erro
| Commit | Type | Description |
|---|---|---|
| ab971a8543 | fix | support npm 12 metadata array and error formats |
| Commit | Type | Description |
|---|---|---|
| db24220fb8 | fix | rewrite paths from sandboxed execroots when running under Bazel |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.0"></a>
|  | deprecate stringToFileBuffer and f…
| Commit | Description |
|---|---|
| update ai-config to include Angular MCP server config | |
| remove unused spec tsconfig outDir |
| Commit | Description |
|---|---|
| deprecate stringToFileBuffer and fileBufferToString |
| Commit | Description |
|---|---|
| support the standard Forwarded header |
stringToFileBuffer and fileBufferToString are deprecated. Use standard Web APIs (TextEncoder and TextDecoder) instead.
Internal usages within the repository have been removed and replaced with standard Web APIs. The public API golden file for @angular-devkit/core has been updated to reflect the deprecations.
stringToFileBuffer and fileBufferToString are deprecated. Use standard Web APIs (TextEncoder and TextDecoder) instead.
Internal usages within the repository have been removed and replaced with standard Web APIs. The public API golden file for @angular-devkit/core has been updated to reflect the deprecations.
| Commit | Type | Description |
|---|---|---|
| 89d7f59cd | feat | update ai-config to include Angular MCP server config |
| b345bb54d | fix | remove unused spec tsconfig outDir |
| Commit | Type | Description |
|---|---|---|
| f59bcf529 | fix | abort and guide manual mitigation when updating catalog packages |
| 48f90f5d5 | fix | prevent Yarn registry environment variable override |
| c963ecbec | fix | remove algoliasearch dependency and support latest docs versions |
| 6859d25c3 | fix | resolve correct registry name when using npm alias syntax during update |
| 3a2589dac | fix | respect client-side release age settings during update resolution |
| 5c3101bff | fix | revert package.json changes if installation tasks fail during update |
| 7932caaf9 | fix | robustly parse npm manifest from array |
| Commit | Type | Description |
|---|---|---|
| fd336d365 | refactor | deprecate stringToFileBuffer and fileBufferToString |
| Commit | Type | Description |
|---|---|---|
| 34d558c3c | feat | add built-in SQLite cache store fallback |
| 0c18dc0f6 | feat | emit debug ids for stable subresource integrity hashes |
| 51f69276f | feat | enable chunk optimization for server builds |
| 10dc30f9c | feat | migrate advanced optimization Babel plugins to oxc-parser + magic-string |
| 917393a4c | feat | migrate i18n inliner to oxc-parser + magic-string |
| 52ae7f862 | feat | share persistent build cache across git worktrees |
| 95510511d | fix | add bounded timeout to vitest executor disposal |
| 62b11e316 | fix | anchor debug ID comment matching and make injection idempotent |
| 6d9b360e5 | fix | prevent esbuild service hang on internal component stylesheet builds |
| 291caab61 | fix | prevent stripping nested sourceMappingURL comments |
| 0e3ca3dfb | fix | support hyphens and underscores when stripping chunk hash in chunk optimizer |
| 585d08af8 | perf | default chunk optimization to use Rolldown |
| 09d0a11a8 | perf | enable fast-path AST printing with sourcemaps in AotCompilation |
| Commit | Type | Description |
|---|---|---|
| 7ef9ed24d | feat | support the standard Forwarded header |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.9"></a>
|  | abort and guide manual mitigation when
|  | remove unused spec tsconfig outDir |
| Commit | Description |
|---|---|
| remove unused spec tsconfig outDir |
| Commit | Description |
|---|---|
| copy packageManager field and yarn config for temp installs | |
| support resolving subproject dependencies in pnpm workspaces |
| Commit | Description |
|---|---|
| emit debug ids for stable subresource integrity hashes | |
| prevent stripping nested sourceMappingURL comments |
|  | add built-in SQLite cache store fallba
| Commit | Description |
|---|---|
| replace all route parameters when resolving relative redirects |
|  | remove unused app tsconfig outDir |
| Commit | Description |
|---|---|
| remove unused app tsconfig outDir |
| Commit | Description |
|---|---|
| prevent OS command injection in ssr-dev-server builder |
| Commit | Description |
|---|---|
| preserve response headers during redirect |
|  | remove default workspace vscode mcp.jso
| Commit | Description |
|---|---|
| remove default workspace vscode mcp.json configuration |
| Commit | Description |
|---|---|
| prevent Yarn registry environment variable override | |
| support registry metadata fetching under bun package manager | |
| implement semaphore backpressure throttling in PackageManager |
| Commit | Description |
|---|---|
| support the standard Forwarded header | |
| avoid caching non-SSG page lookups | |
| prioritize options over environment variables in AngularNodeAppEngine |
|  | deprecate stringToFileBuffer and f…
| Commit | Description |
|---|---|
| robustly parse npm manifest from array |
| Commit | Description |
|---|---|
| update ai-config to include Angular MCP server config |
| Commit | Description |
|---|---|
| deprecate stringToFileBuffer and fileBufferToString |
| Commit | Description |
|---|---|
| correct grammar in console warning for redirected location headers |
stringToFileBuffer and fileBufferToString are deprecated. Use standard Web APIs (TextEncoder and TextDecoder) instead.
Internal usages within the repository have been removed and replaced with standard Web APIs. The public API golden file for @angular-devkit/core has been updated to reflect the deprecations.
|  | declare devserver_start and devserver_
| Commit | Type | Description |
|---|---|---|
| 9ee8f9b669 | fix | declare devserver_start and devserver_stop as isReadOnly:false |
| Commit | Type | Description |
|---|---|---|
| d0c776d461 | fix | safeguard Karma builder stream controller against closed state |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.8"></a>
|  | batch Prettier invocations during migra
| Commit | Description |
|---|---|
| batch Prettier invocations during migration formatting | |
| update MCP devserver tool names to conform to spec regex |
| Commit | Type | Description |
|---|---|---|
| 41c356256 | fix | batch Prettier invocations during migration formatting |
| bc87c85c3 | fix | update MCP devserver tool names to conform to spec regex |
| Commit | Type | Description |
|---|---|---|
| 5724bf632 | fix | canonicalize drive letter casing for workspace root on Windows |
| b8bdbaa1e | fix | ensure import map integrity keys are valid URL-like specifiers |
| 212a7bb21 | fix | favor istanbul coverage provider when browser testing is enabled |
| bc760b005 | fix | preserve custom config options in runnerConfig for vitest |
| 19cda7415 | fix | remap metafile paths when workspace root is a symlink or junction |
| fdcc98c79 | perf | skip semantic affected-file walk when type checking is disabled |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.7"></a>
|  | copy packageManager field and yarn conf
| Commit | Type | Description |
|---|---|---|
| e85c10ccb | fix | copy packageManager field and yarn config for temp installs |
| b87cafec0 | fix | support resolving subproject dependencies in pnpm workspaces |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.19"></a>
|  | fallback to build target preserveSymlin
| Commit | Description |
|---|---|
| replace all route parameters when resolving relative redirects |
| Commit | Type | Description |
|---|---|---|
| df49966c6 | fix | fallback to build target preserveSymlinks option in karma runner |
| 9906add5b | fix | prevent externalizing builder-injected i18n locale data |
| 070155f6e | fix | strip all vite id prefixes from minified code with external dependencies |
| Commit | Type | Description |
|---|---|---|
| c9aa354b1 | fix | replace all route parameters when resolving relative redirects |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.5"></a>
|  | remove unused app tsconfig outDir |
| Commit | Description |
|---|---|
| remove unused app tsconfig outDir |
| Commit | Description |
|---|---|
| gracefully handle package manager errors in command handler | |
| respect release age policy in update bootstrapping logic |
| Commit | Description |
|---|---|
| prevent OS command injection in ssr-dev-server builder |
| Commit | Description |
|---|---|
| preserve response headers during redirect |
| Commit | Type | Description |
|---|---|---|
| f099e641c | fix | gracefully handle package manager errors in command handler |
| cf033ec48 | fix | respect release age policy in update bootstrapping logic |
| Commit | Type | Description |
|---|---|---|
| 862a38069 | fix | remove unused app tsconfig outDir |
| Commit | Type | Description |
|---|---|---|
| f75085f4b | fix | prevent OS command injection in ssr-dev-server builder |
| Commit | Type | Description |
|---|---|---|
| dfee1e7b1 | fix | auto-inject localize/init in library unit tests |
| aba718403 | fix | inherit preserveSymlinks option from build target in unit-test builder |
| 7c0d9f03c | fix | load zone.js dynamically for library unit tests |
| 4288e4452 | fix | scope createRequire module resolution using paths to prevent parent paths |
| Commit | Type | Description |
|---|---|---|
| 5f774f891 | fix | preserve response headers during redirect |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.18"></a>
|  | aggregate parallel worker performance t
| Commit | Type | Description |
|---|---|---|
| 46185ceac | fix | aggregate parallel worker performance timings on the main thread |
| 5d7e29c41 | perf | dispose builder result context early in non-watch mode |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.17"></a>
|  | remove default workspace vscode mcp.jso
| Commit | Type | Description |
|---|---|---|
| 0eddea898 | fix | remove default workspace vscode mcp.json configuration |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.16"></a>
|  | support registry metadata fetching unde
| Commit | Description |
|---|---|
| support registry metadata fetching under bun package manager | |
| implement semaphore backpressure throttling in PackageManager |
| Commit | Description |
|---|---|
| implement semaphore backpressure throttling in JavaScriptTransformer |
| Commit | Description |
|---|---|
| avoid caching non-SSG page lookups | |
| correct grammar in console warning for redirected location headers | |
| prioritize options over environment variables in AngularNodeAppEngine |
| Commit | Type | Description |
|---|---|---|
| 136fc2714 | fix | support registry metadata fetching under bun package manager |
| 2653dd5c7 | perf | implement semaphore backpressure throttling in PackageManager |
| Commit | Type | Description |
|---|---|---|
| 0b4a48add | perf | implement semaphore backpressure throttling in JavaScriptTransformer |
| Commit | Type | Description |
|---|---|---|
| d996a27e9 | fix | avoid caching non-SSG page lookups |
| 285a34e42 | fix | correct grammar in console warning for redirected location headers |
| c8088a536 | fix | prioritize options over environment variables in AngularNodeAppEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.28"></a>
|  | fix browserMode option mapping in refac
| Commit | Type | Description |
|---|---|---|
| b54e9a549 | fix | do not sort migrations of the same version alphabetically |
| d33311612 | fix | fallback to local package.json for schematic detection on first run |
| 918102a93 | fix | isolate temporary package installation from parent pnpm workspace |
| b048b5f4a | fix | remove forceAuth and unscoped credential parsing |
| 277934035 | fix | validate registry option is a valid URL in ng add |
| 4510dae02 | perf | optimize update schematic registry query counts by fetching package metadata lazily |
| Commit | Type | Description |
|---|---|---|
| c80012294 | fix | fix browserMode option mapping in refactor-jasmine-vitest |
| a9b6bd904 | fix | safely comment out multiline statements in refactor-jasmine-vitest |
| 12199df00 | fix | use null objects and callbacks in karma-to-vitest migration |
| Commit | Type | Description |
|---|---|---|
| 89d1be979 | fix | allow disabling Vitest isolation from builder |
| d45b84be9 | fix | exclude JSON imports from Vite dependency optimization |
| e3cab4ddd | fix | prevent concurrent stylesheet bundling esbuild context leaks |
| bd413b0eb | fix | restrict application builder output paths to output directory |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.0.0"></a>
|  | replace deprecated ChangeDetectionStrat…
| Commit | Description |
|---|---|
| update minimum supported Node.js versions | |
remove @angular-devkit/architect-cli package |
|
| remove experimental Jest and Web Test Runner builders |
| Commit | Description |
|---|---|
| deprecate Webpack builders |
| Commit | Description |
|---|---|
| deprecate webpack and webpack-dev-server builders |
| Commit | Description |
|---|---|
| deprecate @ngtools/webpack loader and plugin |
@angular-devkit/architect-cli package is no longer available. The architect CLI tool has been moved to the @angular-devkit/architect package.@angular-devkit/build-angular:jest and @angular-devkit/build-angular:web-test-runner builders have been removed.@angular/build:dev-server (ng serve) now assigns the highest priority to the PORT environment variable. This value will override any port configurations specified in angular.json or via the --port command-line flag. This includes the default port 4200.istanbul-lib-instrument is now an optional peer dependency.
Projects using karma with code coverage enabled will need to ensure that istanbul-lib-instrument is installed. Note: ng update will automatically add this dependency during the update process.@angular-devkit/architect-cli package is no longer available. The architect CLI tool has been moved to the @angular-devkit/architect package.@angular-devkit/build-angular:jest and @angular-devkit/build-angular:web-test-runner builders have been removed.@angular/build:dev-server (ng serve) now assigns the highest priority to the PORT environment variable. This value will override any port configurations specified in angular.json or via the --port command-line flag. This includes the default port 4200.istanbul-lib-instrument is now an optional peer dependency.
Projects using karma with code coverage enabled will need to ensure that istanbul-lib-instrument is installed. Note: ng update will automatically add this dependency during the update process.| Commit | Type | Description |
|---|---|---|
| 58c0978f6 | feat | add support for Node.js 26.0.0 |
| a5c7c0b5f | fix | reflect new minimum supported Node version in ng.js |
| a5e1e48db | fix | update odd-numbered Node.js version warning condition for future releases |
| 93c3eb8fb | fix | update zoneless migration tool to handle ChangeDetectionStrategy.Eager |
| a39a33128 | perf | cache root manifest and resolve restricted package exports in ng add |
| Commit | Type | Description |
|---|---|---|
| be60a63b7 | feat | add migrate-karma-to-vitest update migration |
| 43505066e | feat | add migration to add istanbul-lib-instrument |
| b2f7a038b | feat | conditionally install istanbul coverage provider for Vitest migration |
| d227e6985 | feat | migrate fake async to Vitest fake timers |
| d2aa9ede5 | feat | migrate fakeAsync's flush behavior when used in beforeEach |
| f98cc82eb | feat | rely on strict template default in generated workspaces |
| c9f408153 | feat | set up fake timers in beforeEach instead of beforeAll |
| de630c2fc | feat | stabilize refactor-jasmine-vitest schematic |
| 8d0805dd1 | feat | update TSConfig globals during karma to vitest migration |
| 470e1f937 | fix | add istanbul-lib-instrument to application/library generator dependencies |
| dc1238e5a | fix | add trusted-proxy-headers migration |
| 6572a6944 | fix | default components to OnPush change detection |
| aed407db8 | fix | defer karma config deletion in Karma to Vitest migration |
| 4fbc60891 | fix | preserve Jasmine stub-by-default semantics for bare spies |
| b3d838dfd | fix | replace deprecated ChangeDetectionStrategy.Default with Eager |
| a7ac8e5f0 | fix | support spy call arguments migration in refactor-jasmine-vitest |
| 7fb59eaa6 | fix | use service decorator in ng generate |
| Commit | Type | Description |
|---|---|---|
| d0e9e8163 | build | update minimum supported Node.js versions |
| 1f21e89d9 | refactor | remove @angular-devkit/architect-cli package |
| b4885b851 | refactor | remove experimental Jest and Web Test Runner builders |
| Commit | Type | Description |
|---|---|---|
| b7940dbcb | refactor | deprecate Webpack builders |
| Commit | Type | Description |
|---|---|---|
| 3d5daa45e | refactor | deprecate webpack and webpack-dev-server builders |
| Commit | Type | Description |
|---|---|---|
| e9aa7967b | feat | add isolate option to unit-test builder |
| fe720cab6 | feat | add process.env.PORT support to the dev server |
| 0781f7498 | feat | add quiet option to suppress build noise in unit tests |
| cd2ad3c19 | feat | enable chunk optimization by default with heuristics |
| 3007f46b7 | feat | move istanbul-lib-instrument to optional peer dependency |
| af2c7e944 | feat | rename experimentalPlatform to platform in application builder |
| 58c7c7a9d | feat | subresource integrity validation for dynamically loaded modules |
| 73233dc5f | feat | support Istanbul coverage in Vitest runner |
| 414320d02 | feat | support runtime Zone.js detection in Vitest unit test runner |
| b85ec6798 | fix | allow configuring Access-Control-Allow-Origin via headers option |
| edfa782d5 | fix | use dynamic TestComponentRenderer for Vitest |
| Commit | Type | Description |
|---|---|---|
| 5adc92541 | fix | enforce explicit opt-in for proxy headers |
| f85343925 | fix | support all X-Forwarded-* headers when trustProxyHeaders is true |
| 8471ba634 | fix | support server-side rendering configuration options |
| 50b16a65b | refactor | deprecate CommonEngine APIs |
| 27cd35561 | refactor | remove CSR fallback for invalid hosts |
| Commit | Type | Description |
|---|---|---|
| 547ca515b | refactor | deprecate @ngtools/webpack loader and plugin |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.14"></a>
|  | preserve Jasmine stub-by-default semant
| Commit | Description |
|---|---|
| preserve Jasmine stub-by-default semantics for bare spies |
| Commit | Description |
|---|---|
| expand package groups for newly added peer dependencies in update schematic |
| Commit | Description |
|---|---|
| prevent esbuild service child process leakage |
| Commit | Description |
|---|---|
| support server-side rendering configuration options |
|  | remove unconditional CORS wildcard from
|  | support spy call arguments migration in
|  | deprecate Webpack builders |
| Commit | Description |
|---|---|
| add support for Node.js 26.0.0 | |
| restrict MCP workspace access to allowed client roots during resolution | |
| update odd-numbered Node.js version warning condition for future releases |
| Commit | Description |
|---|---|
| deprecate Webpack builders |
| Commit | Description |
|---|---|
| deprecate webpack and webpack-dev-server builders |
| Commit | Description |
|---|---|
| subresource integrity validation for dynamically loaded modules | |
| use dynamic TestComponentRenderer for Vitest |
| Commit | Description |
|---|---|
| remove stateful flag from URL_PARAMETER_REGEXP | |
| support all X-Forwarded-* headers when trustProxyHeaders is true | |
| deprecate CommonEngine APIs |
| Commit | Description |
|---|---|
| deprecate @ngtools/webpack loader and plugin |
|  | deprecate Webpack builders |
| Commit | Description |
|---|---|
| deprecate Webpack builders |
| Commit | Description |
|---|---|
| deprecate webpack and webpack-dev-server builders |
| Commit | Description |
|---|---|
| deprecate stringToFileBuffer and fileBufferToString |
| Commit | Description |
|---|---|
| subresource integrity validation for dynamically loaded modules | |
| use dynamic TestComponentRenderer for Vitest |
| Commit | Description |
|---|---|
| deprecate CommonEngine APIs |
| Commit | Description |
|---|---|
| deprecate @ngtools/webpack loader and plugin |
stringToFileBuffer and fileBufferToString are deprecated. Use standard Web APIs (TextEncoder and TextDecoder) instead.
Internal usages within the repository have been removed and replaced with standard Web APIs. The public API golden file for @angular-devkit/core has been updated to reflect the deprecations.
|  | add missing imports for focus and skip
| Commit | Description |
|---|---|
| add missing imports for focus and skip APIs in refactor-jasmine-vitest | |
| add trusted-proxy-headers migration |
| Commit | Description |
|---|---|
| fix broken img ref in ai-tutor | |
| introduce initial package manager workspace awareness | |
| remove standalone true ref in ai tutor |
| Commit | Description |
|---|---|
| add isolate option to unit-test builder | |
| support Istanbul coverage in Vitest runner |
|  | stabilize refactor-jasmine-vitest sche
| Commit | Description |
|---|---|
| stabilize refactor-jasmine-vitest schematic |
| Commit | Description |
|---|---|
| dynamically resolve project Angular CLI executable inside MCP tools | |
| ignore EBADF file system errors during MCP project scan | |
| use headless option in MCP test tool |
| Commit | Description |
|---|---|
| ensure route has leading slash in prerender builder | |
| fix app-shell route format and |
|  | handle missing package manager during a
| Commit | Description |
|---|---|
| handle missing package manager during analytics initialization |
| Commit | Description |
|---|---|
| add migrate-karma-to-vitest update migration | |
| add migration to add istanbul-lib-instrument | |
| add istanbul-lib-instrument to application/library generator dependencies |
| Commit | Description |
|---|---|
| move istanbul-lib-instrument to optional peer dependency | |
| preserve coverage ignore comments in development | |
| show clear error when styleUrl points to a TypeScript file |
istanbul-lib-instrument is now an optional peer dependency.
Projects using karma with code coverage enabled will need to ensure that istanbul-lib-instrument is installed. Note: ng update will automatically add this dependency during the update process.|  | support custom port in MCP devserver s
| Commit | Description |
|---|---|
| support custom port in MCP devserver start tool | |
| fix sourceRoot resolution for MCP projects tool |
| Commit | Description |
|---|---|
| allow underscores in host validation | |
| patch Headers.forEach in cloneRequestAndPatchHeaders |
|  | rely on strict template default in gen
| Commit | Description |
|---|---|
| rely on strict template default in generated workspaces |
| Commit | Description |
|---|---|
| restore console methods after logger completes |
| Commit | Description |
|---|---|
| apply forwarded prefix and vary header in accept-language redirects | |
| support '*' in allowedHosts and warn about security risks |
|  | default components to OnPush change det
| Commit | Description |
|---|---|
| default components to OnPush change detection |
| Commit | Description |
|---|---|
| use parsed package name for migrate-only updates |
| Commit | Description |
|---|---|
| alias createRequire banner import to avoid duplicate binding | |
| only use external packages for polyfills when no local files are present |
| Commit | Description |
|---|---|
| disallow x-forwarded-prefix starting with a backslash | |
| ensure unique values in redirect response Vary header | |
| support custom headers in redirect responses |
|  | replace deprecated ChangeDetectionStrat…
| Commit | Description |
|---|---|
replace deprecated ChangeDetectionStrategy.Default with Eager |
@angular/build:dev-server (ng serve) now assigns the highest priority to the PORT environment variable. This value will override any port configurations specified in angular.json or via the --port command-line flag. This includes the default port 4200.|  | reflect new minimum supported Node vers
| Commit | Description |
|---|---|
| reflect new minimum supported Node version in ng.js |
| Commit | Description |
|---|---|
| update minimum supported Node.js versions | |
remove @angular-devkit/architect-cli package |
|
| remove experimental Jest and Web Test Runner builders |
| Commit | Description |
|---|---|
| support runtime Zone.js detection in Vitest unit test runner | |
allow any CHROME_BIN for vitest playwright provider |
| Commit | Description |
|---|---|
| remove CSR fallback for invalid hosts |
@angular-devkit/architect-cli package is no longer available. The architect CLI tool has been moved to the @angular-devkit/architect package.@angular-devkit/build-angular:jest and @angular-devkit/build-angular:web-test-runner builders have been removed.@angular/build Commit Description update undici to 7.29.1
| Commit | Type | Description |
|---|---|---|
| dbaadc2f6e | fix | update undici to 7.29.1 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.37"></a>
ensure public directory containment in CommonEngine
| Commit | Type | Description |
|---|---|---|
| d3aaa48ef | fix | update less to 4.9.0 |
| Commit | Type | Description |
|---|---|---|
| 645e41a47 | fix | ensure public directory containment in CommonEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.36"></a>
update webpack-dev-server to 5.2.6
| Commit | Type | Description |
|---|---|---|
| b0047b04f5 | fix | update webpack-dev-server to 5.2.6 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.35"></a>
update dependency @modelcontextprotocol/sdk to v1.30.0
| Commit | Type | Description |
|---|---|---|
| ba5d16cac | fix | update dependency @modelcontextprotocol/sdk to v1.30.0 |
| Commit | Type | Description |
|---|---|---|
| f7f60e69e | fix | bump undici to 7.29.0 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.34"></a>
@angular-devkit/build-angular Commit Description upgrade postcss to 8.5.23 @angular/build Commit Description upgrade postcss to 8.5.23
| Commit | Type | Description |
|---|---|---|
| 972f6db7e9 | fix | upgrade postcss to 8.5.23 |
| Commit | Type | Description |
|---|---|---|
| 8de75ada50 | fix | upgrade postcss to 8.5.23 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.33"></a>
|  | update http-proxy-middleware to 3.0.7 |
| Commit | Type | Description |
|---|---|---|
| df5429871 | fix | update http-proxy-middleware to 3.0.7 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.32"></a>
|  | respect release age policy in update bo
| Commit | Type | Description |
|---|---|---|
| 61a810ab6 | fix | respect release age policy in update bootstrapping logic |
| Commit | Type | Description |
|---|---|---|
| a2b6116ed | fix | bump undici to 7.28.0 |
| 2510ee3c9 | fix | bump vite to 7.3.6 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.31"></a>
|  | bump @babel/core to 7.29.7 |
| Commit | Type | Description |
|---|---|---|
| 9c366e8be | fix | bump @babel/core to 7.29.7 |
| 6a06ce9e9 | fix | bump esbuild to 0.28.1 |
| 637b84877 | fix | bump piscina to 5.2.0 |
| e86d58a12 | fix | bump vite to 7.3.5 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.30"></a>
|  | update pacote to 21.5.1 |
| Commit | Type | Description |
|---|---|---|
| 77c9047ac | fix | update pacote to 21.5.1 |
| Commit | Type | Description |
|---|---|---|
| d052e97da | fix | prioritize options over environment variables in AngularNodeAppEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.29"></a>
Your coding agent can read these notes before it upgrades. Set up the MCP server →