Angular - the core framework
Last release today
27 Aug 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
1 version withdrawn
withdrawn after publishing
10 years old
1101 releases · first in 2016
Release timeline
1101 releases since 2016Releases
- 20.3.1915 Apr 2026
Release notes
Open source →Additional notes
Open source →platform-server
Commit Type Description 303d4cd580 fix prevent SSRF bypasses via protocol-relative and backslash URLs <!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.9"></a>
- 20.3.1812 Mar 2026
Release notes
Open source →compiler
Commit Description disallow translations of iframe src core
Commit Description sanitize translated attribute bindings with interpolations sanitize translated form attributes Additional notes
Open source →compiler
Commit Type Description 02fbf08890 fix disallow translations of iframe src core
Commit Type Description 72126f9a08 fix sanitize translated attribute bindings with interpolations 626bc8bc20 fix sanitize translated form attributes <!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.4"></a>
- 20.3.1725 Feb 2026
Release notes
Open source →core
Commit Description block creation of sensitive URI attributes from ICU messages Breaking Changes
core
-
Angular now only applies known attributes from HTML in translated ICU content. Unknown attributes are dropped and not rendered.
(cherry picked from commit 03da204b6daa5e4583e0d0968c2107390bbd8235)
Additional notes
Open source →Breaking Changes
core
-
Angular now only applies known attributes from HTML in translated ICU content. Unknown attributes are dropped and not rendered.
(cherry picked from commit 03da204b6daa5e4583e0d0968c2107390bbd8235)
core
Commit Type Description 7f9de3c118 fix block creation of sensitive URI attributes from ICU messages <!-- CHANGELOG SPLIT MARKER -->
<a name="21.2.0"></a>
-
- 20.3.167 Jan 2026
Release notes
Open source →Additional notes
Open source →core
Commit Type Description c2c2b4aaa8 fix sanitize sensitive attributes on SVG script elements <!-- CHANGELOG SPLIT MARKER -->
<a name="19.2.18"></a>
- 20.3.151 Dec 2025
Release notes
Open source →Additional notes
Open source →compiler
Commit Type Description d1ca8ae043 fix prevent XSS via SVG animation attributeNameand MathML/SVG URLs<!-- CHANGELOG SPLIT MARKER -->
<a name="19.2.17"></a>
- 20.3.1425 Nov 2025
Release notes
Open source →Additional notes
Open source →http
Commit Type Description 0276479e7d fix prevent XSRF token leakage to protocol-relative URLs <!-- CHANGELOG SPLIT MARKER -->
<a name="21.0.1"></a>
- 20.3.1319 Nov 2025
- 20.3.1214 Nov 2025
- 20.3.1112 Nov 2025
Release notes
Open source →common
Commit Description remove placeholder image listeners once view is removed compiler
Commit Description support arbitrary nesting in :host-context() support commas in :host() argument support complex selectors in :nth-child() support one additional level of nesting in :host() core
Commit Description skip leave animations on view swaps Additional notes
Open source →common
Commit Type Description 5047849a4a fix remove placeholder image listeners once view is removed compiler
Commit Type Description f9d0818087 fix support arbitrary nesting in :host-context() 106b9040df fix support commas in :host() argument 9419ea348a fix support complex selectors in :nth-child() 036c5d2a07 fix support one additional level of nesting in :host() core
Commit Type Description dcdd1bcdbb fix skip leave animations on view swaps <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.10"></a>
- 20.3.105 Nov 2025
Release notes
Open source →compiler-cli
Commit Description make required inputs diagnostic less noisy migrations
Commit Description Prevent removal of templates referenced with preceding whitespace characters Additional notes
Open source →compiler-cli
Commit Type Description 840db59dc1 fix make required inputs diagnostic less noisy migrations
Commit Type Description a45e6b2b66 fix Prevent removal of templates referenced with preceding whitespace characters <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.9"></a>
- 20.3.929 Oct 2025
- 20.3.722 Oct 2025
Release notes
Open source →animations
Commit Description account for Element.animateexceptions (#64506)compiler
Commit Description correctly compile long numeric HTML entities (#64297) compiler-cli
Commit Description missingStructuralDirective diagnostic produces false negatives (#64470) core
Commit Description pass element removal property through in all locations (#64565) prevent duplicate nodes from being retained with fast `animate.leave`` calls (#64592) router
Commit Description Fix outlet serialization and parsing with no primary children (#64505) Surface parse errors in Router.parseUrl (#64503) Additional notes
Open source →animations
Commit Type Description bd38cd45a5 fix account for Element.animateexceptions (#64506)compiler
Commit Type Description 891f180262 fix correctly compile long numeric HTML entities (#64297) compiler-cli
Commit Type Description 371274bfc6 fix missingStructuralDirective diagnostic produces false negatives (#64470) core
Commit Type Description 4c89a267c3 fix pass element removal property through in all locations (#64565) 2fad4d4ab6 fix prevent duplicate nodes from being retained with fast `animate.leave`` calls (#64592) router
Commit Type Description cfd8ed3fff fix Fix outlet serialization and parsing with no primary children (#64505) 182fe78f91 fix Surface parse errors in Router.parseUrl (#64503) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.6"></a>
- 20.3.616 Oct 2025
Release notes
Open source →core
Commit Description update animation scheduling (#64441) platform-browser
Commit Description DomEventsPluginshould always be the last plugin to be called forsupports(). (#50394)Additional notes
Open source →core
Commit Type Description 911d6822cb fix update animation scheduling (#64441) platform-browser
Commit Type Description 2ece42866d fix DomEventsPluginshould always be the last plugin to be called forsupports(). (#50394)<!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.5"></a>
- 20.3.515 Oct 2025
Release notes
Open source →compiler-cli
Commit Description capture metadata for undecorated fields (#63957) (#64317) fix performance of "interpolated signal not invoked" check (#64410) core
Commit Description fixes regression in animate.leavefunction bindings (#64413)Prevents early style pruning with leave animations (#64335) migrations
Commit Description migrating input with more than 1 usage in a method (#64367) remove error for no matching files in control flow migration (#64253) (#64314) router
Commit Description Scroll restoration should use instant scroll behavior for traversals (#64299) Additional notes
Open source →compiler-cli
Commit Type Description 8dec92ff9f fix capture metadata for undecorated fields (#63957) (#64317) c2e817b0ef perf fix performance of "interpolated signal not invoked" check (#64410) core
Commit Type Description f15cfa4cc4 fix fixes regression in animate.leavefunction bindings (#64413)d54dd674ca fix Prevents early style pruning with leave animations (#64335) migrations
Commit Type Description 554573e524 fix migrating input with more than 1 usage in a method (#64367) 2c79ca0b57 fix remove error for no matching files in control flow migration (#64253) (#64314) router
Commit Type Description 6e4bcc7d22 fix Scroll restoration should use instant scroll behavior for traversals (#64299) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.4"></a>
- 20.3.48 Oct 2025
Release notes
Open source →core
migrations
Commit Description preserve component imports when pruning NgModules in standalone migration (#64186) Additional notes
Open source →core
Commit Type Description 853ed169a8 fix ensure missing leave animations don't queue leave animations (#64226) 6fed986b7a fix Fixes animations in conjunction with content projection (#63776) 76fe5599fe fix handle undefined CSS time values in parseCssTimeUnitsToMs function (#64181) 3b959105be fix prevent early exit from leave animations when multiple transitions are present (#64225) migrations
Commit Type Description 65884895ff fix preserve component imports when pruning NgModules in standalone migration (#64186) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.3"></a>
- 20.3.32 Oct 2025
Release notes
Open source →compiler
Commit Description recover template literals with broken expressions (#64150) core
migrations
Commit Description handle shorthand property declarations in NgModule (#64160) skip migration for inputs with 'this' references (#64142) Additional notes
Open source →compiler
Commit Type Description f51ab32fb3 fix recover template literals with broken expressions (#64150) core
Commit Type Description 542cd0019a fix do not rename ARIA property bindings to attributes (#64089) 0e928fbc4a fix Fixes animations in conjunction with content projection (#63776) e5157bd933 fix prevents unintended early termination of leave animations and hoisting (#64088) migrations
Commit Type Description 1710cbd7d4 fix handle shorthand property declarations in NgModule (#64160) 77b6305a4b fix skip migration for inputs with 'this' references (#64142) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.2"></a>
- 20.3.224 Sept 2025
Release notes
Open source →compiler-cli
Commit Description capture metadata for undecorated fields (#63904) resolve import alias in defer blocks (#63966) core
Commit Description fix narrowing of Resource.hasValue()(#63994)prevent animations renderer from impacting animate.leave(#63921)forms
Commit Description Emit FormResetEventwhen resetting control (#64034)migrations
Commit Description handle import aliases to the same module name (#63934) handle reused templates in control flow migration (#63996) Additional notes
Open source →compiler-cli
Commit Type Description ba40153ac0 fix capture metadata for undecorated fields (#63904) 1d4f81c8ee fix resolve import alias in defer blocks (#63966) core
Commit Type Description 9515a70933 fix fix narrowing of Resource.hasValue()(#63994)e78451cf8a fix prevent animations renderer from impacting animate.leave(#63921)forms
Commit Type Description 1fd8d5d446 fix Emit FormResetEventwhen resetting control (#64034)migrations
Commit Type Description 16d0d43ad4 fix handle import aliases to the same module name (#63934) 3ebaeccb46 fix handle reused templates in control flow migration (#63996) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.3.1"></a>
- 20.3.117 Sept 2025
Release notes
Open source →compiler
Commit Description Add support for aria-invalid(#63748)compiler-cli
Commit Description only bind inputs that are part of microsyntax to a structural directive (#52453) signal not invoked diagnostic not raised when input has same name in template (#63754) core
Commit Description prevent animation events from being cleaned up on destroy (#63414) Prevent leave animations on a move operation (#63745) migrations
Commit Description fix route-lazy-loading migration (#63818) Additional notes
Open source →compiler
Commit Type Description 7fb5a8087e fix Add support for aria-invalid(#63748)compiler-cli
Commit Type Description 8843707919 fix only bind inputs that are part of microsyntax to a structural directive (#52453) 38c9921ff3 fix signal not invoked diagnostic not raised when input has same name in template (#63754) core
Commit Type Description 802dbcc2a0 fix prevent animation events from being cleaned up on destroy (#63414) 3ec8a5c753 fix Prevent leave animations on a move operation (#63745) migrations
Commit Type Description 6e54bdfdcb fix fix route-lazy-loading migration (#63818) <!-- CHANGELOG SPLIT MARKER -->
<a name="18.2.14"></a>
- 20.3.010 Sept 2025
Release notes
Open source →Commit Description remove refresh button from transfer state tab (#63592) core
Commit Description introduce BootstrapContextfor improved server bootstrapping (#63636)Breaking Changes
core
-
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);A schematic is provided to automatically update
main.server.tsfiles to pass theBootstrapContextto thebootstrapApplicationcall.In addition,
getPlatform()anddestroyPlatform()will now returnnulland be a no-op respectively when running in a server environment.
For more information please see: https://github.com/angular/angular/security/advisories/GHSA-68x2-mx4q-78m7
Additional notes
Open source →Breaking Changes
core
-
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);A schematic is provided to automatically update
main.server.tsfiles to pass theBootstrapContextto thebootstrapApplicationcall.In addition,
getPlatform()anddestroyPlatform()will now returnnulland be a no-op respectively when running in a server environment.(cherry picked from commit 8bf80c9d2314b4f2bcf3df83ae01552a6fc49834)
Commit Type Description a3f808d7c8 fix remove refresh button from transfer state tab (#63592) core
Commit Type Description 6117ccee2e feat introduce BootstrapContextfor improved server bootstrapping (#63636)<!-- CHANGELOG SPLIT MARKER -->
<a name="20.2.4"></a>
-
- 20.3.0-rc.010 Sept 2025pre-release
Release notes
Open source →Commit Description remove refresh button from transfer state tab (#63592) core
Commit Description introduce BootstrapContextfor improved server bootstrapping (#63636)Breaking Changes
core
-
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);A schematic is provided to automatically update
main.server.tsfiles to pass theBootstrapContextto thebootstrapApplicationcall.In addition,
getPlatform()anddestroyPlatform()will now returnnulland be a no-op respectively when running in a server environment.
For more information please see: https://github.com/angular/angular/security/advisories/GHSA-68x2-mx4q-78m7
-
- 20.2.43 Sept 2025
Release notes
Open source →core
Commit Description Fixed inject migration schematics for migrate destructured properties (#62832) platform-server
Commit Description prevent false warning for duplicate state serialization (#63525) Additional notes
Open source →core
Commit Type Description dc64f3e478 fix Fixed inject migration schematics for migrate destructured properties (#62832) platform-server
Commit Type Description d1d32db972 fix prevent false warning for duplicate state serialization (#63525) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.2.3"></a>
- 20.2.329 Aug 2025
Release notes
Open source →compiler
Commit Description fixes regression with event parsing and animate prefix (#63470) core
Additional notes
Open source →compiler
Commit Type Description 479a919f42 fix fixes regression with event parsing and animate prefix (#63470) core
Commit Type Description f87fad3fff fix avoid injecting internal error handler from a destroyed injector (#62275) 114906d2d6 fix Fix cancellation of animation enter classes (#63442) 596b545130 fix Prevent an error on cleanup when an rxResourcestreamthrew before returning anObservable(#63342)<!-- CHANGELOG SPLIT MARKER -->
<a name="20.2.2"></a>
- 20.2.227 Aug 2025
Release notes
Open source →compiler
Commit Description fixes animations on elements with structural directives (#63390) core
Commit Description Ensures @forloop animations never get cancelled (#63328)fix memory leak with leaving nodes tracking (#63328) Fixes animate.leavebinding to a string with spaces (#63366)Additional notes
Open source →compiler
Commit Type Description d7b6045d61 fix fixes animations on elements with structural directives (#63390) core
Commit Type Description 6c421ed65d fix Ensures @forloop animations never get cancelled (#63328)9093e0e132 fix fix memory leak with leaving nodes tracking (#63328) c8f07daf8f fix Fixes animate.leavebinding to a string with spaces (#63366)<!-- CHANGELOG SPLIT MARKER -->
<a name="20.2.1"></a>
- 20.2.121 Aug 2025
Release notes
Open source →Additional notes
Open source →compiler
Commit Type Description a28672fb70 fix Keep paraenthesis in Nullish + Boolean expression. (#63292) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.2.0"></a>
- 20.2.020 Aug 2025
Release notes
Open source →animations
Commit Description deprecate the animations package (#62795) compiler
Commit Description allow more characters in square-bracketed attribute names (#62742) fixes animation event host bindings not firing (#63217) compiler-cli
core
forms
Commit Description add support for pushing an array of controls to formarray (#57102) http
language-service
Commit Description support auto-import for attribute completions (#62797) support to report the deprecated API in the template (#62054) Support to resolve the re-export component. (#62585) platform-browser
Commit Description Warns on conflicting hydration and blocking navigation (#62963) router
service-worker
Deprecations
animations
- @angular/animations
core
- @angular/animations
router
- The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
Additional notes
Open source →Deprecations
animations
- @angular/animations
core
- @angular/animations
router
- The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
- The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
animations
Commit Type Description 9766116cea refactor deprecate the animations package (#62795) compiler
Commit Type Description 7767aa640c fix allow more characters in square-bracketed attribute names (#62742) 7b51728813 fix fixes animation event host bindings not firing (#63217) compiler-cli
Commit Type Description 5abfe4a899 feat add diagnostic for uninvoked functions in text interpolation (#59191) c4917074f1 fix display proper function in NG8117 message (#62842) 812463c563 fix Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054) 45b030b5ce fix prevent dom event assertion in TCB generation on older angular versions (#63053) core
Commit Type Description 6b1f4b9e8b feat add enter and leave animation instructions (#62682) cec91c0035 feat add option to infer the tag names of components in tests (#62283) 141bb75ff2 feat Promote zoneless to stable (#62699) 4138aca91f feat render ARIA property bindings as attributes (#62630) a409534d6c feat support asaliases onelse ifblocks (#63047)745ea44394 feat support TypeScript 5.9 (#62541) 593cc8a368 fix checks if body exists before continuing (#62768) bdc31675b7 fix ensure animate events do not have duplicate elements (#63216) de3a0c5cf3 fix Fix animate.enterclass removal when composing classes (#62981)6597ac0af7 fix fix support for space separated strings in leave animations (#62979) ebd622b344 fix fixes empty animations when recalculating styles (#63007) 455b147488 fix fixes timing issues with enter animations (#62925) f9d73cc687 fix handle cases where classes added have no animations (#63242) 6a1184600c fix prevents duplicate nodes when @iftoggles with leave animations (#63048)063b5e166f fix switch check to documentElement with chaining (#62773) 320de4e96d refactor deprecate animations field on component interface (#62895) forms
Commit Type Description c353497a01 feat add support for pushing an array of controls to formarray (#57102) http
Commit Type Description 0984b30388 feat Add redirected property to HttpResponse and HttpErrorResponse (#62675) be811fee79 feat add referrer & integrity support for fetch requests in httpResource (#62461) 1cf9d9064c feat Add support for fetch referrer & integrity options in HttpClient (#62417) 1408baff45 fix Add missing timeout and transferCache options to HttpClient(#62586)language-service
Commit Type Description c81e345e72 feat support auto-import for attribute completions (#62797) d64dd27a02 feat support to report the deprecated API in the template (#62054) 591c7e2ec8 fix Support to resolve the re-export component. (#62585) platform-browser
Commit Type Description 52b8e07d6e feat Warns on conflicting hydration and blocking navigation (#62963) router
Commit Type Description d00b3fed58 feat add a currentNavigationsignal to theRouterservice. (#62971)687c374826 feat add a currentNavigation signal to the Router service. (#63011) 9c45c322d1 fix ensure preloaded components are properly activated (#62502) service-worker
Commit Type Description 8255e0cf15 feat add messageerror event handling and logging (#62834) 5220b51e75 feat Adds for type in provideServiceWorker (#62831) 4ac6171b09 feat Adds support for updateViaCache in provideServiceWorker (#62721) b65c3d5e19 feat Improves storage full detection in data caching (#62737) 3b214d2040 feat Logs unhandled promise rejections in service worker (#63059) 6d011687ec feat notify clients about version failures (#62718) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.8"></a>
- 20.2.0-rc.113 Aug 2025pre-release
Release notes
Open source →compiler
Commit Description incorrect spans for AST inside input value with leading space (#63082) language-service
Commit Description support auto-import for attribute completions (#62797) - 20.2.0-rc.011 Aug 2025pre-release
Release notes
Open source →compiler-cli
Commit Description error when type checking host bindings of generic directive (#63061) core
Commit Description support asaliases onelse ifblocks (#63047)destroying the effect on afterRenderEffect(#63001)prevents duplicate nodes when @iftoggles with leave animations (#63048)router
Commit Description attempt to resolve component resources in JIT mode (#63062) service-worker
Commit Description Logs unhandled promise rejections in service worker (#63059) - 20.2.0-next.67 Aug 2025pre-release
Release notes
Open source →compiler-cli
Commit Description Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054) prevent dom event assertion in TCB generation on older angular versions (#63053) - 20.2.0-next.56 Aug 2025pre-release
Release notes
Open source →platform-browser
Commit Description Add IsolatedShadowDom encapsulation method (#62723) router
Commit Description add a currentNavigation signal to the Router service. (#63011) Deprecations
router
- The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
- 20.2.0-next.46 Aug 2025pre-release
Release notes
Open source →compiler-cli
Commit Description correctly type check host listeners to own outputs (#62965) core
forms
Commit Description add support for pushing an array of controls to formarray (#57102) http
Commit Description Reset headers, progress, and statusCode when using set()inHttpResource(#62873)migrations
Commit Description incorrect filtering in inject migration (#62913) platform-browser
Commit Description Warns on conflicting hydration and blocking navigation (#62963) router
Commit Description add a currentNavigationsignal to theRouterservice. (#62971)service-worker
Commit Description add messageerror event handling and logging (#62834) Adds for type in provideServiceWorker (#62831) Deprecations
router
- The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.
- 20.2.0-next.331 Jul 2025pre-release
Release notes
Open source →animations
Commit Description deprecate the animations package (#62795) compiler
Commit Description exclude more safe reads expression from 2way-binding (#62852) compiler-cli
Commit Description display proper function in NG8117 message (#62842) core
Commit Description update symbols for new signals api (#62284) deprecate animations field on component interface (#62895) http
Commit Description Add redirected property to HttpResponse and HttpErrorResponse (#62675) add missing http options allowed in fetch API (#62881) propagate plain errors when parsing fails (#62765) service-worker
Commit Description Improves storage full detection in data caching (#62737) notify clients about version failures (#62718) Deprecations
animations
- @angular/animations
core
- @angular/animations
- 20.2.0-next.223 Jul 2025pre-release
Release notes
Open source →compiler
Commit Description allow more characters in square-bracketed attribute names (#62742) fix detection of directive deps in JIT (#62666) compiler-cli
Commit Description add diagnostic for uninvoked functions in text interpolation (#59191) core
platform-browser
Commit Description resolve component resources before bootstrapping in JIT mode (#62758) service-worker
Commit Description Adds support for updateViaCache in provideServiceWorker (#62721) - 20.2.0-next.116 Jul 2025pre-release
Release notes
Open source →compiler
Commit Description incorrect spans for left side of binary operation (#62641) more permissive parsing of @ characters (#62644) compiler-cli
Commit Description infer type of event target for void elements (#62648) core
Commit Description support TypeScript 5.9 (#62541) Ensure application remains unstable during bootstrap (#62631) InputBinding marks component a dirty. (#62613) http
language-service
Commit Description support to report the deprecated API in the template (#62054) router
Commit Description ensure preloaded components are properly activated (#62502) handle errors from view transition readiness (#62535) - 20.2.0-next.09 Jul 2025pre-release
Release notes
Open source → - 20.1.820 Aug 2025
Release notes
Open source →compiler
Commit Description error when ng-content fallback has translated children (#63156) incorrect source span for expression AST inside template attribute (#63175) compiler-cli
Commit Description account for expression with type arguments during HMR extraction (#63261) Additional notes
Open source →compiler
Commit Type Description 691f5ed033 fix error when ng-content fallback has translated children (#63156) b1dec9bc50 fix incorrect source span for expression AST inside template attribute (#63175) compiler-cli
Commit Type Description cda402f1d8 fix account for expression with type arguments during HMR extraction (#63261) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.7"></a>
- 20.1.713 Aug 2025
Release notes
Open source →compiler
Commit Description incorrect spans for AST inside input value with leading space (#63082) compiler-cli
Commit Description error when type checking host bindings of generic directive (#63061) core
Commit Description destroying the effect on afterRenderEffect(#63001)router
Commit Description attempt to resolve component resources in JIT mode (#63062) Additional notes
Open source →compiler
Commit Type Description d9e37908a5 fix incorrect spans for AST inside input value with leading space (#63082) compiler-cli
Commit Type Description 4aa120ac00 fix error when type checking host bindings of generic directive (#63061) core
Commit Type Description 322042c5b3 fix destroying the effect on afterRenderEffect(#63001)router
Commit Type Description 5fd79424e3 fix attempt to resolve component resources in JIT mode (#63062) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.6"></a>
- 20.1.66 Aug 2025
- 20.1.56 Aug 2025
Release notes
Open source →compiler-cli
Commit Description correctly type check host listeners to own outputs (#62965) core
Commit Description properly recognize failed fetchresponses when loading external resources in JIT (#62992)http
Commit Description Reset headers, progress, and statusCode when using set()inHttpResource(#62873)migrations
Commit Description incorrect filtering in inject migration (#62913) Additional notes
Open source →compiler-cli
Commit Type Description 3b2e8efcac fix correctly type check host listeners to own outputs (#62965) core
Commit Type Description c9f3976eba fix properly recognize failed fetchresponses when loading external resources in JIT (#62992)http
Commit Type Description ae443f8eb0 fix Reset headers, progress, and statusCode when using set()inHttpResource(#62873)migrations
Commit Type Description 7a5851e4b0 fix incorrect filtering in inject migration (#62913) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.4"></a>
- 20.1.431 Jul 2025
Release notes
Open source →compiler
Commit Description exclude more safe reads expression from 2way-binding (#62852) core
Commit Description update symbols for new signals api (#62284) http
Commit Description add missing http options allowed in fetch API (#62881) propagate plain errors when parsing fails (#62765) Additional notes
Open source →compiler
Commit Type Description db3c5826ee fix exclude more safe reads expression from 2way-binding (#62852) core
Commit Type Description c633b63e56 fix update symbols for new signals api (#62284) http
Commit Type Description ab6033979a fix add missing http options allowed in fetch API (#62881) 15670d8417 fix propagate plain errors when parsing fails (#62765) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.3"></a>
- 20.1.323 Jul 2025
Release notes
Open source →core
Commit Description fix change tracking for Resource#hasValue (#62595) platform-browser
Commit Description resolve component resources before bootstrapping in JIT mode (#62758) Additional notes
Open source →core
Commit Type Description 2c522efbe5 fix fix change tracking for Resource#hasValue (#62595) platform-browser
Commit Type Description 2fd1f7beb5 fix resolve component resources before bootstrapping in JIT mode (#62758) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.2"></a>
- 20.1.217 Jul 2025
Release notes
Open source →Additional notes
Open source →compiler
Commit Type Description 8ad10fd63b fix fix detection of directive deps in JIT (#62666) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.1"></a>
- 20.1.116 Jul 2025
Release notes
Open source →compiler
Commit Description incorrect spans for left side of binary operation (#62641) more permissive parsing of @ characters (#62644) compiler-cli
Commit Description infer type of event target for void elements (#62648) core
Commit Description Ensure application remains unstable during bootstrap (#62631) InputBinding marks component a dirty. (#62613) http
Commit Description do not display warnings Angular detected that aHttpClientrequest with thekeepaliveoption was sent using XHRwhen option is not true (#62536)router
Commit Description handle errors from view transition readiness (#62535) Additional notes
Open source →compiler
Commit Type Description 75d2a349b4 fix incorrect spans for left side of binary operation (#62641) 70c8780c54 fix more permissive parsing of @ characters (#62644) compiler-cli
Commit Type Description 9506cdfaad fix infer type of event target for void elements (#62648) core
Commit Type Description 26ade4a337 fix Ensure application remains unstable during bootstrap (#62631) a81f0faa1a fix InputBinding marks component a dirty. (#62613) http
Commit Type Description 276836ee73 fix do not display warnings Angular detected that aHttpClientrequest with thekeepaliveoption was sent using XHRwhen option is not true (#62536)router
Commit Type Description 5949373692 fix handle errors from view transition readiness (#62535) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.1.0"></a>
- 20.1.09 Jul 2025
Release notes
Open source →common
Commit Description add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764) support decoding in NgOptimizedImage (#61905) compiler
compiler-cli
core
forms
Commit Description Allow ControlState as reset arguments for FormGroup/FormRecord(#55860)improve select performance (#61949) http
language-service
router
Commit Description Run loadComponentandloadChildrenfunctions in the route's injection context (#62133)service-worker
Commit Description support notification closes (#61442) support push subscription changes (#61856) Additional notes
Open source →common
Commit Type Description 58aedc37d1 feat add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764) ef10aa4005 feat support decoding in NgOptimizedImage (#61905) compiler
Commit Type Description 0dcf230d52 feat add support for new binary assignment operators (#62064) 5a76826d26 fix only report parser errors on invalid expression (#61793) 089ad0ee15 fix produce more accurate errors for interpolations (#62258) e9fcbb8af1 fix remove TypeScript from linker (#61618) compiler-cli
Commit Type Description e62fb359d6 feat add experimental support for fast type declaration emission (#61334) 0cf1001715 feat support host directives with direct external references in fast type declaration emission (#61469) b7ab5fa256 fix add signal checks to handle negated calls (#59970) 77fa204ad1 fix rename flag for enabling fast type declaration emission (#61353) c439d6938d fix symbol builder duplicating host directives (#61240) 3e1baa5a95 fix typo in NG2026 message (#61325) core
Commit Type Description 8163a8995e feat Add destroyedproperty onDestroyRef(#61849)737b35b684 feat Add destroyedproperty toEnvironmentInjector(#61951)2e0c98bd3f feat support bindings in TestBed (#62040) 4356e85456 fix fakeAsync should not depend on module import order (#61375) 8424b3bcd5 fix Fixes template outlet hydration (#61989) 583b9a7be5 fix missing useExisting providers throwing for optional calls (#61137) 8f65223bd8 fix update min Node.js support to 20.19, 22.12, and 24.0 (#61499) b785256b9e perf avoid intermediate arrays in definition (#61445) 56769de4d8 perf move property remapping for dom properties to compiler (#62421) forms
Commit Type Description 610bebfce9 fix Allow ControlState as reset arguments for FormGroup/FormRecord(#55860)4f0221e193 fix improve select performance (#61949) http
Commit Type Description 55fa38a1e5 feat add cache & priority support for fetch requests in httpResource (#62301) b6ef42843c feat add credentials support for fetch requests in httpResource (#62390) 73269cf5ce feat add keepalive support for fetch requests in httpResource (#61833) 27b7ec0a62 feat add mode & redirect for fetch request in httpResource (#62337) f0965c7acd feat Add support for fetch credentials options in HttpClient (#62354) 87322449a3 feat add support for fetch mode and redirect options in HttpClient (#62315) 9791ab1b6f feat Add support for fetch request cache and priority options (#61766) aa861c42ff feat add timeout option on httpResource. (#62326) c4cffe2063 feat Add timeout option to HTTP requests (#57194) cfbbb08437 feat add warning when withCredentials overrides explicit credentials (#62383) language-service
Commit Type Description 20c1f991e6 feat add semantic tokens for templates (#60260) cf55d1bdd4 feat Support importing the external module's export about the angular metadata. (#61122) 5d2e85920e feat support to fix missing required inputs diagnostic (#50911) router
Commit Type Description 9833d9ea47 feat Run loadComponentandloadChildrenfunctions in the route's injection context (#62133)service-worker
Commit Type Description c67dbda8ff feat support notification closes (#61442) 6e1df54799 feat support push subscription changes (#61856) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.0.6"></a>
- 20.1.0-rc.01 Jul 2025pre-release
Release notes
Open source →common
Commit Description add support for a custom EnvironmentInjector to NgComponentOutlet directive (#54764) compiler
Commit Description produce more accurate errors for interpolations (#62258) http
- 20.1.0-next.325 Jun 2025pre-release
Release notes
Open source →compiler
Commit Description add support for new binary assignment operators (#62064) compiler-cli
Commit Description add suggestion when pipe is missing (#62146) handle initializer APIs wrapped in type casts (#62203) core
http
Commit Description add keepalive support for fetch requests in httpResource (#61833) Add support for fetch request cache and priority options (#61766) language-service
Commit Description add semantic tokens for templates (#60260) support to fix missing required inputs diagnostic (#50911) router
Commit Description Run loadComponentandloadChildrenfunctions in the route's injection context (#62133)handle scrollRestoration error in restricted environments (#62186) upgrade
Commit Description Make zoneless work with hybrid apps (#61660) - 20.1.0-next.218 Jun 2025pre-release
Release notes
Open source →core
Commit Description support bindings in TestBed (#62040) Fixes template outlet hydration (#61989) inject APP_IDbefore injector is destroyed (#61885)Wrap ErrorEvent with no error property (#62081) migrations
Commit Description more robust trailing comma removal in unused imports migration (#62118) - 20.1.0-next.111 Jun 2025pre-release
Release notes
Open source →common
Commit Description support decoding in NgOptimizedImage (#61905) compiler-cli
Commit Description add signal checks to handle negated calls (#59970) core
Commit Description components marked for traversal resets reactive context (#61663) unregister onDestroyinoutputToObservable(#61882)forms
Commit Description improve select performance (#61949) - 20.1.0-next.04 Jun 2025pre-release
Release notes
Open source →compiler
Commit Description only report parser errors on invalid expression (#61793) remove TypeScript from linker (#61618) compiler-cli
core
forms
Commit Description Allow ControlState as reset arguments for FormGroup/FormRecord(#55860)language-service
Commit Description Support importing the external module's export about the angular metadata. (#61122) service-worker
Commit Description support notification closes (#61442) support push subscription changes (#61856) - 20.0.79 Jul 2025
Release notes
Open source → - 20.0.61 Jul 2025
- 20.0.525 Jun 2025
Release notes
Open source →compiler-cli
Commit Description add suggestion when pipe is missing (#62146) handle initializer APIs wrapped in type casts (#62203) core
router
Commit Description handle scrollRestoration error in restricted environments (#62186) upgrade
Commit Description Make zoneless work with hybrid apps (#61660) Additional notes
Open source →compiler-cli
Commit Type Description de0d525ad7 fix add suggestion when pipe is missing (#62146) 3eb5a79a83 fix handle initializer APIs wrapped in type casts (#62203) core
Commit Type Description a2e6f317a7 fix allow to set a resource in an error state (#62253) 4c00238a69 fix avoid injecting ErrorHandlerfrom a destroyed injector (#61886)369f03ad7f fix unable to retrieve defer blocks in tests when component injects ViewContainerRef (#62156) router
Commit Type Description 65c59dd796 fix handle scrollRestoration error in restricted environments (#62186) upgrade
Commit Type Description 144c429230 fix Make zoneless work with hybrid apps (#61660) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.0.4"></a>
- 20.0.418 Jun 2025
Release notes
Open source →core
Commit Description Fixes template outlet hydration (#62012) inject APP_IDbefore injector is destroyed (#61885)Wrap ErrorEvent with no error property (#62081) migrations
Commit Description more robust trailing comma removal in unused imports migration (#62118) Additional notes
Open source →core
Commit Type Description e343cdfb86 fix Fixes template outlet hydration (#62012) 67f657e4a3 fix inject APP_IDbefore injector is destroyed (#61885)ae212b51ee fix Wrap ErrorEvent with no error property (#62081) migrations
Commit Type Description 82bf9848a1 fix more robust trailing comma removal in unused imports migration (#62118) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.0.3"></a>
- 20.0.311 Jun 2025
- 20.0.26 Jun 2025
Release notes
Open source →core
Commit Description components marked for traversal resets reactive context (#61663) unregister onDestroyinoutputToObservable(#61882)Additional notes
Open source →core
Commit Type Description 1e8158baee fix components marked for traversal resets reactive context (#61663) 1cd23be57e fix unregister onDestroyinoutputToObservable(#61882)<!-- CHANGELOG SPLIT MARKER -->
<a name="20.0.1"></a>
- 20.0.14 Jun 2025
Release notes
Open source →compiler
Commit Description move defer trigger assertions out of parser (#61747) recover invalid parenthesized expressions (#61815) core
migrations
Commit Description avoid trailing whitespaces in unused imports migration (#61698) service-worker
Commit Description prevent duplicate fetches during concurrent update checks (#61443) update service worker to handle seeking better for videos (#60029) Additional notes
Open source →compiler
Commit Type Description 66a0ec6510 fix move defer trigger assertions out of parser (#61747) 8ecb1ba027 fix recover invalid parenthesized expressions (#61815) core
Commit Type Description 8c60cbfd1c fix takeUntilDestroyedcompletes immediately if DestroyRef already destroyed (#61847)b1d960d082 fix produce an error when incremental hydration is expected, but not configured (#61741) b4ed62ddf6 fix properly handle the case where getSignalGraph is called on a componentless NodeInjector (#60772) ddd22bea48 fix unregister onDestroyinResourceImplwhendestroy()is called (#61870)5c31e7e28d fix unregister onDestroywhen observable errors intoSignal(#61596)migrations
Commit Type Description e9820a6d48 fix avoid trailing whitespaces in unused imports migration (#61698) service-worker
Commit Type Description b93fa22f25 fix prevent duplicate fetches during concurrent update checks (#61443) 9743bd1317 fix update service worker to handle seeking better for videos (#60029) <!-- CHANGELOG SPLIT MARKER -->
<a name="20.0.0"></a>
- 20.0.028 May 2025
Release notes
Open source →Blog post: https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301
common
compiler
compiler-cli
core
forms
http
Commit Description add keepalive support for fetch requests (#60621) Delay stabilization until next app synchronization (#60656) platform-browser
Commit Description Deprecate the platform-browser-dynamicpackage (#61043)Deprecate the HammerJS integration (#60257) platform-server
Commit Description deprecate the testing entry point (#60915) router
Breaking Changes
common
- Using the
Yformatter (week-numbering year) without also includingw(week number) is now detected as suspicious date pattern, asyis typically intended. AsyncPipenow directly catches unhandled errors in subscriptions and promises and reports them to the application'sErrorHandler. For Zone-based applications, these errors would have been caught by ZoneJS and reported toErrorHandlerso the result is generally the same. The change to the exact mechanism for reporting can result in differences in test environments that will require test updates.
compiler
-
'in' in an expression now refers to the operator
-
voidin an expression now refers to the operatorPreviously an expression in the template like
{{void}}referred to a property on the component class. After this change it now refers to thevoidoperator, which would make the above example invalid. If you have existing expressions that need to refer to a property namedvoid, change the expression to usethis.voidinstead:{{this.void}}.
core
-
- TypeScript versions less than 5.8 are no longer supported.
-
the
TestBed.flushEffects()was removed - use theTestBed.tick()instead. -
provideExperimentalCheckNoChangesForDebughas several breaking changes:- It is renamed to
provideCheckNoChangesConfig - The behavior applies to all checkNoChanges runs
- The
useNgZoneOnStableoption is removed. This wasn't found to be generally more useful thaninterval
- It is renamed to
-
provideExperimentalZonelessChangeDetectionis renamed toprovideZonelessChangeDetectionas it is now "Developer Preview" rather than "Experimental". -
InjectFlagshas been removed.injectno longer acceptsInjectFlags.Injector.getno longer acceptsInjectFlags.EnvironmentInjector.getno longer acceptsInjectFlags.TestBed.getno longer acceptsInjectFlags.TestBed.injectno longer acceptsInjectFlags.
-
TestBed.gethas been removed. UseTestBed.injectinstead.
-
afterRender was renamed to afterEveryRender.
-
- Angular no longer supports Node.js v18.
- Node.js versions 22.0 to 22.10 are also no longer supported.
Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1. For the full list of supported versions, visit: https://angular.dev/reference/versions
-
PendingTasks.runno longer returns the result of the async function. If this behavior is desired, it can be re-implemented manually with thePendingTasks.add. Be aware, however, that promise rejections will need to be handled or they can cause the node process to shut down when using SSR. -
Uncaught errors in listeners which were previously only reported to
ErrorHandlerare now also reported to Angular's internal error handling machinery. For tests, this means that the error will be rethrown by default rather than only logging the error. Developers should fix these errors, catch them in the test if the test is intentionally covering an error case, or userethrowApplicationErrors: falseinconfigureTestingModuleas a last resort. -
The
anyoverload has been removed frominjector.get. It now only supportsProviderToken<T>and (deprecated since v4)string. -
Animations are guaranteed to be flushed when Angular runs automatic change detection or manual calls to
ApplicationRef.tick. Prior to this change, animations would not be flushed in some situations if change detection did not run on any views attached to the application. This change can affect tests which may rely on the old behavior, often by making assertions on DOM elements that should have been removed but weren't because DOM removal is delayed until animations are flushed. -
ApplicationRef.tickwill no longer catch and report errors to the appplicationErrorHandler. Errors will instead be thrown out of the method and will allow callers to determine how to handle these errors, such as aborting follow-up work or reporting the error and continuing. -
This commit deprecates
ng-reflect-*attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying onng-reflect-*attributes.To enable a more seamless upgrade to v20, we've added the
provideNgReflectAttributes()function (can be imported from the@angular/corepackage), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add theprovideNgReflectAttributes()function to the list of providers within the bootstrap call.
router
- The
RedirectFncan now returnObservableorPromise. Any code that directly calls functions returning this type may need to be adjusted to account for this. - Several methods in the public API of the Router which required writable arrays have now been updated to accept readonly arrays when no mutations are done.
- The guards arrays on
Routeno longer includeanyin the type union. The union includes functions for the functional guards as well as a type matchingInjector.get:ProviderToken<T>|string. Note that string is still deprecated on both the route guards andInjector.get.
Deprecations
core
ngIf/ngFor/ngSwitchare deprecated. Use the control flow blocks instead (@for/@if/@switch).
platform-browser
- All entries of the
@angular/platform-browser-dynamic - HammerJS support is deprecated and will be removed in a future major version.
platform-server
-
@angular/platform-server/testingUse e2e tests to verify SSR behavior instead.
Additional notes
Open source →Blog post: https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301
Breaking Changes
common
- Using the
Yformatter (week-numbering year) without also includingw(week number) is now detected as suspicious date pattern, asyis typically intended. AsyncPipenow directly catches unhandled errors in subscriptions and promises and reports them to the application'sErrorHandler. For Zone-based applications, these errors would have been caught by ZoneJS and reported toErrorHandlerso the result is generally the same. The change to the exact mechanism for reporting can result in differences in test environments that will require test updates.
compiler
-
'in' in an expression now refers to the operator
-
voidin an expression now refers to the operatorPreviously an expression in the template like
{{void}}referred to a property on the component class. After this change it now refers to thevoidoperator, which would make the above example invalid. If you have existing expressions that need to refer to a property namedvoid, change the expression to usethis.voidinstead:{{this.void}}. -
Parenthesis are always respected.
This can lead to runtime breakages when a nullish coalescing operator is nested within parentheses. eg.
{{ (foo?.bar).baz }}will throw iffoois nullish. This is the same behavior as native JavaScript.
core
-
TypeScript versions less than 5.8 are no longer supported.
-
the
TestBed.flushEffects()was removed - use theTestBed.tick()instead. -
provideExperimentalCheckNoChangesForDebughas several breaking changes:- It is renamed to
provideCheckNoChangesConfig - The behavior applies to all checkNoChanges runs
- The
useNgZoneOnStableoption is removed. This wasn't found to be generally more useful thaninterval
- It is renamed to
-
provideExperimentalZonelessChangeDetectionis renamed toprovideZonelessChangeDetectionas it is now "Developer Preview" rather than "Experimental". -
InjectFlagshas been removed.injectno longer acceptsInjectFlags.Injector.getno longer acceptsInjectFlags.EnvironmentInjector.getno longer acceptsInjectFlags.TestBed.getno longer acceptsInjectFlags.TestBed.injectno longer acceptsInjectFlags.
-
TestBed.gethas been removed. UseTestBed.injectinstead.
-
afterRender was renamed to afterEveryRender.
-
- Angular no longer supports Node.js v18.
- Node.js versions 22.0 to 22.10 are also no longer supported.
Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1. For the full list of supported versions, visit: https://angular.dev/reference/versions
-
PendingTasks.runno longer returns the result of the async function. If this behavior is desired, it can be re-implemented manually with thePendingTasks.add. Be aware, however, that promise rejections will need to be handled or they can cause the node process to shut down when using SSR. -
Uncaught errors in listeners which were previously only reported to
ErrorHandlerare now also reported to Angular's internal error handling machinery. For tests, this means that the error will be rethrown by default rather than only logging the error. Developers should fix these errors, catch them in the test if the test is intentionally covering an error case, or userethrowApplicationErrors: falseinconfigureTestingModuleas a last resort. -
The
anyoverload has been removed frominjector.get. It now only supportsProviderToken<T>and (deprecated since v4)string. -
Animations are guaranteed to be flushed when Angular runs automatic change detection or manual calls to
ApplicationRef.tick. Prior to this change, animations would not be flushed in some situations if change detection did not run on any views attached to the application. This change can affect tests which may rely on the old behavior, often by making assertions on DOM elements that should have been removed but weren't because DOM removal is delayed until animations are flushed. -
ApplicationRef.tickwill no longer catch and report errors to the applicationErrorHandler. Errors will instead be thrown out of the method and will allow callers to determine how to handle these errors, such as aborting follow-up work or reporting the error and continuing. -
This commit deprecates
ng-reflect-*attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying onng-reflect-*attributes.To enable a more seamless upgrade to v20, we've added the
provideNgReflectAttributes()function (can be imported from the@angular/corepackage), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add theprovideNgReflectAttributes()function to the list of providers within the bootstrap call.
router
- The
RedirectFncan now returnObservableorPromise. Any code that directly calls functions returning this type may need to be adjusted to account for this. - Several methods in the public API of the Router which required writable arrays have now been updated to accept readonly arrays when no mutations are done.
- The guards arrays on
Routeno longer includeanyin the type union. The union includes functions for the functional guards as well as a type matchingInjector.get:ProviderToken<T>|string. Note that string is still deprecated on both the route guards andInjector.get.
Deprecations
core
ngIf/ngFor/ngSwitchare deprecated. Use the control flow blocks instead (@for/@if/@switch).
platform-browser
- All entries of the
@angular/platform-browser-dynamic - HammerJS support is deprecated and will be removed in a future major version.
platform-server
-
@angular/platform-server/testingUse e2e tests to verify SSR behavior instead.
common
Commit Type Description 2e5362a469 feat accept undefined inputs in NgTemplateOutlet (#61404) b7d3f3dbfc feat Allow passing ScrollOptions to ViewportScroller (#61002) 74cceba587 feat throw error for suspicious date patterns (#59798) 255c79e048 fix cleanup updateLatestValueif view is destroyed before promise resolves (#58041)739cadae62 fix Handle errors in async pipe subscriptions (#60057) cbbea70fa3 fix issue a warning instead of an error when NgOptimizedImageexceeds the preload limit (#60879)fc4a56d5c5 fix rename httpResource function in factory (#60022) 785a1110e6 fix resolve host binding type issues (#60481) compiler
Commit Type Description 7a971766dc feat add extended diagnostic for uninvoked track function on @forblocks (#60495)f2d5cf7edd feat support exponentiation operator in templates (#59894) 51b8ff23ce feat support tagged template literals in expressions (#59947) 1b8e7ab9fe feat support the inkeyword in Binary expression (#58432)0361c2d81f feat support void operator in templates (#59894) 8b990a31c3 fix error if rawText isn't estimated correctly (#60529) 4fe489f1b4 fix exponentiation should be right-to-left associative (#60101) ef1fd137a9 fix incorrect spans for template literals (#60323) e0d378d20e fix incorrectly handling let declarations inside i18n (#60512) b70ad3c4e6 fix proper handling of typeof, void in RecursiveAstVisitor (#60101) e25e6c95a2 fix remove TypeScript from linker (#61635) 768239a89c perf reduce allocations for let declarations only used in the same view (#60512) compiler-cli
Commit Type Description bec1610da2 feat add extended diagnostic for invalid nullish coalescing (#60279) c889382a20 feat detect missing structural directive imports (#59443) 1971e57a45 feat support type checking of host bindings (#60267) 9ec9c7e1b8 fix avoid fatal diagnostics for invalid module schemas (#61220) a1cacc5b17 fix avoid fatal diagnostics for missing template files (#58673) 1e6faad479 fix correctly parse event name in HostListener (#60561) ffb19e64f1 fix preserve required parens for nullish coalescing (#60060) 7c9b4892e9 fix preserve required parens in exponentiation expressions (#60101) 7e03af898e fix set correct target when type checking events (#60561) 2d51a203dc fix wrong event name for host listener decorators (#60460) core
Commit Type Description 22d3f0562c feat add hook for producer creation side effects (#60333) fe57332fc5 feat add input binding support to dynamically-created components (#60137) 65adb3024d feat Add provider which reports unhandled errors on window to ErrorHandler (#60704) b154fb3911 feat add support for two-way bindings on dynamically-created components (#60342) 82aa2c1a52 feat add the ability to apply directives to dynamically-created components (#60137) 326d48afb4 feat drop support for TypeScript older than 5.8 (#60197) d260ca3091 feat emit template function for template related profiler hooks (#60174) a4bad8d361 feat export signalGetFn from signal primitives (#60497) 4812215a7b feat Expose Injector.destroyonInjectorcreated withInjector.create(#60054)c1bcae91dd feat expose performance data in Chrome DevTools (#60789) 809b5b4596 feat introduce new DI profiling event (#60158) d5fd7349fb feat introduce TestBed.tick() (#60993) 4e88e18a8e feat mark toObservableas stable (#60449)727cda3856 feat mark linkedSignal API as public (#60865) 644d9f3bbd feat mark the toSignal API as stable (#60442) e711f99d81 feat move provideExperimentalCheckNoChangesForDebugtoprovideCheckNoChangesConfig(#60906)7ccec1494f feat move DOCUMENT token into core (#60663) 953c4b2580 feat Move zoneless change detection to dev preview (#60748) 611baaf069 feat remove InjectFlags from public API (#60318) 5e209cb560 feat remove TestBed.get (#60414) d8fbb909ce feat rename afterRender to afterEveryRender and stabilize (#60999) 567522398f feat stabilize incremental hydration api (#60888) 8d050b5bfc feat stabilize linkedSignal API (#60741) 866cea9a05 feat Stabilize PendingTasks Injectable (#60716) bf8492b871 feat stabilize withI18nSupport() api (#60889) be44cc8f40 feat support listening to outputs on dynamically-created components (#60137) fe9b79b615 feat update Node.js version support (#60545) e170d24240 fix add migration away from InjectFlags (#60318) 7eb59d3887 fix added @angular/compiler as a peer dependency (#55610) 7232ce5b17 fix Catch and report rejections in async function of PendingTasks.run(#60044)fd12220a35 fix defer block render failures should report to application error handler (#60149) 3459faadbf fix do not allow setInput to be used with inputBinding (#60137) 0ac949c266 fix do not run change detection on global error events (#60944) 4fe34f4cfe fix enable stashing only when withEventReplay()is invoked (#61077)962b59b14e fix Ensure ComponentFixture does not duplicate error reporting from FakeAsync (#60104) 7b819be83f fix Ensure errors in listeners report to the application error handler (#60251) ff772d7800 fix fix typing on injector.get to omit 'any' (#60202) 13d1c8ab38 fix fixes timing of hydration cleanup on control flow (#60425) 0b69b61929 fix Flush animations when no component has been checked (#58089) 3ba39bc28f fix getting resource value throws an error instead of returning undefined (#61441) ca6295e90b fix handle different DI token types in Chrome DevTools integration (#61333) 0162ceb427 fix inject migration should treat @Attributeas optional (#60916)ea5eb28865 fix input targeting not checking if input exists on host (#60137) c8951159ac fix mark zone.jsas an optional peer dependency (#61616)d62379bb13 fix move reload method from Resource to WritableResource (#61441) a89f1cff24 fix narrow error type for resources API (#61441) 624be2ef0c fix prevent stash listener conflicts (#59635) 017cc0a37c fix properly handle app stabilization with defer blocks (#61040) 6e79eaf739 fix reading resource value after reload in the error state (#61441) 3d85d9363c fix reduce total memory usage of various migration schematics (#60774) 1c7b356625 fix release hasPendingTasksobservers (#59723)43cbc58254 fix remove forceRootflag for effects (#60535)48974c3cf8 fix remove rejectErrorsoption encourages uncaught exceptions (#60397)491b0a4ead fix Remove duplicate reporting of errors in CDR.detectChanges(#60056)04d963c0a5 fix remove unused parameter from listener instruction (#60406) 0ae1889560 fix run ApplicationRef.prototype.bootstrapinNgZone(#60720)a611b234d7 fix run root effects in creation order (#60534) 338818ce89 fix Surface errors from ApplicationRef.tickto callsite (#60102)350776b412 fix TestBed.tick should ensure test components are synchronized (#61382) 3d4ddd2247 fix Testing should not throw when Zone does not patch test FW APIs (#61628) 30e081287d fix update min Node.js support to 20.19, 22.12, and 24.0 (#61500) b407157ee8 refactor Deprecate the structural directives ngIf/ngFor/ngSwitch. (#60492)c2987d8402 refactor stop producing ng-reflectattributes by default (#60973)forms
Commit Type Description a07ee60989 feat add markAllAsDirty to AbstractControl (#58663) bdfbd54932 feat Allow to reset a form without emitting events (#60354) 81fe0536fd fix Make sure statusChanges is emitted (#57098) bdd5e20423 fix resolve host binding type issues (#60481) http
Commit Type Description ccc5cc068f feat add keepalive support for fetch requests (#60621) 5795e03cdf fix Delay stabilization until next app synchronization (#60656) platform-browser
Commit Type Description bc2cab747f refactor Deprecate the platform-browser-dynamicpackage (#61043)a980ac9a6a refactor Deprecate the HammerJS integration (#60257) platform-server
Commit Type Description 2240a21c97 refactor deprecate the testing entry point (#60915) router
Commit Type Description 0bb4bd661e feat Add ability to directly abort a navigation (#60380) 62de7d930a feat add asynchronous redirects (#60863) 7c12cb1df9 feat Allow resolvers to read resolved data from ancestors (#59860) ff98ccb193 feat support custom elements for RouterLink (#60290) 219f41d049 fix Prevent dangling promise rejections from internal navigations (#60162) 2419060fef fix relax required types on router commands to readonly array (#60345) c57951d58f fix Remove 'any' type from route guards (#60378) db2f2d99c8 fix Scroller should scroll as soon as change detection completes (#60086) <!-- CHANGELOG SPLIT MARKER -->
<a name="19.2.14"></a>
- Using the
- 20.0.0-rc.327 May 2025pre-release
Release notes
Open source →common
Commit Description accept undefined inputs in NgTemplateOutlet (#61404) avoid injecting ApplicationRef in FetchBackend (#61649) compiler
Commit Description lexer support for template literals in object literals (#61601) remove TypeScript from linker (#61635) core
Commit Description mark zone.jsas an optional peer dependency (#61616)Testing should not throw when Zone does not patch test FW APIs (#61628) migrations
Commit Description preserve comments when removing unused imports (#61674) service-worker
Commit Description do not register service worker if app is destroyed before it is ready to register (#61101) - 20.0.0-rc.221 May 2025pre-release
Release notes
Open source →common
Commit Description cancel reader when app is destroyed (#61528) prevent reading chunks if app is destroyed (#61354) compiler
Commit Description avoid conflicts between HMR code and local symbols (#61550) compiler-cli
Commit Description Always retain prior results for all files (#61487) avoid ECMAScript private field metadata emit (#61227) core
platform-browser
Commit Description Deprecate the platform-browser-dynamicpackage (#61043)platform-server
Commit Description speed up resolution of base (#61392) Deprecations
platform-browser
- All entries of the
@angular/platform-browser-dynamic
- All entries of the
- 20.0.0-rc.115 May 2025pre-release
Release notes
Open source →compiler
Commit Description incorrectly handling let declarations inside i18n (#60512) reduce allocations for let declarations only used in the same view (#60512) compiler-cli
Commit Description avoid fatal diagnostics for invalid module schemas (#61220) core
Commit Description enable stashing only when withEventReplay()is invoked (#61077) - 20.0.0-rc.07 May 2025pre-release
Release notes
Open source →common
Commit Description cleanup updateLatestValueif view is destroyed before promise resolves (#58041)core
Commit Description properly handle app stabilization with defer blocks (#61040) platform-server
Commit Description less aggressive ngServerMode cleanup (#61106)