NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2210 most downloaded on npm
Angular Schematics - Library
Last release 5 days ago
23 Sep 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
1055 releases · first in 2017
|  | remove unconditional CORS wildcard from
| Commit | Type | Description |
|---|---|---|
| 3c6d26a31 | fix | remove unconditional CORS wildcard from webpack dev-server |
| Commit | Type | Description |
|---|---|---|
| 2b3e95517 | fix | assert that asset input paths are within workspace root |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.12"></a>
One column per quarter.
|  | ignore virtual esbuild paths with (disa
| Commit | Type | Description |
|---|---|---|
| cbad57579 | fix | ignore virtual esbuild paths with (disabled): |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.11"></a>
|  | robustly parse npm manifest from array
| Commit | Type | Description |
|---|---|---|
| bbd63b7a5 | fix | robustly parse npm manifest from array |
| Commit | Type | Description |
|---|---|---|
| eafe1a719 | fix | allow all hosts in common engine rendering options to prevent validation errors |
| 7a116a80d | fix | remove stateful flag from URL_PARAMETER_REGEXP |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.26"></a>
|  | restrict MCP workspace access to allowe
| Commit | Type | Description |
|---|---|---|
| bb8611913 | fix | restrict MCP workspace access to allowed client roots during resolution |
<!-- CHANGELOG SPLIT MARKER -->
<a name="19.2.25"></a>
|  | add missing imports for focus and skip
| Commit | Description |
|---|---|
| add missing imports for focus and skip APIs in refactor-jasmine-vitest |
| Commit | Description |
|---|---|
| fix broken img ref in ai-tutor | |
| introduce initial package manager workspace awareness | |
| remove standalone true ref in ai tutor |
| Commit | Type | Description |
|---|---|---|
| 233deef01 | fix | fix broken img ref in ai-tutor |
| 7cea9885c | fix | introduce initial package manager workspace awareness |
| 5b1a5b743 | fix | remove standalone true ref in ai tutor |
| Commit | Type | Description |
|---|---|---|
| e7abeb5c7 | fix | add missing imports for focus and skip APIs in refactor-jasmine-vitest |
| Commit | Type | Description |
|---|---|---|
| 94023f62c | fix | introduce trustProxyHeaders option to safely validate and sanitize proxy headers |
| 5ffe5c309 | fix | add support for configuring trusted proxy headers via environment variable |
| 930ada9b7 | fix | decode route segments when building and matching route tree |
| 0dc8a440c | fix | use router to normalize URLs for comparison |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.25"></a>
|  | dynamically resolve project Angular CLI
| 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 |
| Commit | Description |
|---|---|
| use rootDir for HMR component updates path resolution | |
| validate V8 coverage support for browsers in Vitest |
|  | handle missing package manager during a
| Commit | Type | Description |
|---|---|---|
| 971041aa1 | fix | handle missing package manager during analytics initialization |
| Commit | Type | Description |
|---|---|---|
| 365cce81d | fix | preserve coverage ignore comments in development |
| 9f74660c3 | fix | show clear error when styleUrl points to a TypeScript file |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.23"></a>
|  | fix sourceRoot resolution for MCP proje
| Commit | Description |
|---|---|
| fix sourceRoot resolution for MCP projects tool |
| Commit | Type | Description |
|---|---|---|
| ea14f28cc | fix | fix sourceRoot resolution for MCP projects tool |
| Commit | Type | Description |
|---|---|---|
| 9136eb376 | fix | ensure transitive SCSS partial errors are tracked in watch mode |
| 8186faa11 | fix | ensure Vitest mock patching is executed only once |
| 107d1a9e2 | fix | preserve error stack traces during prerendering |
| b7f457253 | fix | scope CHROME_BIN executable path to individual playwright instances |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.5"></a>
|  | support custom port in MCP devserver s
| Commit | Type | Description |
|---|---|---|
| cadf9b201 | feat | support custom port in MCP devserver start tool |
| Commit | Type | Description |
|---|---|---|
| bbc255419 | fix | allow underscores in host validation |
| b1fe66a7f | fix | patch Headers.forEach in cloneRequestAndPatchHeaders |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.22"></a>
|  | restore console methods after logger co
| 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 |
| Commit | Type | Description |
|---|---|---|
| a7787d092 | fix | restore console methods after logger completes |
| Commit | Type | Description |
|---|---|---|
| 7170599ab | fix | deduplicate and merge coverage excludes with vitest |
| c73f13797 | fix | prevent reporter duplicates by explicitly overriding Vitest configuration |
| 956ccaa71 | fix | remove default for unit-test coverage option |
| 36978db7e | fix | warn about performance of test.exclude in vitest configuration |
| 6ec36f5be | fix | warn when vitest watch config conflicts with builder |
| Commit | Type | Description |
|---|---|---|
| 9bdf782c8 | fix | apply forwarded prefix and vary header in accept-language redirects |
| 628c58672 | fix | support '*' in allowedHosts and warn about security risks |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.21"></a>
|  | use parsed package name for migrate-onl
| 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 |
| Commit | Type | Description |
|---|---|---|
| 1505164bb | fix | use parsed package name for migrate-only updates |
| Commit | Type | Description |
|---|---|---|
| 75fa94cad | fix | alias createRequire banner import to avoid duplicate binding |
| d009aa1ec | fix | only use external packages for polyfills when no local files are present |
| Commit | Type | Description |
|---|---|---|
| f3e0e82c2 | fix | disallow x-forwarded-prefix starting with a backslash |
| b8bcd59b4 | fix | ensure unique values in redirect response Vary header |
| 84385411d | fix | support custom headers in redirect responses |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.2"></a>
|  | conditionally quote package names when
| Commit | Type | Description |
|---|---|---|
| 8447d9132 | fix | conditionally quote package names when adding dependencies based on host requirements |
| d2f209823 | fix | preserve exact version in ng add when requested |
| 28f4d684a | perf | avoid redundant package version resolution in ng add |
| Commit | Type | Description |
|---|---|---|
| 06010294f | fix | allow any CHROME_BIN for vitest playwright provider |
| 8dec0c62b | fix | normalize line endings for CSP hash generation |
| 58688ebd7 | fix | pass process environment variables to prerender workers |
| 4ca61647f | fix | resolve assets correctly during i18n prerendering |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.20"></a>
|  | prevent adding test dependencies when m
| Commit | Description |
|---|---|
| prevent adding test dependencies when minimal option is enabled |
| Commit | Description |
|---|---|
| update copy-webpack-plugin to v14.0.0 |
| Commit | Description |
|---|---|
| improve header validation logic | |
| introduce DI token to signal route discovery process |
| Commit | Type | Description |
|---|---|---|
| ae4c28d00 | fix | correct dev dependency detection logic in ng add |
| 465073bc1 | fix | disable npm update notifier in package manager host |
| 36270634f | fix | ensure group members are updated to targeted version |
| d87dba6af | fix | ignore unknown files when formatting schematic changes |
| Commit | Type | Description |
|---|---|---|
| 72d466aa0 | fix | prevent adding test dependencies when minimal option is enabled |
| Commit | Type | Description |
|---|---|---|
| 0019d1c8e | fix | update copy-webpack-plugin to v14.0.0 |
| Commit | Type | Description |
|---|---|---|
| 6ad860863 | fix | bundle polyfills to preserve execution order in dev server |
| d17397375 | fix | conditionally allow vi.mock for non-relative imports |
| 0d49f86ed | fix | resolve style include paths relative to ng-package.json in unit-test builder |
| 584f6a2d9 | fix | treat empty browsers array as undefined in unit-test builder |
| 6699cdc9b | perf | fix memory leak in ng serve with i18n |
| Commit | Type | Description |
|---|---|---|
| 43a9dfa66 | fix | improve header validation logic |
| dee3717b3 | fix | introduce DI token to signal route discovery process |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.19"></a>
|  | add a '.prettierrc' file to generated
| Commit | Type | Description |
|---|---|---|
| 0dd04f289 | feat | add markdown files to Prettier's formatting list |
| fbae1b6ab | feat | automatic formatting files modified by schematics |
| 91b9d281f | feat | integrate file formatting into update migrations |
| 98a24d040 | feat | standardize MCP tools around workspace/project options |
| d9cd609c5 | fix | correctly parse scoped packages in yarn classic list output |
| 5b05f2500 | fix | enable shell option for Prettier execution on Windows platforms |
| 25b8a157d | fix | quote complex range specifiers in package manager |
| 6f29a8c35 | fix | renamed files by their new path in the schematic workflow |
| 201a036f2 | fix | simplify Angular version compatibility checks and add special handling for local builds of new major versions |
| cdd26bb66 | fix | validate package manager version using semver.valid and throw an error if invalid |
| bc363af8b | perf | optimize package manager discovery with stat-based probing |
| Commit | Type | Description |
|---|---|---|
| aa7381efd | feat | add a '.prettierrc' file to generated workspaces and add Prettier as dev dependency |
| f80db6fb7 | feat | add ng-add support for Vitest browser providers |
| 5d1df50d8 | fix | add actionable feedback to vitest-browser schematic |
| Commit | Type | Description |
|---|---|---|
| ece30f235 | feat | add headless option to unit-test builder |
| cad7a7c0f | feat | run vitest browser with playwright with OS theme |
| 0b4982720 | fix | adjust sourcemap sources when Vitest wrapper is bypassed |
| 1f114a9e8 | fix | bundle setup files in unit-test builder for Vitest |
| fd5cb28c8 | fix | explicitly fail when using Vitest runtime mocking |
| dc899e8a5 | fix | normalize allowedHosts in dev-server |
| 26bbea12f | fix | serve extensionless assets without transformation |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.1.5"></a>
|  | simplify Angular version compatibility
|  | validate package manager version using
Nothing published for this version
|  | run vitest browser with playwright wit
|  | add actionable feedback to vitest-brows
| Commit | Description |
|---|---|
| add actionable feedback to vitest-browser schematic | |
| warn when production configuration is missing for service worker |
| Commit | Description |
|---|---|
| integrate file formatting into update migrations | |
| renamed files by their new path in the schematic workflow | |
| optimize package manager discovery with stat-based probing |
| Commit | Description |
|---|---|
| add headless option to unit-test builder | |
| bundle setup files in unit-test builder for Vitest |
|  | address Node.js deprecation DEP0190 |
| Commit | Description |
|---|---|
| add a '.prettierrc' file to generated workspaces and add Prettier as dev dependency | |
| add ng-add support for Vitest browser providers |
| Commit | Description |
|---|---|
| address Node.js deprecation DEP0190 |
| Commit | Description |
|---|---|
| adjust sourcemap sources when Vitest wrapper is bypassed |
|  | prevent open redirect via X-Forwarded-P
| Commit | Type | Description |
|---|---|---|
| 8695d6063 | fix | prevent open redirect via X-Forwarded-Prefix header |
| e4d445ec6 | fix | validate host headers to prevent header-based SSRF |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.17"></a>
|  | correctly resolve absolute setup file p
| Commit | Type | Description |
|---|---|---|
| 7a9dd6b47 | fix | correctly resolve absolute setup file paths in Vitest |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.16"></a>
|  | address Node.js deprecation DEP0190 |
| Commit | Type | Description |
|---|---|---|
| a18196a10 | fix | warn when production configuration is missing for service worker |
| Commit | Type | Description |
|---|---|---|
| 6d05d27ca | fix | address Node.js deprecation DEP0190 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.1.2"></a>
|  | Add boolean type inference for 'true' a
| Commit | Description |
|---|---|
| Add boolean type inference for 'true' and 'false' string values in argument parsing |
| Commit | Description |
|---|---|
| Add boolean type inference for 'true' and 'false' string values in argument parsing |
| Commit | Description |
|---|---|
| loosen Vitest dependency checks when runnerConfig is used | |
| support merging coverage thresholds with Vitest runnerConfig |
| Commit | Type | Description |
|---|---|---|
| e7458c81d | fix | Add boolean type inference for 'true' and 'false' string values in argument parsing |
| Commit | Type | Description |
|---|---|---|
| d66f1fe64 | fix | Add boolean type inference for 'true' and 'false' string values in argument parsing |
| Commit | Type | Description |
|---|---|---|
| 80911af67 | fix | loosen Vitest dependency checks when runnerConfig is used |
| 2d30639d3 | fix | support merging coverage thresholds with Vitest runnerConfig |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.1.1"></a>
|  | correct vscode MCP configuration for ne
| Commit | Description |
|---|---|
| correct vscode MCP configuration for new projects | |
| remove special characters from jasmine-vitest report filename |
| Commit | Description |
|---|---|
| Remove nonexistent link from MCP response |
| Commit | Description |
|---|---|
| allow application assets in workspace root | |
| prevent incorrect catch binding removal in downleveled for-await | |
| update undici to v7.18.2 |
| Commit | Type | Description |
|---|---|---|
| 151b69587 | fix | Remove nonexistent link from MCP response |
| Commit | Type | Description |
|---|---|---|
| 9da6d8fa7 | fix | correct vscode MCP configuration for new projects |
| 361758c75 | fix | remove special characters from jasmine-vitest report filename |
| Commit | Type | Description |
|---|---|---|
| 1b7e3307a | fix | allow application assets in workspace root |
| d1e596dc5 | fix | prevent incorrect catch binding removal in downleveled for-await |
| 98ef0981a | fix | update undici to v7.18.2 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.15"></a>
|  | add browserMode option to jasmine-vite
| Commit | Description |
|---|---|
| add browserMode option to jasmine-vitest schematic | |
generate detailed migration report for refactor-jasmine-vitest |
|
| add MCP configuration file to new workspaces |
| Commit | Type | Description |
|---|---|---|
| 772e6efe7 | feat | add 'test' and 'e2e' MCP tools |
| 8efb86318 | feat | Add "all" as an experimental tool group |
| c3c9ac506 | feat | Add MCP tools for building and running devservers |
| d635a6c63 | feat | add signal forms lessons |
| d8b76e93d | fix | correctly handle yarn classic tag manifest fetching |
| 7ab5c0b0a | fix | correctly spawn package managers on Windows in new abstraction |
| 348096623 | fix | enhance list_projects MCP tool file system traversal and symlink handling |
| 316fca862 | fix | handle array output from npm view in manifest parser |
| 032257a6d | fix | improve signal forms lesson examples in AI tutor |
| 18d74dde8 | fix | rename mcp devserver tools to comply with naming spec |
| 1ad773671 | fix | update dependency @modelcontextprotocol/sdk to v1.25.2 |
| 45d4f5668 | fix | update yarn berry package manager configuration |
| 122ed27c9 | fix | use project-local temporary directory in ng add |
| a15db28b2 | perf | cache resolved specific version in package manager abstraction |
| 240588b7e | perf | optimize ng add version discovery |
| Commit | Type | Description |
|---|---|---|
| 36cf3afb4 | feat | add browserMode option to jasmine-vitest schematic |
| e71a72ffd | feat | generate detailed migration report for refactor-jasmine-vitest |
| 18cf6c51b | fix | add MCP configuration file to new workspaces |
| Commit | Type | Description |
|---|---|---|
| 1eda0a99f | feat | directly support ng-packagr in unit-test builder |
| 87175f9dc | feat | disable TestBed teardown during debugging in Vitest |
| 1e39c77a4 | fix | inject source-map-support for Vitest browser tests |
| 3fd7dcd76 | fix | normalize roots to POSIX in test discovery for Windows compatibility |
| 164e7dbbc | fix | resolve test files correctly on Windows when using non-C drives |
| ad99e00ad | fix | simplify SSL handling for ng serve with SSR (#31722) |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.0.6"></a>
|  | move 'provideZoneChangeDetection' to th
|  | improve VS Code background compilation
| Commit | Description |
|---|---|
| improve VS Code background compilation start/end detection | |
remove inlineSources from library tsconfig template |
| Commit | Description |
|---|---|
| add leading slash to well-known non-Angular URLs | |
| propagate status code to redirect | |
| skip SSR processing for well-known non-Angular URLs like favicon.ico |
|  | correctly handle yarn classic tag manif
| Commit | Description |
|---|---|
| correctly handle yarn classic tag manifest fetching | |
| correctly spawn package managers on Windows in new abstraction | |
optimize ng add version discovery |
| Commit | Description |
|---|---|
| conditionally provide Zone.js change detection in the built-in test main file |
|  | generate detailed migration report for
| Commit | Description |
|---|---|
generate detailed migration report for refactor-jasmine-vitest |
| Commit | Description |
|---|---|
| add signal forms lessons |
| Commit | Description |
|---|---|
| remove lazy imports in node tasks |
| Commit | Description |
|---|---|
| add filename truncation to test discovery | |
allow overriding Vitest coverage reportsDirectory option |
|  | add browserMode option to jasmine-vite
| Commit | Description |
|---|---|
| add browserMode option to jasmine-vitest schematic | |
| add MCP configuration file to new workspaces |
| Commit | Description |
|---|---|
| Add MCP tools for building and running devservers |
| Commit | Description |
|---|---|
simplify SSL handling for ng serve with SSR (#31722) |
|  | handle platform destruction during rend
| Commit | Type | Description |
|---|---|---|
| 730ae6609 | fix | handle platform destruction during rendering |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.0.5"></a>
|  | move 'provideZoneChangeDetection' to th
| Commit | Description |
|---|---|
| use narrower types for new MCP TS SDK compatibility |
| Commit | Description |
|---|---|
| ensure correct project targeting during Vitest debugging |
| Commit | Type | Description |
|---|---|---|
| 249563749 | fix | use narrower types for new MCP TS SDK compatibility |
| Commit | Type | Description |
|---|---|---|
| cbd0718b9 | fix | move 'provideZoneChangeDetection' to the root module |
| 33f7cf761 | fix | update application schematics for module-based apps to use 'provideZoneChangeDetection' |
| 37b14d1f7 | fix | update default app component message |
| c37dccb09 | fix | update default app component welcome message |
| Commit | Type | Description |
|---|---|---|
| 2b9be3a7c | fix | ensure correct project targeting during Vitest debugging |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.14"></a>
|  | improve VS Code background compilation
| Commit | Description |
|---|---|
| improve VS Code background compilation start/end detection | |
remove inlineSources from library tsconfig template |
| Commit | Description |
|---|---|
| add leading slash to well-known non-Angular URLs | |
| propagate status code to redirect | |
| skip SSR processing for well-known non-Angular URLs like favicon.ico |
| Commit | Type | Description |
|---|---|---|
| b671245b9 | fix | improve VS Code background compilation start/end detection |
| 85a28dec7 | fix | remove inlineSources from library tsconfig template |
| Commit | Type | Description |
|---|---|---|
| deb4fff61 | fix | add browser condition to resolver for vitest |
| 570ce8d3e | fix | allow non-prefixed requests when using SSR and base href |
| 4dd3c1a32 | fix | conditionally manage Vitest UI option |
| 4b8b7caec | fix | ensure tests run when compilation error is resolved |
| bef4fcecb | fix | remove LmdbCacheStore export from private API |
| Commit | Type | Description |
|---|---|---|
| bb54747da | fix | add leading slash to well-known non-Angular URLs |
| 0cfe2e749 | fix | propagate status code to redirect |
| eadadb848 | fix | skip SSR processing for well-known non-Angular URLs like favicon.ico |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.0.3"></a>
|  | conditionally provide Zone.js change de
| Commit | Description |
|---|---|
| conditionally provide Zone.js change detection in the built-in test main file |
| Commit | Type | Description |
|---|---|---|
| 5d85f416f | fix | conditionally provide Zone.js change detection in the built-in test main file |
| Commit | Type | Description |
|---|---|---|
| 778b4cffc | fix | Add custom middleware for to present an Angular-tailored message |
| 9b02ab2ee | fix | Ensure disposal of close-javascript-transformer |
| 0fc7d576e | fix | ensure locale base href retains leading slash (#32040) |
| b141670a2 | fix | inject testing polyfills in Karma unit-test executor |
| 88c18ce68 | fix | support NODE_EXTRA_CA_CERTS in SSR SSL plugin |
<!-- CHANGELOG SPLIT MARKER -->
<a name="21.0.2"></a>
|  | update @modelcontextprotocol/sdk to v1.
| Commit | Type | Description |
|---|---|---|
| f1a7116cd | fix | update @modelcontextprotocol/sdk to v1.24.0 |
| Commit | Type | Description |
|---|---|---|
| dc6d9469e | fix | remove lazy imports in node tasks |
| Commit | Type | Description |
|---|---|---|
| f8a1939fd | fix | add filename truncation to test discovery |
| 86dd3297f | fix | allow overriding Vitest coverage reportsDirectory option |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.13"></a>
|  | add missing imports for lifecycle hooks
| Commit | Description |
|---|---|
| ensure dependencies are resolved correctly for node modules directory check |
| Commit | Description |
|---|---|
handle X-Forwarded-Prefix and APP_BASE_HREF in redirects |
|
| prevent redirect loop with encoded query parameters |
| Commit | Type | Description |
|---|---|---|
| 363496ae0 | fix | ensure dependencies are resolved correctly for node modules directory check |
| Commit | Type | Description |
|---|---|---|
| 2f58705cb | fix | add missing imports for lifecycle hooks in jasmine-vitest migration |
| c973bb9ca | fix | add mock names to createSpyObj transformation |
| 4534c9848 | fix | do not set esModuleInterop and moduleResolution when module is preserve |
| 16d898e75 | fix | fix migration of jasmine.clock().mockDate() |
| 21c3eac72 | fix | handle createSpyObj without base name on refactor-jasmine-vitest |
| b8c99aa4c | fix | improve safety of done callback transformation |
| 4a71e06fc | fix | silently skip when the build target already uses one of the new builders |
| 2ffdae421 | fix | support testRunner option in library schematic |
| 145de4a58 | fix | warn about loose matching in arrayWithExactContents |
| Commit | Type | Description |
|---|---|---|
| d097df2d7 | fix | correct Vitest coverage path resolution for JSDOM on Windows |
| cdb607ada | fix | correctly configure per-browser headless mode in Vitest runner |
| 244931ece | fix | correctly invoke isTTY as a function |
| 54d542738 | fix | ensure correct URL joining for prerender routes |
| a28b38bbe | fix | force dev-server to use HTTP/1.1 when using SSR with SSL |
| 59ff867f0 | fix | normalize --include paths to posix |
| Commit | Type | Description |
|---|---|---|
| 03e231216 | fix | handle X-Forwarded-Prefix and APP_BASE_HREF in redirects |
| 3cac01882 | fix | prevent redirect loop with encoded query parameters |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.12"></a>
|  | remove deprecated javascriptEnabled opt…
| Commit | Description |
|---|---|
| ensure vitest code coverage handles virtual files correctly | |
expand jest and jest-environment-jsdom to allow version 30 |
|
| make zone.js optional in server and app-shell builders |
ng commands will no longer automatically detect and use cnpm as the package manager. As an alternative use the .npmrc file to ensure npm uses the cnpm registry.javascriptEnabled option for Less is no longer supported. Projects relying on inline JavaScript within Less files will need to refactor their stylesheets to remove this dependency.ng commands will no longer automatically detect and use cnpm as the package manager. As an alternative use the .npmrc file to ensure npm uses the cnpm registry.javascriptEnabled option for Less is no longer supported. Projects relying on inline JavaScript within Less files will need to refactor their stylesheets to remove this dependency.| Commit | Type | Description |
|---|---|---|
| e417c89f9 | feat | Add addTypeToClassName option to relevant schematics |
| ede5e52bc | feat | add include option to jasmine-to-vitest schematic |
| c119910f4 | feat | add AGENTS.md support to ai-config schematic |
| d0d2a17b8 | feat | add Jasmine spy API transformations to jasmine-to-vitest schematic |
| e7d955bed | feat | add matcher transformations to jasmine-to-vitest schematic |
| 629f5cb18 | feat | add misc transformations to jasmine-to-vitest schematic |
| 4912f3990 | feat | add Tailwind CSS option to application schematic and ng new |
| 2a518016d | feat | Applications are zoneless by default |
| 2ffc527b1 | feat | configure Vitest for new projects and allow runner choice |
| 58474ec7d | feat | introduce initial jasmine-to-vitest unit test refactor schematic |
| 9f255f2b3 | feat | set packageManager in package.json on new projects |
| 4e6c94f21 | feat | support different file name style guides in ng new |
| 77741f5ee | fix | add 'update-typescript-lib' migration |
| f89750b27 | fix | add addImports option to jasmine-vitest schematic |
| 9dab5780a | fix | add fixture.whenStable in spec files when zoneless apps |
| 8f0f6a5f1 | fix | add migration to update moduleResolution to bundler |
| e8feba9ee | fix | add missing typeSeparator to main.ts.template file |
| 515b09c4f | fix | add Vitest config generation and runner checks |
| 0e83fe1a8 | fix | add warnings and improve Karma config generation |
| b91fa31f2 | fix | align Karma project generation with unified unit-test builder |
| c967a447c | fix | correct spacing in application spec tsconfig |
| 00d941c43 | fix | correct style guide paths for standalone components |
| e33e77d12 | fix | flag '--file-name-style-guide=2016' - wrong import in main.ts |
| f35b9f331 | fix | improve comment preservation in jasmine-to-vitest |
| 6615fcf03 | fix | issues in apps generated with '--file-name-style-guide=2016' flag |
| e304821d5 | fix | make ai-config schematic non-destructive |
| 512ad282a | fix | preserve blank lines in jasmine-to-vitest schematic |
| b524ba426 | fix | remove empty i18n-extract target for new projects |
| 8e6e0a293 | fix | remove explicit flag for host bindings |
| afb4d3e37 | fix | remove extra space before async in spec templates |
| b983ea8e5 | fix | respect skip-install for tailwind schematic |
| 54c4eae2a | fix | transform Jasmine type annotations in jasmine-to-vitest schematic |
| 14c0a9bac | perf | optimize AST traversal utilities |
| Commit | Type | Description |
|---|---|---|
| 58d101d5e | feat | add --json output to ng version |
| d014630fa | feat | add advanced filtering to MCP example search |
| 6d3a3c579 | feat | add ai-tutor mcp tool |
| 1c06b16a9 | feat | add builder info to list_projects MCP tool |
| 301b50da4 | feat | add fallback support for packages without direct ng add functionality |
| 3040b777e | feat | add style language detection to list_projects tool |
| 45024e836 | feat | add unit test framework detection to list_projects tool |
| 104c90768 | feat | enhance ng version output with more details |
| 286b6204c | feat | make documentation search tool version-aware |
| 406315d09 | feat | make find_examples tool version-aware |
| 68e711307 | feat | make get_best_practices tool version-aware |
| 50453fdee | feat | overhaul ng version command output |
| 1ee9ce3c9 | feat | promote MCP find_examples tool to a stable tool |
| 0d53e82d5 | feat | provide detailed peer dependency conflict errors in ng add |
| f513089e2 | feat | remove direct support for cnpm |
| c17d7a929 | fix | add schema versioning and metadata to example database |
| dbf1aaf70 | fix | add snippet support to example search MCP tool |
| dfb4242b3 | fix | add vitest to version command output |
| 11cee1acb | fix | correct boolean parsing in MCP example front matter |
| 122a8c0e2 | fix | correct frontmatter parsing in MCP examples tool |
| 431106559 | fix | correct query in find_examples to prevent runtime error |
| def412a55 | fix | enhance find_examples MCP tool with structured output |
| 0922a033f | fix | improve JSON schema parsing for command options |
| f099c9157 | fix | improve list_projects MCP tool to find all workspaces in monorepos |
| 1be35b343 | fix | promote zoneless migration MCP tool to stable |
| e5aed6d65 | fix | show planned actions in ng add dry run |
| 4deac3ec7 | fix | support multi-database search in find_examples MCP tool |
| aeb49dd52 | perf | cache dependency lookups during ng add |
| 5e534090e | perf | parallelize peer dependency checks in ng add |
| Commit | Type | Description |
|---|---|---|
| 6e395fc0c | fix | ensure vitest code coverage handles virtual files correctly |
| 53899511a | fix | expand jest and jest-environment-jsdom to allow version 30 |
| 7a8c94615 | fix | make zone.js optional in server and app-shell builders |
| Commit | Type | Description |
|---|---|---|
| 00426e315 | feat | add --list-tests flag to unit-test builder |
| a908bf3d4 | feat | add 'filter' option to unit-test builder |
| 3e0209d0a | feat | add browserViewport option for vitest browser tests |
| 3b7dabbf1 | feat | add advanced coverage options to unit-test builder |
| c0b00d78e | feat | add reporter output file option for unit-test |
| 66dd6dd83 | feat | allow options for unit test reporters |
| a90bea5b5 | feat | support .test.ts files by default in unit test builder |
| b2f048773 | fix | add --ui option for Vitest runner |
| 530d9270e | fix | add define option to dev-server |
| b554bd73a | fix | add temporary directory cleanup for Vitest executor |
| c6176f6df | fix | add upfront dependency validation for unit-test runners |
| 63c98741a | fix | add webcontainer support for Vitest browser provider |
| fcdbf6c19 | fix | allow globals to be set to false |
| 542d52868 | fix | allow custom runner configuration file for unit-test |
| 0505f954d | fix | allow unit-test progress option passthrough for building |
| 931c62d20 | fix | allow unit-test runner config with absolute path |
| a11dd31f0 | fix | configure Vitest cache to use Angular cache |
| abf003268 | fix | correct Vitest builder watch mode execution |
| f05ffd104 | fix | correct Vitest coverage include handling for virtual files |
| cd5c92b99 | fix | correct Vitest coverage reporting for test files |
| 07f712253 | fix | correctly handle absolute paths and casing in test discovery |
| bf468e1eb | fix | direct check include file exists in unit-test discovery |
| 50e330d33 | fix | disable glob directory expansion when finding tests |
| 49b65aba8 | fix | disable Vitest test isolation by default |
| 1529595d4 | fix | drop support for TypeScript 5.8 |
| a44f8fa94 | fix | dynamically select Vitest DOM environment |
| ae35543af | fix | enhance Vitest config merging and validation |
| fec106b60 | fix | enhance Vitest dependency externalization and pre-bundling |
| f7c4a4c1d | fix | enhance Vitest resolution for optimal package loading |
| ee5e127d5 | fix | ensure ɵgetOrCreateAngularServerApp is always defined after errors |
| 0830f4fb5 | fix | ensure TestBed cleanup hooks are always registered |
| 41b12509a | fix | ensure TestBed setup is robust in non-isolated Vitest |
| 55145f582 | fix | ensure Vitest setup files are executed in order |
| 3478aa332 | fix | exclude .angular from coverage instrumentation |
| 7c529c1bc | fix | externalize Angular dependencies in Vitest runner |
| 69c3b1226 | fix | improve error handling in unit-test builder |
| bab5806c2 | fix | introduce vitest-base.config for test configuration |
| 73621998f | fix | normalize paths for Vitest runner output files |
| fa5c92346 | fix | prioritize string type for runnerConfig schema |
| d0787c11d | fix | provide default excludes for vitest coverage |
| ac10f323e | fix | relax requirement for files to be in TS compilation |
| 139758586 | fix | remove deprecated javascriptEnabled option for Less |
| 6576bb598 | fix | remove explicit test isolation configuration |
| 9132e6af9 | fix | resolve browser provider packages using project resolver |
| 26127bd3b | fix | resolve PostCSS plugins relative to config file |
| dae732059 | fix | serve build assets and styles in vitest |
| 705af2278 | fix | set coverage report directory to coverage/project-name |
| 0851d2eae | fix | show full aggregate errors from vitest |
| cc2668f57 | fix | simplify SSL handling for ng serve with SSR (#31723) |
| 907eabdd3 | fix | support ESM PostCSS plugins |
| 62938e799 | fix | update vitest to 4.0.6 and remove coverage workaround |
<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.11"></a>
|  | flag '--file-name-style-guide=2016' - w
|  | add missing typeSeparator to main.ts.te
| Commit | Description |
|---|---|
| add missing typeSeparator to main.ts.template file | |
| issues in apps generated with '--file-name-style-guide=2016' flag |
|  | enhance Vitest resolution for optimal p
|  | support multi-database search in find_e
| Commit | Description |
|---|---|
| support multi-database search in find_examples MCP tool |
|  | correct tsconfig.spec.json include for
| Commit | Description |
|---|---|
correct tsconfig.spec.json include for spec files |
| Commit | Description |
|---|---|
| add schema versioning and metadata to example database | |
| promote zoneless migration MCP tool to stable |
|  | add addImports option to jasmine-vitest
| Commit | Description |
|---|---|
| add vitest to version command output |
| Commit | Description |
|---|---|
| update vitest to 4.0.6 and remove coverage workaround |
| Commit | Description |
|---|---|
| improve locale handling in app-engine | |
| improve route matching for wildcard routes |
Nothing published for this version
|  | correct spacing in application spec tsc
| Commit | Description |
|---|---|
| correct spacing in application spec tsconfig | |
| correct style guide paths for standalone components |
| Commit | Description |
|---|---|
| ensure vitest code coverage handles virtual files correctly |
|  | configure Vitest for new projects and
| Commit | Description |
|---|---|
respect --force option when schematic contains host.create |
| Commit | Description |
|---|---|
| direct check include file exists in unit-test discovery | |
| resolve Angular locale data namespace in esbuild |
| Commit | Description |
|---|---|
| correctly handle routes with matrix parameters | |
| ensure server-side navigation triggers a redirect |
|  | add include option to jasmine-to-vites
| Commit | Description |
|---|---|
expand jest and jest-environment-jsdom to allow version 30 |
| Commit | Description |
|---|---|
support .test.ts files by default in unit test builder |
| Commit | Description |
|---|---|
| prevent malicious URL from overriding host |
|  | remove extra space before async in spec
| Commit | Description |
|---|---|
| remove extra space before async in spec templates |
| Commit | Description |
|---|---|
add builder info to list_projects MCP tool |
|
enhance ng version output with more details |
| Commit | Description |
|---|---|
| cleanup karma temporary directory after process exit | |
| disable glob directory expansion when finding tests | |
| normalize paths for Vitest runner output files |
|  | add AGENTS.md support to ai-config sch
| Commit | Description |
|---|---|
add --json output to ng version |
|
overhaul ng version command output |
|
| improve JSON schema parsing for command options |
| Commit | Description |
|---|---|
mark InjectionToken as pure for improved tree-shaking |
|  | remove deprecated javascriptEnabled opt…
| Commit | Description |
|---|---|
| add ai-tutor mcp tool |
| Commit | Description |
|---|---|
| Applications are zoneless by default | |
set packageManager in package.json on new projects |
|
| add 'update-typescript-lib' migration | |
add __screenshots__/ to .gitignore |
| Commit | Description |
|---|---|
| make zone.js optional in server and app-shell builders |
| Commit | Description |
|---|---|
| avoid retaining rendered HTML in memory post-request |
javascriptEnabled option for Less is no longer supported. Projects relying on inline JavaScript within Less files will need to refactor their stylesheets to remove this dependency.|  | add 'filter' option to unit-test build
|  | add advanced filtering to MCP example
| Commit | Description |
|---|---|
| align labels in ai-config schema | |
| remove explicit flag for host bindings | |
| respect skip-install for tailwind schematic |
| Commit | Description |
|---|---|
| avoid extra tick in SSR builds |
| Commit | Description |
|---|---|
| introduce BootstrapContext for isolated server-side rendering |
The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.
Before:
const bootstrap = () => bootstrapApplication(AppComponent, config);
After:
const bootstrap = (context: BootstrapContext) =>
bootstrapApplication(AppComponent, config, context);
For more information please see: https://github.com/angular/angular/security/advisories/GHSA-68x2-mx4q-78m7
|  | Add addTypeToClassName option to relev
| Commit | Description |
|---|---|
Add addTypeToClassName option to relevant schematics |
|
support different file name style guides in ng new |
|
| optimize AST traversal utilities |
| Commit | Description |
|---|---|
| avoid extra tick in SSR dev-server builds | |
| maintain media output hashing with vitest unit-testing |
|  | provide detailed peer dependency confl
| Commit | Description |
|---|---|
| correctly set default array values |
ng commands will no longer automatically detect and use cnpm as the package manager. As an alternative use the .npmrc file to ensure npm uses the cnpm registry.|  | allow unit-test progress option passthr
@angular-devkit/build-angular Commit Description update undici to 7.29.1
| Commit | Type | Description |
|---|---|---|
| c37642011e | fix | update undici to 7.29.1 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.8"></a>
ensure public directory containment in CommonEngine
| Commit | Type | Description |
|---|---|---|
| b4059cdc7 | fix | update less to 4.9.0 |
| Commit | Type | Description |
|---|---|---|
| c3e5982e4 | fix | ensure public directory containment in CommonEngine |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.6"></a>
update webpack-dev-server to 5.2.6
| Commit | Type | Description |
|---|---|---|
| 94b620acd7 | fix | update webpack-dev-server to 5.2.6 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.5"></a>
|  | update dependency @modelcontextprotocol
| Commit | Type | Description |
|---|---|---|
| 3962517b9 | fix | update dependency @modelcontextprotocol/sdk to v1.30.0 |
| Commit | Type | Description |
|---|---|---|
| f348efe8b | fix | bump undici to 7.29.0 |
<!-- CHANGELOG SPLIT MARKER -->
<a name="22.1.3"></a>
Your coding agent can read these notes before it upgrades. Set up the MCP server →