Angular: v21.0.7 Release

Release date:
January 7, 2026
Previous version:
v21.0.6 (released December 17, 2025)
Magnitude:
4,072 Diff Delta
Contributors:
8 total committers
Data confidence:
Commits:

Top Contributors in v21.0.7

leonsenft
SkyZeroZx
kirjs
alan-agius4
hawkgs
aparzi
andrewseguin
loganmzz

Directory Browser for v21.0.7

All files are compared to previous version, v21.0.6. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

compiler

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

compiler-cli

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

core

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

forms

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

router

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