PackageTrack

npm · #3838

@angular/core

22.1.4angular/angular

Angular - the core framework

Release timeline

1101 releases since 2016
20182020202220242026

Releases

  1. 21.2.518 Mar 2026
    Release notes

    compiler

    Commit Description
    ensure generated code compiles
    parse named HTML entities containing digits

    compiler-cli

    Commit Description
    escape template literal in TCB
    generic types not filled out correctly in type check block

    core

    Commit Description
    clean up dehydrated views during HMR component replacement
    run linked signal equality check without reactive consumer

    migrations

    Commit Description
    prevent trailing comma syntax errors after removing NgStyle

    service-worker

    Commit Description
    preserve redirect policy on reconstructed asset requests
    Open source →
    Release notes

    compiler

    Commit Type Description
    334ae10168 fix ensure generated code compiles
    23ea431c4e fix parse named HTML entities containing digits

    compiler-cli

    Commit Type Description
    26c43d14ba fix escape template literal in TCB
    67e0ba7e03 fix generic types not filled out correctly in type check block

    core

    Commit Type Description
    1890c3008b fix clean up dehydrated views during HMR component replacement
    bf948be4c2 fix run linked signal equality check without reactive consumer

    migrations

    Commit Type Description
    076d41c3f6 fix prevent trailing comma syntax errors after removing NgStyle

    service-worker

    Commit Type Description
    e19150d2b5 fix preserve redirect policy on reconstructed asset requests

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.20"></a>

    Open source →
  2. 21.2.412 Mar 2026
    Release notes

    compiler

    Commit Description
    disallow translations of iframe src

    core

    Commit Description
    reverts "feat(core): add support for nested animations"
    sanitize translated form attributes
    Open source →
    Release notes

    compiler

    Commit Type Description
    ed2d324f9c fix disallow translations of iframe src

    core

    Commit Type Description
    abbd8797bb fix reverts "feat(core): add support for nested animations"
    d1dcd16c5b fix sanitize translated form attributes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.3"></a>

    Open source →
  3. 21.2.311 Mar 2026
    Release notes

    core

    Commit Description
    ensure definitions compile
    include signal debug names in their toString() representation
    sanitize translated attribute bindings with interpolations
    Open source →
    Release notes

    core

    Commit Type Description
    62a97f7e4b fix ensure definitions compile
    21b1c3b2ee fix include signal debug names in their toString() representation
    224e60ecb1 fix sanitize translated attribute bindings with interpolations

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.2"></a>

    Open source →
  4. 21.2.29 Mar 2026
    Release notes

    compiler

    Commit Description
    prevent mutation of children array in RecursiveVisitor

    compiler-cli

    Commit Description
    always parenthesize object literals in TCB
    ignore generated ngDevMode signal branch for code coverage

    forms

    Commit Description
    add 'blur' option to debounce rule
    Open source →
    Release notes

    compiler

    Commit Type Description
    1df1697c6e fix prevent mutation of children array in RecursiveVisitor

    compiler-cli

    Commit Type Description
    c822bf8e76 fix always parenthesize object literals in TCB
    05d022d5e6 fix ignore generated ngDevMode signal branch for code coverage

    forms

    Commit Type Description
    670d1660c4 feat add 'blur' option to debounce rule

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.1"></a>

    Open source →
  5. 21.2.14 Mar 2026
    Release notes

    core

    Commit Description
    adds transfer cache to httpResource to fix hydration
    prevent child animation elements from being orphaned
    Prevent removal of elements during drag and drop

    http

    Commit Description
    correctly cache blob responses in transfer cache (#67002)
    Open source →
    Release notes

    core

    Commit Type Description
    e2e9a9a531 fix adds transfer cache to httpResource to fix hydration
    b4ec3cc4e4 fix prevent child animation elements from being orphaned
    e923d88398 fix Prevent removal of elements during drag and drop

    http

    Commit Type Description
    277ade97ac fix correctly cache blob responses in transfer cache (#67002)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.19"></a>

    Open source →
  6. 21.2.025 Feb 2026
    Release notes

    common

    Commit Description
    add an 'outlet' injector option for ngTemplateOutlet
    Add Location strategies to manage trailing slash on write
    support height in ImageLoaderConfig and built-in loaders

    compiler

    Commit Description
    Add support for the instanceof binary operator
    Exhaustive checks for switch blocks
    support AstVisitor.visitEmptyExpr()
    optimize away unnecessary restore/reset view calls
    variable counter visiting some expressions twice

    compiler-cli

    Commit Description
    attach source spans to object literal keys in TCB
    support nested component declaration
    update diagnostic to flag no-op arrow functions in listeners

    core

    Commit Description
    add ChangeDetectionStrategy.Eager alias for Default
    add host node to DeferBlockData (#66546)
    add support for nested animations
    add support for TypeScript 6
    resource composition via snapshots
    support arrow functions in expressions
    correctly handle SkipSelf when resolving from embedded view injector
    prevent animated element duplication with dynamic components in zoneless mode
    Remove note to skip arrow functions in best practices

    forms

    Commit Description
    add field param to submit action and onInvalid
    add form directive
    add parsing support to native inputs (#66917)
    Add passing focus options to form field
    allow setting submit options at form-level
    introduce parse errors in signal forms
    introduce SignalFormControl for Reactive Forms compatibility
    support binding null to number input (#66917)
    update submit function to accept options object
    clear parse errors when model updates (#66917)
    preserve custom-control focus context in signal forms
    preserve parse errors when parse returns value
    simplify design of parse errors
    sort error summary by DOM order
    support custom controls as host directives
    use consistent error format returned from parse
    warn when showing hidden field state

    language-server

    Commit Description
    Add completions and hover info for inline styles
    Add folding range support for inline styles
    Add quick info for inline styles
    Support client-side file watching via onDidChangeWatchedFiles

    language-service

    Commit Description
    add JSON schema for angularCompilerOptions
    add linked editing ranges for HTML tag synchronization
    use lightweight project warmup for Angular analysis

    router

    Commit Description
    Add partial ActivatedRouteSnapshot information to canMatch params
    Make match options optional in isActive
    Update IsActiveMatchOptions APIs to accept a Partial
    Open source →
    Release notes

    common

    Commit Type Description
    18003a33bb feat add an 'outlet' injector option for ngTemplateOutlet
    8bbe6dc46c feat Add Location strategies to manage trailing slash on write
    51cc914807 feat support height in ImageLoaderConfig and built-in loaders

    compiler

    Commit Type Description
    72534e2a34 feat Add support for the instanceof binary operator
    95b3f37d4a feat Exhaustive checks for switch blocks
    04ba09a8d9 feat support AstVisitor.visitEmptyExpr()
    ce80136e7b fix optimize away unnecessary restore/reset view calls
    3242a61bae fix variable counter visiting some expressions twice

    compiler-cli

    Commit Type Description
    473dd3e1cb fix attach source spans to object literal keys in TCB
    a904d9f77b fix support nested component declaration
    2ea6dfc6c9 fix update diagnostic to flag no-op arrow functions in listeners

    core

    Commit Type Description
    8d5210c9fe feat add ChangeDetectionStrategy.Eager alias for Default
    92d2498910 feat add host node to DeferBlockData (#66546)
    ea2016a6dc feat add support for nested animations
    81cabc1477 feat add support for TypeScript 6
    1ba9b7ac50 feat resource composition via snapshots
    d9923b72a2 feat support arrow functions in expressions
    a7e8abbb7e fix correctly handle SkipSelf when resolving from embedded view injector
    0806ee3826 fix prevent animated element duplication with dynamic components in zoneless mode
    ed78fa05c7 fix Remove note to skip arrow functions in best practices

    forms

    Commit Type Description
    f56bb07d83 feat add field param to submit action and onInvalid
    ba009b6031 feat add form directive
    22afbb2f36 feat add parsing support to native inputs (#66917)
    95c386469c feat Add passing focus options to form field
    95ecce8334 feat allow setting submit options at form-level
    ebae211add feat introduce parse errors in signal forms
    3937afc316 feat introduce SignalFormControl for Reactive Forms compatibility
    30f0914754 feat support binding null to number input (#66917)
    dd208ca259 feat update submit function to accept options object
    27397b3f4f fix clear parse errors when model updates (#66917)
    63d8005703 fix preserve custom-control focus context in signal forms
    631f60d1f9 fix preserve parse errors when parse returns value
    adfb83146b fix simplify design of parse errors
    fb05fc86d0 fix sort error summary by DOM order
    567f292e8e fix support custom controls as host directives
    bdfb60f3e3 fix use consistent error format returned from parse
    d75046bc09 fix warn when showing hidden field state

    language-server

    Commit Type Description
    ebc90c26f5 feat Add completions and hover info for inline styles
    26fd0839c3 feat Add folding range support for inline styles
    573aadef7e feat Add quick info for inline styles
    6fb39d9b62 feat Support client-side file watching via onDidChangeWatchedFiles

    language-service

    Commit Type Description
    496967e7b1 feat add JSON schema for angularCompilerOptions
    8c21866f49 feat add linked editing ranges for HTML tag synchronization
    d2137928e8 perf use lightweight project warmup for Angular analysis

    router

    Commit Type Description
    b51bab583d feat Add partial ActivatedRouteSnapshot information to canMatch params
    cf9620f7d0 feat Make match options optional in isActive
    907a94dcec feat Update IsActiveMatchOptions APIs to accept a Partial

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.6"></a>

    Open source →
  7. 21.2.0-rc.018 Feb 2026pre-release
    Release notes

    compiler

    Commit Description
    Exhaustive checks for switch blocks

    core

    Commit Description
    add support for TypeScript 6
    prevent animated element duplication with dynamic components in zoneless mode

    forms

    Commit Description
    add parsing support to native inputs (#66917)
    support binding null to number input (#66917)
    clear parse errors when model updates (#66917)
    preserve custom-control focus context in signal forms
    support custom controls as host directives
    warn when showing hidden field state
    Open source →
  8. 21.2.0-next.311 Feb 2026pre-release
    Release notes

    common

    Commit Description
    add an 'outlet' injector option for ngTemplateOutlet
    support height in ImageLoaderConfig and built-in loaders

    compiler

    Commit Description
    add geolocation element to schema

    compiler-cli

    Commit Description
    update diagnostic to flag no-op arrow functions in listeners

    core

    Commit Description
    add support for nested animations
    capture animation dependencies eagerly to avoid destroyed injector
    correctly handle SkipSelf when resolving from embedded view injector
    Fix flakey test due to document injection

    forms

    Commit Description
    add field param to submit action and onInvalid
    add form directive
    support signal-based schemas in validateStandardSchema
    simplify design of parse errors

    http

    Commit Description
    correctly parse ArrayBuffer and Blob in transfer cache
    Open source →
  9. 21.2.0-next.25 Feb 2026pre-release
    Release notes

    core

    Commit Description
    add ChangeDetectionStrategy.Eager alias for Default
    linkedSignal.update should propagate errors
    export DirectiveWithBindings
    hold constructors weakly in DepsTracker cache
    prevent element duplication with dynamic components

    forms

    Commit Description
    allow setting submit options at form-level
    introduce SignalFormControl for Reactive Forms compatibility
    update submit function to accept options object
    Resolves debounce promise on abort in debounceForDuration

    language-service

    Commit Description
    add JSON schema for angularCompilerOptions
    add linked editing ranges for HTML tag synchronization

    localize

    Commit Description
    add support for unit-test builder in ng-add schematic

    router

    Commit Description
    Make match options optional in isActive
    Update IsActiveMatchOptions APIs to accept a Partial
    limit UrlParser recursion depth to prevent stack overflow
    Use .bind to avoid holding other closures in memory
    Open source →
  10. 21.2.0-next.128 Jan 2026pre-release
    Release notes

    common

    Commit Description
    Add Location strategies to manage trailing slash on write

    forms

    Commit Description
    introduce parse errors in signal forms
    only touch visible, interactive fields on submit
    sort error summary by DOM order

    language-server

    Commit Description
    Support client-side file watching via onDidChangeWatchedFiles

    language-service

    Commit Description
    Detect local project version on creation

    router

    Commit Description
    Add partial ActivatedRouteSnapshot information to canMatch params
    Do not intercept reload events with Navigation integration
    Open source →
  11. 21.2.0-next.022 Jan 2026pre-release
    Release notes

    compiler

    Commit Description
    Add support for the instanceof binary operator
    support AstVisitor.visitEmptyExpr()
    optimize away unnecessary restore/reset view calls
    variable counter visiting some expressions twice

    compiler-cli

    Commit Description
    attach source spans to object literal keys in TCB
    support nested component declaration

    core

    Commit Description
    add host node to DeferBlockData (#66546)
    resource composition via snapshots
    support arrow functions in expressions
    Remove note to skip arrow functions in best practices

    forms

    Commit Description
    Add passing focus options to form field

    language-server

    Commit Description
    Add completions and hover info for inline styles
    Add folding range support for inline styles
    Add quick info for inline styles
    Open source →
  12. 21.1.625 Feb 2026
    Release notes

    common

    Commit Description
    fix LCP image detection with duplicate URLs

    compiler-cli

    Commit Description
    detect uninvoked functions in defer trigger expressions

    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 306f367899dfc2e04238fecd3455547b5d54075d)

    Open source →
    Release notes

    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 306f367899dfc2e04238fecd3455547b5d54075d)

    common

    Commit Type Description
    31d3d56496 fix fix LCP image detection with duplicate URLs

    compiler-cli

    Commit Type Description
    24b578ce90 fix detect uninvoked functions in defer trigger expressions

    core

    Commit Type Description
    b858309532 fix block creation of sensitive URI attributes from ICU messages

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.5"></a>

    Open source →
  13. 21.1.518 Feb 2026
    Release notes

    No user facing changes in this release

    Open source →
    Release notes

    No user facing changes in this release

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.4"></a>

    Open source →
  14. 21.1.411 Feb 2026
    Release notes

    compiler

    Commit Description
    add geolocation element to schema

    core

    Commit Description
    capture animation dependencies eagerly to avoid destroyed injector
    Fix flakey test due to document injection

    forms

    Commit Description
    support signal-based schemas in validateStandardSchema

    http

    Commit Description
    correctly parse ArrayBuffer and Blob in transfer cache
    Open source →
    Release notes

    compiler

    Commit Type Description
    caab23dfe6 fix add geolocation element to schema

    core

    Commit Type Description
    2b99eaa019 fix capture animation dependencies eagerly to avoid destroyed injector
    d6aeac504c fix Fix flakey test due to document injection

    forms

    Commit Type Description
    0d1acd0165 feat support signal-based schemas in validateStandardSchema

    http

    Commit Type Description
    3905015ccc fix correctly parse ArrayBuffer and Blob in transfer cache

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.3"></a>

    Open source →
  15. 21.1.35 Feb 2026
    Release notes

    core

    Commit Description
    linkedSignal.update should propagate errors
    export DirectiveWithBindings
    hold constructors weakly in DepsTracker cache
    prevent element duplication with dynamic components

    forms

    Commit Description
    Resolves debounce promise on abort in debounceForDuration

    localize

    Commit Description
    add support for unit-test builder in ng-add schematic

    router

    Commit Description
    limit UrlParser recursion depth to prevent stack overflow
    Use .bind to avoid holding other closures in memory
    Open source →
    Release notes

    core

    Commit Type Description
    2b254bc050 fix linkedSignal.update should propagate errors
    e5110b4fa1 fix export DirectiveWithBindings
    2cf4da0ea1 fix hold constructors weakly in DepsTracker cache
    70a5b651be fix prevent element duplication with dynamic components

    forms

    Commit Type Description
    6f75b6e3f6 fix Resolves debounce promise on abort in debounceForDuration

    localize

    Commit Type Description
    4c7126d23b fix add support for unit-test builder in ng-add schematic

    router

    Commit Type Description
    d6268c0bbb fix limit UrlParser recursion depth to prevent stack overflow
    49a36f4cc7 perf Use .bind to avoid holding other closures in memory

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.2"></a>

    Open source →
  16. 21.1.228 Jan 2026
    Release notes

    forms

    Commit Description
    only touch visible, interactive fields on submit

    language-service

    Commit Description
    Detect local project version on creation

    router

    Commit Description
    Do not intercept reload events with Navigation integration
    Open source →
    Release notes

    forms

    Commit Type Description
    9f99b14882 fix only touch visible, interactive fields on submit

    language-service

    Commit Type Description
    c57b0355b5 fix Detect local project version on creation

    router

    Commit Type Description
    21ecdc036a fix Do not intercept reload events with Navigation integration

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.1"></a>

    Open source →
  17. 21.1.121 Jan 2026
    Release notes

    compiler-cli

    Commit Description
    drop .tsx extension for generated relative imports

    core

    Commit Description
    handle Set in class bindings

    forms

    Commit Description
    Ability to manually register a form field binding in signal forms
    fix control value syncing on touch
    Open source →
    Release notes

    compiler-cli

    Commit Type Description
    0e1f1ed573 fix drop .tsx extension for generated relative imports

    core

    Commit Type Description
    05adfcf8f2 fix handle Set in class bindings

    forms

    Commit Type Description
    d89a80a970 feat Ability to manually register a form field binding in signal forms
    cb75f9ce85 fix fix control value syncing on touch

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.1.0"></a>

    Open source →
  18. 21.1.014 Jan 2026
    Release notes

    common

    Commit Description
    Add custom transformations for Cloudflare and Cloudinary image loaders
    support custom transformations in ImageKit and Imgix loaders

    compiler

    Commit Description
    Add support for multiple swich cases matching
    Support empty cases

    core

    Commit Description
    Add stability debugging utility
    support rest arguments in function calls
    support spread elements in array literals
    support spread expressions in object literals
    Microtask scheduling should be used after any application synchronization
    return StaticProvider for providePlatformInitializer

    forms

    Commit Description
    allow focusing bound control from field state

    platform-browser

    Commit Description
    add context to createApplication
    resolve JIT resources in createApplication

    router

    Commit Description
    add controls for route cleanup
    Add scroll behavior controls on router navigation
    Add standalone function to create a comptued for isActive
    Execute RunGuardsAndResolvers function in injection context
    extend paramters of RedirectFunction to include paramMap and queryParamMap
    Publish Router's integration with platform Navigation API as experimental
    Support wildcard params with segments trailing (#64737)

    upgrade

    Commit Description
    deprecate VERSION export

    Deprecations

    upgrade

    • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.
    Open source →
    Release notes

    Deprecations

    upgrade

    • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

    common

    Commit Type Description
    d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
    a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

    compiler

    Commit Type Description
    640693da8e feat Add support for multiple swich cases matching
    0ad3adc7c6 fix Support empty cases

    core

    Commit Type Description
    99ad18a4ee feat Add stability debugging utility
    a0dfa5fa86 feat support rest arguments in function calls
    6e18fa8bc9 feat support spread elements in array literals
    e407280ab5 feat support spread expressions in object literals
    06be8034bb fix Microtask scheduling should be used after any application synchronization
    b4f584cf42 fix return StaticProvider for providePlatformInitializer

    forms

    Commit Type Description
    1ea5c97703 feat allow focusing bound control from field state

    platform-browser

    Commit Type Description
    ec9dc94cee feat add context to createApplication
    ab67988d2e feat resolve JIT resources in createApplication

    router

    Commit Type Description
    5edceffd04 feat add controls for route cleanup
    a03c82564d feat Add scroll behavior controls on router navigation
    e44839b016 feat Add standalone function to create a comptued for isActive
    c25d749d85 feat Execute RunGuardsAndResolvers function in injection context
    1c00ab42f8 feat extend paramters of RedirectFunction to include paramMap and queryParamMap
    7003e8d241 feat Publish Router's integration with platform Navigation API as experimental
    c84d372778 feat Support wildcard params with segments trailing (#64737)

    upgrade

    Commit Type Description
    75fe8f8af9 refactor deprecate VERSION export

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.9"></a>

    Open source →
  19. 21.1.0-rc.08 Jan 2026pre-release
    Release notes

    common

    Commit Description
    Add custom transformations for Cloudflare and Cloudinary image loaders
    support custom transformations in ImageKit and Imgix loaders

    compiler

    Commit Description
    Add support for multiple swich cases matching
    better types for a few expression AST nodes
    produce accurate span for typeof and void expressions
    provide location information for literal map keys
    stop ThisReceiver inheritance from ImplicitReceiver
    Support empty cases

    compiler-cli

    Commit Description
    ensure component import diagnostics are reported within the imports expression
    fix up spelling of diagnostic
    support qualified names in typeof type references

    core

    Commit Description
    Add stability debugging utility
    support rest arguments in function calls
    support spread elements in array literals
    support spread expressions in object literals
    avoid leaking view data in animations
    explicitly cast signal node value to String
    fix memory leak with event replay
    handle cancelled traversals in fake navigation
    sanitize sensitive attributes on SVG script elements

    forms

    Commit Description
    add [formField] directive
    allow custom controls to require dirty input
    allow custom controls to require hidden input
    allow custom controls to require pending input
    clean up abort listener after timeout
    support custom controls with non signal-based models
    Support readonly arrays in signal forms

    router

    Commit Description
    add controls for route cleanup
    Add standalone function to create a comptued for isActive
    extend paramters of RedirectFunction to include paramMap and queryParamMap
    Publish Router's integration with platform Navigation API as experimental
    Fix RouterLink href not updating with queryParamsHandling
    handle errors from view transition updateCallbackDone promise
    Open source →
  20. 21.1.0-next.417 Dec 2025pre-release
    Release notes

    core

    Commit Description
    Microtask scheduling should be used after any application synchronization
    return StaticProvider for providePlatformInitializer
    throw better errors for potential circular references
    use mutable ResponseInit type for RESPONSE_INIT token

    forms

    Commit Description
    pass field directive to class config
    rename field to fieldTree in FieldContext and ValidationError

    language-service

    Commit Description
    avoid interpolation highlighting inside @let
    Prevent language service from crashing on suggestion diagnostic errors

    Breaking Changes

    forms

    • The shape of SignalFormsConfig.classes has changed

      Previously each function in the classes map took a FieldState. Now it takes a Field directive.

      For example if you previously had:

      provideSignalFormsConfig({
        classes: {
          'my-valid': (state) => state.valid()
        }
      })
      

      You would need to update to:

      provideSignalFormsConfig({
        classes: {
          'my-valid': ({state}) => state().valid()
        }
      })
      
    Open source →
  21. 21.1.0-next.311 Dec 2025pre-release
    Release notes

    core

    Commit Description
    avoid false-positive deprecation when using InjectionToken with factory only

    forms

    Commit Description
    fix signal forms type error
    Open source →
  22. 21.1.0-next.211 Dec 2025pre-release
    Release notes

    compiler

    Commit Description
    chain query creation instructions

    compiler-cli

    Commit Description
    expand type for native controls with a dynamic type

    forms

    Commit Description
    expose element on signal forms Field directive
    redo the signal forms metadata API
    add signals for dirty, hidden, and pending states in custom controls
    allow resetting with empty string
    memoize reads of child fields in signal forms (#65802)
    Reuse key in parent in compat structure

    upgrade

    Commit Description
    deprecate VERSION export

    Deprecations

    upgrade

    • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.
    Open source →
  23. 21.1.0-next.13 Dec 2025pre-release
    Release notes

    compiler

    Commit Description
    prevent XSS via SVG animation attributeName and MathML/SVG URLs

    compiler-cli

    Commit Description
    avoid allocating an object for signals in production mode
    check that field radio button values are strings

    core

    Commit Description
    run animation queue in environment injector context
    unable to inject viewProviders when host directive with providers is present
    tree shake unused dynamic [field] binding instructions (#65599)

    forms

    Commit Description
    Allows transforms on FormUiControl signals
    support dynamic [field] bindings (#65599)

    http

    Commit Description
    enable XSRF protection for same-origin absolute URLs

    router

    Commit Description
    handle errors from view transition finished promise
    Open source →
  24. 21.1.0-next.025 Nov 2025pre-release
    Release notes

    platform-browser

    Commit Description
    add context to createApplication
    resolve JIT resources in createApplication

    router

    Commit Description
    Add scroll behavior controls on router navigation
    Execute RunGuardsAndResolvers function in injection context
    Support wildcard params with segments trailing (#64737)
    Open source →
  25. 21.0.914 Jan 2026
    Release notes

    forms

    Commit Description
    Ensure the control instruction comes after the other bindings
    Rename signal form [field] to [formField]

    migrations

    Commit Description
    prevent duplicate imports in common-to-standalone migration
    Open source →
    Release notes

    forms

    Commit Type Description
    82d556a8fb fix Ensure the control instruction comes after the other bindings
    0055f3cc79 fix Rename signal form [field] to [formField]

    migrations

    Commit Type Description
    e4bfa5c9e7 fix prevent duplicate imports in common-to-standalone migration

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.8"></a>

    Open source →
  26. 21.0.88 Jan 2026
    Release notes

    core

    Commit Description
    fix memory leak with event replay
    handle cancelled traversals in fake navigation
    Open source →
    Release notes

    core

    Commit Type Description
    a6a2621bf9 fix fix memory leak with event replay
    5239e471a1 fix handle cancelled traversals in fake navigation

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.16"></a>

    Open source →
  27. 21.0.77 Jan 2026
    Release notes

    compiler

    Commit Description
    better types for a few expression AST nodes
    produce accurate span for typeof and void expressions
    provide location information for literal map keys
    stop ThisReceiver inheritance from ImplicitReceiver

    compiler-cli

    Commit Description
    ensure component import diagnostics are reported within the imports expression
    fix up spelling of diagnostic
    support qualified names in typeof type references

    core

    Commit Description
    avoid leaking view data in animations
    explicitly cast signal node value to String
    sanitize sensitive attributes on SVG script elements

    forms

    Commit Description
    add [formField] directive
    allow custom controls to require dirty input
    allow custom controls to require hidden input
    allow custom controls to require pending input
    clean up abort listener after timeout
    support custom controls with non signal-based models
    Support readonly arrays in signal forms

    router

    Commit Description
    Fix RouterLink href not updating with queryParamsHandling
    handle errors from view transition updateCallbackDone promise
    Open source →
    Release notes

    compiler

    Commit Type Description
    8e808740c9 fix better types for a few expression AST nodes
    63b1cdcf70 fix produce accurate span for typeof and void expressions
    3c3ae0cb64 fix provide location information for literal map keys
    523dbaf1c3 fix stop ThisReceiver inheritance from ImplicitReceiver

    compiler-cli

    Commit Type Description
    4d9c4567ed fix ensure component import diagnostics are reported within the imports expression
    cd405685af fix fix up spelling of diagnostic
    778460fcca fix support qualified names in typeof type references

    core

    Commit Type Description
    7c74674eb0 fix avoid leaking view data in animations
    0edbee4550 fix explicitly cast signal node value to String
    f9c29572d2 fix sanitize sensitive attributes on SVG script elements

    forms

    Commit Type Description
    e3fba182f9 feat add [formField] directive
    561772b152 fix allow custom controls to require dirty input
    f0fb1d8581 fix allow custom controls to require hidden input
    ec110f170b fix allow custom controls to require pending input
    ae1dc16bb0 fix clean up abort listener after timeout
    9748b0d5da fix support custom controls with non signal-based models
    6bd22df987 fix Support readonly arrays in signal forms

    router

    Commit Type Description
    41cd4a6af8 fix Fix RouterLink href not updating with queryParamsHandling
    5e9e09aee0 fix handle errors from view transition updateCallbackDone promise

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.6"></a>

    Open source →
  28. 21.0.617 Dec 2025
    Release notes

    core

    Commit Description
    throw better errors for potential circular references
    use mutable ResponseInit type for RESPONSE_INIT token

    forms

    Commit Description
    pass field directive to class config
    rename field to fieldTree in FieldContext and ValidationError

    language-service

    Commit Description
    avoid interpolation highlighting inside @let
    Prevent language service from crashing on suggestion diagnostic errors

    Breaking Changes

    forms

    • The shape of SignalFormsConfig.classes has changed

      Previously each function in the classes map took a FieldState. Now it takes a Field directive.

      For example if you previously had:

      provideSignalFormsConfig({
        classes: {
          'my-valid': (state) => state.valid()
        }
      })
      

      You would need to update to:

      provideSignalFormsConfig({
        classes: {
          'my-valid': ({state}) => state().valid()
        }
      })
      

      (cherry picked from commit 348f149e8b06d6885f54bac4cf03a9481a8b19b7)

    • (cherry picked from commit ae0c59028a2f393ea5716bf222db2c38e7a3989f)

    Open source →
    Release notes

    Breaking Changes (affecting only experimental features)

    forms

    • The shape of SignalFormsConfig.classes has changed

      Previously each function in the classes map took a FieldState. Now it takes a Field directive.

      For example if you previously had:

      provideSignalFormsConfig({
        classes: {
          'my-valid': (state) => state.valid()
        }
      })
      

      You would need to update to:

      provideSignalFormsConfig({
        classes: {
          'my-valid': ({state}) => state().valid()
        }
      })
      

      (cherry picked from commit 348f149e8b06d6885f54bac4cf03a9481a8b19b7)

    • (cherry picked from commit ae0c59028a2f393ea5716bf222db2c38e7a3989f)

    core

    Commit Type Description
    4c8fb3631d fix throw better errors for potential circular references
    48492524ea fix use mutable ResponseInit type for RESPONSE_INIT token

    forms

    Commit Type Description
    81772b420d feat pass field directive to class config
    729b96476b refactor rename field to fieldTree in FieldContext and ValidationError

    language-service

    Commit Type Description
    e0694df3ec fix avoid interpolation highlighting inside @let
    5047be4bc1 fix Prevent language service from crashing on suggestion diagnostic errors

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.5"></a>

    Open source →
  29. 21.0.511 Dec 2025
    Release notes

    core

    Commit Description
    avoid false-positive deprecation when using InjectionToken with factory only

    forms

    Commit Description
    fix signal forms type error
    Open source →
    Release notes

    core

    Commit Type Description
    69d243abb74 fix avoid false-positive deprecation when using InjectionToken with factory only

    forms

    Commit Type Description
    4fd2b722b40 fix fix signal forms type error

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.4"></a>

    Open source →
  30. 21.0.411 Dec 2025
    Release notes

    compiler

    Commit Description
    chain query creation instructions

    compiler-cli

    Commit Description
    expand type for native controls with a dynamic type

    forms

    Commit Description
    expose element on signal forms Field directive
    redo the signal forms metadata API
    add signals for dirty, hidden, and pending states in custom controls
    allow resetting with empty string
    memoize reads of child fields in signal forms (#65802)
    Reuse key in parent in compat structure
    Open source →
    Release notes

    compiler

    Commit Type Description
    f901cc9eb32 perf chain query creation instructions

    compiler-cli

    Commit Type Description
    65297c62011 fix expand type for native controls with a dynamic type

    forms

    Commit Type Description
    f254ff4f2e0 feat expose element on signal forms Field directive
    5880fbc73c6 feat redo the signal forms metadata API
    55fc677cef4 fix add signals for dirty, hidden, and pending states in custom controls
    cbb10179c80 fix allow resetting with empty string
    bf1c12cd932 fix memoize reads of child fields in signal forms (#65802)
    6d7475582f9 fix Reuse key in parent in compat structure

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.3"></a>

    Open source →
  31. 21.0.33 Dec 2025
    Release notes

    compiler-cli

    Commit Description
    avoid allocating an object for signals in production mode
    check that field radio button values are strings

    core

    Commit Description
    run animation queue in environment injector context
    unable to inject viewProviders when host directive with providers is present
    tree shake unused dynamic [field] binding instructions (#65599)

    forms

    Commit Description
    Allows transforms on FormUiControl signals
    support dynamic [field] bindings (#65599)

    http

    Commit Description
    enable XSRF protection for same-origin absolute URLs

    router

    Commit Description
    handle errors from view transition finished promise
    Open source →
    Release notes

    compiler-cli

    Commit Type Description
    5a80a48e96 fix avoid allocating an object for signals in production mode
    1f1856e897 fix check that field radio button values are strings

    core

    Commit Type Description
    8c3304c766 fix run animation queue in environment injector context
    4bb085311e fix unable to inject viewProviders when host directive with providers is present
    609699ae17 perf tree shake unused dynamic [field] binding instructions (#65599)

    forms

    Commit Type Description
    6b4ab876e8 feat Allows transforms on FormUiControl signals
    a5dbd4b382 fix support dynamic [field] bindings (#65599)

    http

    Commit Type Description
    20474d3f0f fix enable XSRF protection for same-origin absolute URLs

    router

    Commit Type Description
    48b89f9fbe fix handle errors from view transition finished promise

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.2"></a>

    Open source →
  32. 21.0.21 Dec 2025
    Release notes

    compiler

    Commit Description
    prevent XSS via SVG animation attributeName and MathML/SVG URLs
    Open source →
    Release notes

    compiler

    Commit Type Description
    78fd159b78 fix prevent XSS via SVG animation attributeName and MathML/SVG URLs

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.15"></a>

    Open source →
  33. 21.0.125 Nov 2025
    Release notes

    compiler-cli

    Commit Description
    do not type check native controls with ControlValueAccessor
    escape angular control flow in jsdoc
    ignore non-existent files

    core

    Commit Description
    apply bootstrap-options migration to platformBrowserDynamic
    debug data causing memory leak for root effects
    notify profiler events in case of errors
    use injected DOCUMENT for CSP_NONCE
    avoid repeat searches for field directive

    forms

    Commit Description
    add DI option for classes on Field directive
    allow dynamic type bindings on signal form controls
    run reset as untracked

    http

    Commit Description
    prevent XSRF token leakage to protocol-relative URLs

    migrations

    Commit Description
    detect structural ngTemplateOutlet and ngComponentOutlet
    Open source →
    Release notes

    compiler-cli

    Commit Type Description
    39c577bc36 fix do not type check native controls with ControlValueAccessor
    8d3a89a477 fix escape angular control flow in jsdoc
    bc34083d34 fix ignore non-existent files

    core

    Commit Type Description
    0ea1e07174 fix apply bootstrap-options migration to platformBrowserDynamic
    70507b8c1c fix debug data causing memory leak for root effects
    a55482fca3 fix notify profiler events in case of errors
    49ad7c6508 fix use injected DOCUMENT for CSP_NONCE
    cc1ec09931 perf avoid repeat searches for field directive

    forms

    Commit Type Description
    7d5c7cf99a feat add DI option for classes on Field directive
    8acf5d2756 fix allow dynamic type bindings on signal form controls
    de5fca94c5 fix run reset as untracked

    http

    Commit Type Description
    3240d856d9 fix prevent XSRF token leakage to protocol-relative URLs

    migrations

    Commit Type Description
    f394215b14 fix detect structural ngTemplateOutlet and ngComponentOutlet

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.0.0"></a>

    Open source →
  34. 21.0.019 Nov 2025
    Release notes

    common

    Commit Description
    Add experimental support for the Navigation API (#63406)
    Support of optional keys for the KeyValue pipe (#48814)
    update to cldr 47 (#64032)
    properly type ngComponentOutlet (#64561)
    improve typing of ngComponentOutletContent (#63674)
    removengModuleFactory input of NgComponentOutlet (#62838)

    compiler

    Commit Description
    don't choke on unbalanced parens in declaration block
    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()

    compiler-cli

    Commit Description
    Adds diagnostic for misconfigured @defer triggers (#64069)
    enable type checking of host bindings by default (#63654)
    allow value to be set on radio fields
    capture metadata for undecorated fields (#63957)
    disallow compiling with the emitDeclarationOnly TS compiler option enabled (#61609)
    do not flag custom control required inputs as missing when field is present
    infer type of custom field controls
    infer types of signal forms set on native inputs
    make field detection logic more robust
    missingStructuralDirective diagnostic produces false negatives (#64579)
    remove internal syntax-related flags (#63787)
    report invalid bindings on form controls
    use any when checking field interface conformance

    core

    Commit Description
    Add migration for zoneless by default. (#63042)
    Allow passing application providers in bootstrapModule options (#64354)
    introduce BootstrapContext for improved server bootstrapping (#63562)
    make SimpleChanges generic (#64535)
    support IntersectionObserver options in viewport triggers (#64130)
    support regular expressions in templates (#63887)
    control not recognized when input has directive injecting ViewContainerRef (#64368)
    do not rename ARIA property bindings to attributes (#63925)
    Drop special-case disables automatic change detection scheduling (#63846)
    drop support for TypeScript 5.8 (#63589)
    ensure @for iteration over field is reactive (#64113)
    Error on invalid APP_ID (#63252)
    Explicit Zone CD in TestBed providers should not override TestBed error handler (#63404)
    Remove ignoreChangesOutsideZone option (#62700)
    Remove Zone-based change provider from internals by default (#63382)
    skip Angular formatting when formatting signals recursively
    SSR error in signal forms
    update symbols (#64481)
    remove moduleId from Component metadata (#63482)
    remove deprecated interpolation option on Components. (#63474)

    elements

    Commit Description
    return value on signal input getter (#62113)

    forms

    Commit Description
    add debounce() rule for signal forms
    add experimental signal-based forms (#63408)
    Add FormArrayDirective (#55880)
    Prevents marking fields as touched/dirty when state is hidden/readonly/disabled (#63633)
    bind invalid input in custom controls (#64526)
    consistent treatment of empty (#63456)
    debounce updates from interop controls
    Emit FormResetEvent when resetting control (#64024)
    implement interoperability between signal forms and reactive forms (#64471)
    interop supports CVAs with signals (#64618)
    mark field as dirty when value is changed by ControlValueAccessor (#64471)
    mark field as dirty when value is changed by a bound control (#64483)
    only propagate schema defined properties from field to control (#64446)
    Set error message of a schema error.
    test that common field states are propagated to controls (#63884)
    test that min/max properties are propagated to controls (#63884)
    test that minLength/maxLength properties are propagated to controls (#63884)
    implement change detection for field control bindings
    only update interop controls when bound field changes
    optimize [field] binding instructions (#64351)

    http

    Commit Description
    add referrerPolicy option to HttpResource (#64283)
    Add reponseType property to HttpResponse and HttpErrorResponse (#63043)
    add support for fetch referrerPolicy option in HttpClient (#64116)
    Provide http services in root (#56212)
    HttpResponseBase.statusText (#64176)

    language-server

    Commit Description
    fix directory renaming on Windows

    language-service

    Commit Description
    address potential memory leak during project creation
    prevent interpolation from superseding block braces (#64392)

    migrations

    Commit Description
    add migration to convert ngClass to use class (#62983)
    add migration to convert ngStyle to use style (#63517)
    Adds migration for deprecated router testing module (#64217)
    Adds support for CommonModule to standalone migration (#64138)
    fix bug in ngclass-to-class migration (#63617)
    remove error for no matching files in control flow migration (#64253)

    platform-browser

    Commit Description
    remove deprecated ApplicationConfig export (#63529)

    router

    Commit Description
    convert lastSuccessfulNavigation to signal (#63057)
    Fix memory leak through Navigation.abort and canDeactivate guards (#64141)
    Respect custom UrlSerializer handling of query parameters (#64449)
    Update recognize stage to use internally async/await (#62994)

    upgrade

    Commit Description
    Remove deprecated UpgradeAdapter (#61659)

    Breaking Changes

    common

    • (test only) - TestBed now provides a fake PlatformLocation implementation that supports the Navigation API. This may break some tests, though we have not observed any failures internally. You can revert to the old default for TestBed by providing the MockPlatformLocation from @angular/common/testing in your providers: {provide: PlatformLocation, useClass: MockPlatformLocation}
    • ngComponentOutletContent is now of type Node[][] | undefined instead of any[][] | undefined.
    • NgModuleFactory has been removed, use NgModule instead.

    compiler-cli

      • Previously hidden type issues in host bindings may show up in your builds. Either resolve the type issues or set "typeCheckHostBindings": false in the angularCompilerOptions section of your tsconfig.
    • The Angular compiler now produces an error when the the emitDeclarationOnly TS compiler option is enabled as this mode is not supported.

    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.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

    • Using a combination of provideZoneChangeDetection while also removing ZoneJS polyfills will no longer result in the internal scheduler being disabled. All Angular applications now consistenly use the same scheduler, and those with the Zone change detection provider include additional automatic scheduling behaviors based on NgZone stabilization.

      • TypeScript versions less than 5.9 are no longer supported.
    • (test only) - Using provideZoneChangeDetection in the TestBed providers would previously prevent TestBed from rethrowing errors as it should. Errors in the test will now be rethrown, regardless of the usage of provideZoneChangeDetection. Tests should be adjusted to prevent or account for these errors. As in previous major versions, this behavior can be disabled with rethrowApplicationErrors: false in configureTestingModule as a last resort.

    • ignoreChangesOutsideZone is no longer available as an option for configuring ZoneJS change detection behavior.

    • Angular no longer provides a change detection scheduler for ZoneJS-based change detection by default. Add provideZoneChangeDetection to the providers of your bootstrapApplication function or your AppModule (if using bootstrapModule). This provider addition will be covered by an automated migration.

    • moduleId was removed from Component metadata.

    • The interpolation option on Components has been removed. Only the default {{ ... }} is now supported.

    elements

    • Fix signal input getter behavior in custom elements.

      Before this change, signal inputs in custom elements required function calls to access their values (elementRef.newInput()), while decorator inputs were accessed directly (elementRef.oldInput). This inconsistency caused confusion and typing difficulties.

      The getter behavior has been standardized so signal inputs can now be accessed directly, matching the behavior of decorator inputs:

      Before:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput()

      After:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput

    forms

    • This new directive will conflict with existing FormArray directives or formArray inputs on the same element.

    platform-browser

    • The deprecated ApplicationConfig export from @angular/platform-browser has been removed. Please import ApplicationConfig from @angular/core instead.

    router

    • lastSuccessfulNavigation is now a signal and needs to be invoked
    • Router navigations may take several additional microtasks to complete. Tests have been found to often be highly dependent on the exact timing of navigation completions with respect to the microtask queue. The most common fix for tests is to ensure all navigations have been completed before making assertions. On rare occasions, this can also affect production applications. This can be caused by multiple subscriptions to router state throughout the application, both of which trigger navigations that happened to not conflict with the previous timing.

    upgrade

    • UpgradeAdapter is no longer available. Use upgrade/static instead

    zone.js

    • IE/Non-Chromium Edge are not supported anymore.

    Deprecations

    http

    • HttpResponseBase.statusText is deprecated
    Open source →
    Release notes

    Blog post "Announcing Angular v21".

    Breaking Changes

    common

    • (test only) - TestBed now provides a fake PlatformLocation implementation that supports the Navigation API. This may break some tests, though we have not observed any failures internally. You can revert to the old default for TestBed by providing the MockPlatformLocation from @angular/common/testing in your providers: {provide: PlatformLocation, useClass: MockPlatformLocation}
    • ngComponentOutletContent is now of type Node[][] | undefined instead of any[][] | undefined.
    • NgModuleFactory has been removed, use NgModule instead.

    compiler-cli

      • Previously hidden type issues in host bindings may show up in your builds. Either resolve the type issues or set "typeCheckHostBindings": false in the angularCompilerOptions section of your tsconfig.
    • The Angular compiler now produces an error when the the emitDeclarationOnly TS compiler option is enabled as this mode is not supported.

    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.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

    • Using a combination of provideZoneChangeDetection while also removing ZoneJS polyfills will no longer result in the internal scheduler being disabled. All Angular applications now consistently use the same scheduler, and those with the Zone change detection provider include additional automatic scheduling behaviors based on NgZone stabilization.

      • TypeScript versions less than 5.9 are no longer supported.
    • (test only) - Using provideZoneChangeDetection in the TestBed providers would previously prevent TestBed from rethrowing errors as it should. Errors in the test will now be rethrown, regardless of the usage of provideZoneChangeDetection. Tests should be adjusted to prevent or account for these errors. As in previous major versions, this behavior can be disabled with rethrowApplicationErrors: false in configureTestingModule as a last resort.

    • ignoreChangesOutsideZone is no longer available as an option for configuring ZoneJS change detection behavior.

    • Angular no longer provides a change detection scheduler for ZoneJS-based change detection by default. Add provideZoneChangeDetection to the providers of your bootstrapApplication function or your AppModule (if using bootstrapModule). This provider addition will be covered by an automated migration.

    • moduleId was removed from Component metadata.

    • The interpolation option on Components has been removed. Only the default {{ ... }} is now supported.

    elements

    • Fix signal input getter behavior in custom elements.

      Before this change, signal inputs in custom elements required function calls to access their values (elementRef.newInput()), while decorator inputs were accessed directly (elementRef.oldInput). This inconsistency caused confusion and typing difficulties.

      The getter behavior has been standardized so signal inputs can now be accessed directly, matching the behavior of decorator inputs:

      Before:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput()

      After:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput

    forms

    • This new directive will conflict with existing FormArray directives or formArray inputs on the same element.

    platform-browser

    • The deprecated ApplicationConfig export from @angular/platform-browser has been removed. Please import ApplicationConfig from @angular/core instead.

    router

    • lastSuccessfulNavigation is now a signal and needs to be invoked
    • Router navigations may take several additional microtasks to complete. Tests have been found to often be highly dependent on the exact timing of navigation completions with respect to the microtask queue. The most common fix for tests is to ensure all navigations have been completed before making assertions. On rare occasions, this can also affect production applications. This can be caused by multiple subscriptions to router state throughout the application, both of which trigger navigations that happened to not conflict with the previous timing.

    upgrade

    • UpgradeAdapter is no longer available. Use upgrade/static instead

    zone.js

    • IE/Non-Chromium Edge are not supported anymore.

    Deprecations

    http

    • HttpResponseBase.statusText is deprecated

    common

    Commit Type Description
    c795960ada feat Add experimental support for the Navigation API (#63406)
    9eac43cf46 feat Support of optional keys for the KeyValue pipe (#48814)
    a1868c9d13 feat update to cldr 47 (#64032)
    196fa500a3 fix properly type ngComponentOutlet (#64561)
    7a4b225c57 refactor improve typing of ngComponentOutletContent (#63674)
    25f593ce2a refactor removengModuleFactory input of NgComponentOutlet (#62838)

    compiler

    Commit Type Description
    ecea909bcc fix don't choke on unbalanced parens in declaration block
    04dd75ba94 fix support arbitrary nesting in :host-context()
    f54cc4f28a fix support commas in :host() argument
    814b2713f5 fix support complex selectors in :nth-child()
    aad6ced0ef fix support one additional level of nesting in :host()

    compiler-cli

    Commit Type Description
    563dbd998c feat Adds diagnostic for misconfigured @defer triggers (#64069)
    0571b335b9 feat enable type checking of host bindings by default (#63654)
    5b55200edf fix allow value to be set on radio fields
    ab98b2425f fix capture metadata for undecorated fields (#63957)
    be7110342b fix disallow compiling with the emitDeclarationOnly TS compiler option enabled (#61609)
    bd322ca410 fix do not flag custom control required inputs as missing when field is present
    471da8a311 fix infer type of custom field controls
    96cb0cffda fix infer types of signal forms set on native inputs
    71ab11ccf0 fix make field detection logic more robust
    1f389b8b97 fix missingStructuralDirective diagnostic produces false negatives (#64579)
    7fd3db0423 fix remove internal syntax-related flags (#63787)
    c371251e4c fix report invalid bindings on form controls
    01290ab275 fix use any when checking field interface conformance

    core

    Commit Type Description
    809a4ed8c1 feat Add migration for zoneless by default. (#63042)
    2a7a5de53f feat Allow passing application providers in bootstrapModule options (#64354)
    28926ba92c feat introduce BootstrapContext for improved server bootstrapping (#63562)
    c2d376b85a feat make SimpleChanges generic (#64535)
    ad2376435b feat support IntersectionObserver options in viewport triggers (#64130)
    539717f58a feat support regular expressions in templates (#63887)
    ab415f3d7f fix control not recognized when input has directive injecting ViewContainerRef (#64368)
    f008045ded fix do not rename ARIA property bindings to attributes (#63925)
    1352fbdbf2 fix Drop special-case disables automatic change detection scheduling (#63846)
    c0791e1887 fix drop support for TypeScript 5.8 (#63589)
    aa389a691b fix ensure @for iteration over field is reactive (#64113)
    fec7c288e9 fix Error on invalid APP_ID (#63252)
    d399d7d02b fix Explicit Zone CD in TestBed providers should not override TestBed error handler (#63404)
    92e09adc0a fix Remove ignoreChangesOutsideZone option (#62700)
    45fed3d201 fix Remove Zone-based change provider from internals by default (#63382)
    c9f977833e fix skip Angular formatting when formatting signals recursively
    67fbd5ff1e fix SSR error in signal forms
    c241038111 fix update symbols (#64481)
    a5e5dbbc16 refactor remove moduleId from Component metadata (#63482)
    9a16718b13 refactor remove deprecated interpolation option on Components. (#63474)

    elements

    Commit Type Description
    be0455adda fix return value on signal input getter (#62113)

    forms

    Commit Type Description
    a278ee358c feat add debounce() rule for signal forms
    b8314bd340 feat add experimental signal-based forms (#63408)
    0dd95c503f feat Add FormArrayDirective (#55880)
    d201cd2c2b feat Prevents marking fields as touched/dirty when state is hidden/readonly/disabled (#63633)
    9c5e969f51 fix bind invalid input in custom controls (#64526)
    10ef96adb3 fix consistent treatment of empty (#63456)
    d89e522a1f fix debounce updates from interop controls
    c0d88c37c9 fix Emit FormResetEvent when resetting control (#64024)
    94b0afec00 fix implement interoperability between signal forms and reactive forms (#64471)
    a1ac9a6415 fix interop supports CVAs with signals (#64618)
    505bde1fed fix mark field as dirty when value is changed by ControlValueAccessor (#64471)
    3529877772 fix mark field as dirty when value is changed by a bound control (#64483)
    fd9af2afaf fix only propagate schema defined properties from field to control (#64446)
    91d8d55a80 fix Set error message of a schema error.
    f4d1017c25 fix test that common field states are propagated to controls (#63884)
    acd7c83597 fix test that min/max properties are propagated to controls (#63884)
    71e8672837 fix test that minLength/maxLength properties are propagated to controls (#63884)
    507b3466ee perf implement change detection for field control bindings
    781a3299f9 perf only update interop controls when bound field changes
    32f86d35f7 perf optimize [field] binding instructions (#64351)

    http

    Commit Type Description
    2739b7975b feat add referrerPolicy option to HttpResource (#64283)
    07e678872f feat Add reponseType property to HttpResponse and HttpErrorResponse (#63043)
    5cbdefcf11 feat add support for fetch referrerPolicy option in HttpClient (#64116)
    4bed062bc9 feat Provide http services in root (#56212)
    0e4e17cd97 refactor HttpResponseBase.statusText (#64176)

    language-server

    Commit Type Description
    3f7111a9c3 fix fix directory renaming on Windows

    language-service

    Commit Type Description
    89095946cf fix address potential memory leak during project creation
    80e00ff4e5 fix prevent interpolation from superseding block braces (#64392)

    migrations

    Commit Type Description
    6ddb250391 feat add migration to convert ngClass to use class (#62983)
    8dc8914c8a feat add migration to convert ngStyle to use style (#63517)
    861cee34e0 feat Adds migration for deprecated router testing module (#64217)
    75fc16b261 feat Adds support for CommonModule to standalone migration (#64138)
    655a99d0c6 fix fix bug in ngclass-to-class migration (#63617)
    62bbce63b7 fix remove error for no matching files in control flow migration (#64253)

    platform-browser

    Commit Type Description
    ce8db665f9 refactor remove deprecated ApplicationConfig export (#63529)

    router

    Commit Type Description
    4e0fc81491 feat convert lastSuccessfulNavigation to signal (#63057)
    5e61e8d3c3 fix Fix memory leak through Navigation.abort and canDeactivate guards (#64141)
    f6a73f1913 fix Respect custom UrlSerializer handling of query parameters (#64449)
    5b53535dd1 fix Update recognize stage to use internally async/await (#62994)

    upgrade

    Commit Type Description
    f86846555b fix Remove deprecated UpgradeAdapter (#61659)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.13"></a>

    Open source →
  35. 21.0.0-rc.317 Nov 2025pre-release
    Release notes

    compiler

    Commit Description
    don't choke on unbalanced parens in declaration block

    core

    Commit Description
    SSR error in signal forms

    forms

    Commit Description
    debounce updates from interop controls
    Set error message of a schema error.
    Open source →
  36. 21.0.0-rc.212 Nov 2025pre-release
    Release notes

    common

    Commit Description
    remove placeholder image listeners once view is removed

    compiler

    Commit Description
    support commas in :host() argument
    support complex selectors in :nth-child()
    support one additional level of nesting in :host()

    compiler-cli

    Commit Description
    allow value to be set on radio fields
    do not flag custom control required inputs as missing when field is present
    make field detection logic more robust
    use any when checking field interface conformance

    core

    Commit Description
    skip Angular formatting when formatting signals recursively

    forms

    Commit Description
    add debounce() rule for signal forms
    only update interop controls when bound field changes

    language-server

    Commit Description
    fix directory renaming on Windows

    language-service

    Commit Description
    address potential memory leak during project creation
    Open source →
  37. 21.0.0-rc.15 Nov 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    infer type of custom field controls
    infer types of signal forms set on native inputs
    make required inputs diagnostic less noisy
    report invalid bindings on form controls

    core

    Commit Description
    skip leave animations on view swaps

    forms

    Commit Description
    implement change detection for field control bindings

    migrations

    Commit Description
    Prevent removal of templates referenced with preceding whitespace characters
    Open source →
  38. 21.0.0-rc.029 Oct 2025pre-release

    Nothing published for this version

  39. 21.0.0-next.1029 Oct 2025pre-release
    Release notes

    common

    Commit Description
    Blocks IPv6 localhost from preconnect checks

    compiler

    Commit Description
    support arbitrary nesting in :host-context()

    core

    Commit Description
    Clear lView from IcuIteratorState when stack is empty to prevent memory leak
    ensure @for iteration over field is reactive (#64113)

    forms

    Commit Description
    interop supports CVAs with signals (#64618)

    migrations

    Commit Description
    Do not remove a template if it is referenced even with a trailing semilocon

    router

    Commit Description
    handle parenthesized outlets without a name in DefaultUrlSerializer (#64507)
    Open source →
  40. 21.0.0-next.922 Oct 2025pre-release
    Release notes

    animations

    Commit Description
    account for Element.animate exceptions (#64506)

    common

    Commit Description
    update to cldr 47 (#64032)
    properly type ngComponentOutlet (#64561)

    compiler

    Commit Description
    correctly compile long numeric HTML entities (#64297)

    compiler-cli

    Commit Description
    missingStructuralDirective diagnostic produces false negatives (#64470)
    missingStructuralDirective diagnostic produces false negatives (#64579)

    core

    Commit Description
    make SimpleChanges generic (#64535)
    pass element removal property through in all locations (#64565)
    prevent duplicate nodes from being retained with fast `animate.leave`` calls (#64592)
    update animation scheduling (#64441)
    update symbols (#64481)

    forms

    Commit Description
    bind invalid input in custom controls (#64526)
    implement interoperability between signal forms and reactive forms (#64471)
    mark field as dirty when value is changed by ControlValueAccessor (#64471)
    mark field as dirty when value is changed by a bound control (#64483)
    only propagate schema defined properties from field to control (#64446)

    language-service

    Commit Description
    prevent interpolation from superseding block braces (#64392)

    migrations

    Commit Description
    Adds support for CommonModule to standalone migration (#64138)

    platform-browser

    Commit Description
    DomEventsPlugin should always be the last plugin to be called for supports(). (#50394)

    router

    Commit Description
    Fix outlet serialization and parsing with no primary children (#64505)
    Respect custom UrlSerializer handling of query parameters (#64449)
    Respect custom UrlSerializer handling of query parameters (#64449)
    Surface parse errors in Router.parseUrl (#64503)

    Breaking Changes

    zone.js

    • IE/Non-Chromium Edge are not supported anymore.
    Open source →
  41. 21.0.0-next.815 Oct 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    Adds diagnostic for misconfigured @defer triggers (#64069)
    capture metadata for undecorated fields (#63957)
    fix performance of "interpolated signal not invoked" check (#64410)

    core

    Commit Description
    Allow passing application providers in bootstrapModule options (#64354)
    support IntersectionObserver options in viewport triggers (#64130)
    control not recognized when input has directive injecting ViewContainerRef (#64368)
    fixes regression in animate.leave function bindings (#64413)
    Prevents early style pruning with leave animations (#64335)

    forms

    Commit Description
    test that common field states are propagated to controls (#63884)
    test that min/max properties are propagated to controls (#63884)
    test that minLength/maxLength properties are propagated to controls (#63884)
    optimize [field] binding instructions (#64351)

    http

    Commit Description
    add referrerPolicy option to HttpResource (#64283)

    migrations

    Commit Description
    Adds migration for deprecated router testing module (#64217)
    Adds migration for deprecated router testing module (#64217)
    migrating input with more than 1 usage in a method (#64367)

    router

    Commit Description
    Scroll restoration should use instant scroll behavior for traversals (#64299)
    Open source →
  42. 21.0.0-next.78 Oct 2025pre-release
    Release notes

    common

    Commit Description
    Support of optional keys for the KeyValue pipe (#48814)

    core

    Commit Description
    ensure missing leave animations don't queue leave animations (#64226)
    Fixes animations in conjunction with content projection (#63776)
    handle undefined CSS time values in parseCssTimeUnitsToMs function (#64181)
    prevent early exit from leave animations when multiple transitions are present (#64225)

    http

    Commit Description
    add support for fetch referrerPolicy option in HttpClient (#64116)
    HttpResponseBase.statusText (#64176)

    migrations

    Commit Description
    preserve component imports when pruning NgModules in standalone migration (#64186)
    remove error for no matching files in control flow migration (#64253)

    router

    Commit Description
    Fix memory leak through Navigation.abort and canDeactivate guards (#64141)

    Deprecations

    http

    • HttpResponseBase.statusText is deprecated
    Open source →
  43. 21.0.0-next.62 Oct 2025pre-release
    Release notes

    common

    Commit Description
    Support of optional keys for the KeyValue pipe (#48814)

    compiler

    Commit Description
    recover template literals with broken expressions (#64150)

    core

    Commit Description
    Fixes animations in conjunction with content projection (#63776)
    prevents unintended early termination of leave animations and hoisting (#64088)

    elements

    Commit Description
    return value on signal input getter (#62113)

    migrations

    Commit Description
    handle shorthand property declarations in NgModule (#64160)
    skip migration for inputs with 'this' references (#64142)

    Breaking Changes

    elements

    • Fix signal input getter behavior in custom elements.

      Before this change, signal inputs in custom elements required function calls to access their values (elementRef.newInput()), while decorator inputs were accessed directly (elementRef.oldInput). This inconsistency caused confusion and typing difficulties.

      The getter behavior has been standardized so signal inputs can now be accessed directly, matching the behavior of decorator inputs:

      Before:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput()

      After:

      • Decorator Input: elementRef.oldInput
      • Signal Input: elementRef.newInput
    Open source →
  44. 21.0.0-next.524 Sept 2025pre-release
    Release notes

    common

    Commit Description
    update to cldr 47 (#63923)

    compiler-cli

    Commit Description
    capture metadata for undecorated fields (#63904)
    resolve import alias in defer blocks (#63966)

    core

    Commit Description
    support regular expressions in templates (#63887)
    do not rename ARIA property bindings to attributes (#63925)
    Error on invalid APP_ID (#63252)
    fix narrowing of Resource.hasValue() (#63994)
    prevent animations renderer from impacting animate.leave (#63921)

    forms

    Commit Description
    Emit FormResetEvent when resetting control (#64024)

    migrations

    Commit Description
    handle import aliases to the same module name (#63934)
    handle reused templates in control flow migration (#63996)
    Open source →
  45. 21.0.0-next.417 Sept 2025pre-release
    Release notes

    common

    Commit Description
    improve typing of ngComponentOutletContent (#63674)

    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)
    remove internal syntax-related flags (#63787)
    signal not invoked diagnostic not raised when input has same name in template (#63754)

    core

    Commit Description
    Add migration for zoneless by default. (#63042)
    support regular expressions in templates (#63857)
    Drop special-case disables automatic change detection scheduling (#63846)
    prevent animation events from being cleaned up on destroy (#63414)
    Prevent leave animations on a move operation (#63745)
    Remove Zone-based change provider from internals by default (#63382)
    remove moduleId from Component metadata (#63482)
    remove deprecated interpolation option on Components. (#63474)

    forms

    Commit Description
    Prevents marking fields as touched/dirty when state is hidden/readonly/disabled (#63633)

    migrations

    Commit Description
    add migration to convert ngStyle to use style (#63517)
    fix route-lazy-loading migration (#63818)

    Breaking Changes

    common

    • ngComponentOutletContent is now of type Node[][] | undefined instead of any[][] | undefined.

    core

    • Using a combination of provideZoneChangeDetection while also removing ZoneJS polyfills will no longer result in the internal scheduler being disabled. All Angular applications now consistenly use the same scheduler, and those with the Zone change detection provider include additional automatic scheduling behaviors based on NgZone stabilization.
    • Angular no longer provides a change detection scheduler for ZoneJS-based change detection by default. Add provideZoneChangeDetection to the providers of your bootstrapApplication function or your AppModule (if using bootstrapModule). This provider addition will be covered by an automated migration.
    • moduleId was removed from Component metadata.
    • The interpolation option on Components has been removed. Only the default {{ ... }} is now supported.
    Open source →
  46. 21.0.0-next.310 Sept 2025pre-release
    Release notes

    Commit Description
    remove refresh button from transfer state tab (#63592)

    compiler-cli

    Commit Description
    enable type checking of host bindings by default (#63654)

    core

    Commit Description
    introduce BootstrapContext for improved server bootstrapping (#63562)
    drop support for TypeScript 5.8 (#63589)

    migrations

    Commit Description
    fix bug in ngclass-to-class migration (#63617)

    Breaking Changes

    compiler-cli

      • Previously hidden type issues in host bindings may show up in your builds. Either resolve the type issues or set "typeCheckHostBindings": false in the angularCompilerOptions section of your tsconfig.

    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.ts files to pass the BootstrapContext to the bootstrapApplication call.

      In addition, getPlatform() and destroyPlatform() will now return null and 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

      • TypeScript versions less than 5.9 are no longer supported.
    Open source →
  47. 21.0.0-next.23 Sept 2025pre-release
    Release notes

    common

    Commit Description
    Add experimental support for the Navigation API (#63406)

    compiler

    Commit Description
    fixes regression with event parsing and animate prefix (#63470)

    core

    Commit Description
    avoid injecting internal error handler from a destroyed injector (#62275)
    Explicit Zone CD in TestBed providers should not override TestBed error handler (#63404)
    Fix cancellation of animation enter classes (#63442)
    Fixed inject migration schematics for migrate destructured properties (#62832)
    Prevent an error on cleanup when an rxResource stream threw before returning an Observable (#63342)
    Remove ignoreChangesOutsideZone option (#62700)

    forms

    Commit Description
    add experimental signal-based forms (#63408)
    consistent treatment of empty (#63456)

    http

    Commit Description
    Add reponseType property to HttpResponse and HttpErrorResponse (#63043)

    platform-browser

    Commit Description
    remove deprecated ApplicationConfig export (#63529)

    platform-server

    Commit Description
    prevent false warning for duplicate state serialization (#63525)

    router

    Commit Description
    Update recognize stage to use internally async/await (#62994)

    upgrade

    Commit Description
    Remove deprecated UpgradeAdapter (#61659)

    Breaking Changes

    common

    • (test only) - TestBed now provides a fake PlatformLocation implementation that supports the Navigation API. This may break some tests, though we have not observed any failures internally. You can revert to the old default for TestBed by providing the MockPlatformLocation from @angular/common/testing in your providers: {provide: PlatformLocation, useClass: MockPlatformLocation}

    core

    • (test only) - Using provideZoneChangeDetection in the TestBed providers would previously prevent TestBed from rethrowing errors as it should. Errors in the test will now be rethrown, regardless of the usage of provideZoneChangeDetection. Tests should be adjusted to prevent or account for these errors. As in previous major versions, this behavior can be disabled with rethrowApplicationErrors: false in configureTestingModule as a last resort.
    • ignoreChangesOutsideZone is no longer available as an option for configuring ZoneJS change detection behavior.

    platform-browser

    • The deprecated ApplicationConfig export from @angular/platform-browser has been removed. Please import ApplicationConfig from @angular/core instead.

    router

    • Router navigations may take several additional microtasks to complete. Tests have been found to often be highly dependent on the exact timing of navigation completions with respect to the microtask queue. The most common fix for tests is to ensure all navigations have been completed before making assertions. On rare occasions, this can also affect production applications. This can be caused by multiple subscriptions to router state throughout the application, both of which trigger navigations that happened to not conflict with the previous timing.

    upgrade

    • UpgradeAdapter is no longer available. Use upgrade/static instead
    Open source →
  48. 21.0.0-next.127 Aug 2025pre-release
    Release notes

    common

    Commit Description
    removengModuleFactory input of NgComponentOutlet (#62838)

    compiler

    Commit Description
    fixes animations on elements with structural directives (#63390)
    Keep paraenthesis in Nullish + Boolean expression. (#63292)

    core

    Commit Description
    Ensures @for loop animations never get cancelled (#63328)
    fix memory leak with leaving nodes tracking (#63328)
    Fixes animate.leave binding to a string with spaces (#63366)

    forms

    Commit Description
    Add FormArrayDirective (#55880)

    migrations

    Commit Description
    add migration to convert ngClass to use class (#62983)

    Breaking Changes

    common

    • NgModuleFactory has been removed, use NgModule instead.

    forms

    • This new directive will conflict with existing FormArray directives or formArray inputs on the same element.
    Open source →
  49. 21.0.0-next.020 Aug 2025pre-release
    Release notes

    compiler-cli

    Commit Description
    disallow compiling with the emitDeclarationOnly TS compiler option enabled (#61609)

    http

    Commit Description
    Provide http services in root (#56212)

    router

    Commit Description
    convert lastSuccessfulNavigation to signal (#63057)

    Breaking Changes

    compiler-cli

    • The Angular compiler now produces an error when the the emitDeclarationOnly TS compiler option is enabled as this mode is not supported.

    router

    • lastSuccessfulNavigation is now a signal and needs to be invoked
    Open source →
  50. 20.3.3026 Aug 2026
    Release notes

    platform-server

    Commit Description
    avoid stripping unicode whitespace during url resolution
    update domino to latest version
    Open source →
    Release notes

    platform-server

    Commit Type Description
    9339a7a2de fix avoid stripping unicode whitespace during url resolution
    89b20568df fix update domino to latest version

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="22.2.0-next.3"></a>

    Open source →
  51. 20.3.2919 Aug 2026
    Release notes

    platform-browser

    Commit Description
    disallow event handler attributes in Meta
    Open source →
    Release notes

    platform-browser

    Commit Type Description
    7538744c10 fix disallow event handler attributes in Meta

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.21"></a>

    Open source →
  52. 20.3.2813 Aug 2026
    Release notes

    core

    Commit Description
    sanitize host bindings on concrete hosts

    http

    Commit Description
    match header values exactly when deleting
    preserve immutability of materialized clones
    run root interceptors in the terminal request chain
    Open source →
    Release notes

    core

    Commit Description
    sanitize host bindings on concrete hosts

    http

    Commit Description
    match header values exactly when deleting
    preserve immutability of materialized clones
    run root interceptors in the terminal request chain
    Open source →
    Release notes

    core

    Commit Type Description
    2f96c8020f fix sanitize host bindings on concrete hosts

    http

    Commit Type Description
    969133d426 fix match header values exactly when deleting
    29dd26bd71 fix preserve immutability of materialized clones
    e4c416c20a fix run root interceptors in the terminal request chain

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.20"></a>

    Open source →
  53. 20.3.2729 Jul 2026
    Release notes

    compiler

    Commit Description
    disallow i18n event attributes
    restrict possible event handler check to property names longer than 2 characters

    http

    Commit Description
    distinguish repeated transfer cache params

    platform-server

    Commit Description
    update domino to latest version
    Open source →
    Release notes

    compiler

    Commit Type Description
    5dbcd0ee16 fix disallow i18n event attributes
    db0d4a1a39 fix restrict possible event handler check to property names longer than 2 characters

    http

    Commit Type Description
    a64e2883e9 fix distinguish repeated transfer cache params

    platform-server

    Commit Type Description
    6f80cca0b8 fix update domino to latest version

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="22.0.8"></a>

    Open source →
  54. 20.3.268 Jul 2026
    Release notes

    compiler-cli

    Commit Description
    update babel dependencies to latest v7

    core

    Commit Description
    avoid caching missing locale data
    reject dynamic script host elements

    http

    Commit Description
    prevent caching of responses with Set-Cookie headers

    service-worker

    Commit Description
    preserve referrer in asset requests
    preserve referrer policy in asset requests
    Open source →
    Release notes

    compiler-cli

    Commit Type Description
    406aaa31e6 fix update babel dependencies to latest v7

    core

    Commit Type Description
    26831d0cbd fix avoid caching missing locale data
    8eb7aea08b fix reject dynamic script host elements

    http

    Commit Type Description
    b963f61028 fix prevent caching of responses with Set-Cookie headers

    service-worker

    Commit Type Description
    1fdf234168 fix preserve referrer in asset requests
    baa093ba68 fix preserve referrer policy in asset requests

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.18"></a>

    Open source →
  55. 20.3.2510 Jun 2026
    Release notes

    common

    Commit Description
    Limits date format string length
    skip transfer cache for uncacheable HTTP traffic
    use cryptographically secure SHA-256 for transfer cache key generation

    compiler

    Commit Description
    sanitize two-way properties

    core

    Commit Description
    harden TransferState restoration against DOM clobbering
    validate lowercase SVG animation attribute names (#69270)

    http

    Commit Description
    preserve empty referrer option in HttpRequest
    Rejects non-HTTP(S) URLs in JSONP requests
    skip transfer cache for fetch credentialed requests

    platform-server

    Commit Description
    harden platform location origin validation during SSR
    deprecate ServerXhr (#69256)

    service-worker

    Commit Description
    Strips sensitive headers on cross-origin redirects

    Deprecations

    platform-server

    • XHR support in @angular/platform-server is deprecated. Use standard fetch APIs instead.
    Open source →
    Release notes

    Deprecations

    platform-server

    • XHR support in @angular/platform-server is deprecated. Use standard fetch APIs instead.

    common

    Commit Type Description
    9f443bc24c fix Limits date format string length
    566ad05f20 fix skip transfer cache for uncacheable HTTP traffic
    1a62130a6b fix use cryptographically secure SHA-256 for transfer cache key generation

    compiler

    Commit Type Description
    a68ec702a0 fix sanitize two-way properties

    core

    Commit Type Description
    768a349e6e fix harden TransferState restoration against DOM clobbering
    ca48b4728d fix validate lowercase SVG animation attribute names (#69270)

    http

    Commit Type Description
    06be298267 fix preserve empty referrer option in HttpRequest
    fa940e1f4d fix Rejects non-HTTP(S) URLs in JSONP requests
    e2ef1ce72a fix skip transfer cache for fetch credentialed requests

    platform-server

    Commit Type Description
    49368c1859 fix harden platform location origin validation during SSR
    d55c94ad81 refactor deprecate ServerXhr (#69256)

    service-worker

    Commit Type Description
    d65a5f457b fix Strips sensitive headers on cross-origin redirects

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="22.0.0"></a>

    Open source →
  56. 20.3.242 Jun 2026
    Release notes

    platform-server

    Commit Description
    throw on suspicious URLs and restrict protocol-relative URLs
    update domino to latest version
    Open source →
    Release notes

    platform-server

    Commit Type Description
    6ca433e56b fix throw on suspicious URLs and restrict protocol-relative URLs
    8680b5152f fix update domino to latest version

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.15"></a>

    Open source →
  57. 20.3.2328 May 2026
    Release notes

    compiler

    Commit Description
    prevent namespaced SVG <style> elements from being stripped
    Open source →
    Release notes

    compiler

    Commit Type Description
    d40acc6431 fix prevent namespaced SVG <style> elements from being stripped

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="20.3.22"></a>

    Open source →
  58. 20.3.2227 May 2026
    Release notes

    common

    Commit Description
    add upper bounds for digitsInfo
    sanitize placeholder

    compiler

    Commit Description
    normalize tag names with custom namespaces in DomElementSchemaRegistry (#68926)
    sanitize dynamic href and xlink:href bindings on SVG a elements (#68926)
    strip namespaced SVG script elements during template compilation (#68926)

    core

    Commit Description
    normalize tag names in runtime i18n attribute security context lookup (#68926)
    reject script element as a dynamic component host (#68926)
    sanitize meta selectors
    support prefix-insensitive DOM schema lookups and compile-time i18n attribute validation (#68926)
    synchronize core sanitization schema with compiler (#68926)

    http

    Commit Description
    exclude withCredentials requests from transfer cache
    skip TransferCache for cookie-bearing requests by default

    platform-server

    Commit Description
    secure location and document initialization against SSRF and path hijack

    service-worker

    Commit Description
    preserve redirect policy on reconstructed asset requests
    Preserves explicit 'credentials: omit' in asset requests
    Preserves HTTP cache mode in asset group requests
    Open source →
    Release notes

    common

    Commit Type Description
    3d135ce59b fix add upper bounds for digitsInfo
    39a4b4cc8e fix sanitize placeholder

    compiler

    Commit Type Description
    8f35b182b1 fix normalize tag names with custom namespaces in DomElementSchemaRegistry (#68926)
    64a89e917a fix sanitize dynamic href and xlink:href bindings on SVG a elements (#68926)
    6404edfe0a fix strip namespaced SVG script elements during template compilation (#68926)

    core

    Commit Type Description
    e345a58069 fix normalize tag names in runtime i18n attribute security context lookup (#68926)
    d86e4e7b2a fix reject script element as a dynamic component host (#68926)
    af04936045 fix sanitize meta selectors
    dc631efa96 fix support prefix-insensitive DOM schema lookups and compile-time i18n attribute validation (#68926)
    909ef047b3 fix synchronize core sanitization schema with compiler (#68926)

    http

    Commit Type Description
    de7b2a62e7 fix exclude withCredentials requests from transfer cache
    4233188d8e fix skip TransferCache for cookie-bearing requests by default

    platform-server

    Commit Type Description
    49a60f6045 fix secure location and document initialization against SSRF and path hijack

    service-worker

    Commit Type Description
    5fdfd8a998 fix preserve redirect policy on reconstructed asset requests
    83b022f2d0 fix Preserves explicit 'credentials: omit' in asset requests
    e617fa06eb fix Preserves HTTP cache mode in asset group requests

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="19.2.23"></a>

    Open source →
  59. 20.3.2112 May 2026
    Release notes

    platform-server

    Commit Description
    add allowedHosts option to renderModule and renderApplication
    Open source →
    Release notes

    platform-server

    Commit Type Description
    f584840e2e fix add allowedHosts option to renderModule and renderApplication

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.12"></a>

    Open source →
  60. 20.3.206 May 2026
    Release notes

    core

    Commit Description
    disallow event attribute bindings in host bindings unconditionally (#68468)
    validate security-sensitive attributes in i18n bindings (#68468)

    platform-server

    Commit Description
    ensure origin has a trailing slash when parsing url (#68468)
    Open source →
    Release notes

    core

    Commit Type Description
    a9bcffdbc7 fix disallow event attribute bindings in host bindings unconditionally (#68468)
    97eeb45cfa fix validate security-sensitive attributes in i18n bindings (#68468)

    platform-server

    Commit Type Description
    25e4e07238 fix ensure origin has a trailing slash when parsing url (#68468)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="21.2.11"></a>

    Open source →