Skip to content

Release 1.8.3 - #1363

Merged
FlorianRappl merged 35 commits into
mainfrom
devel
Sep 30, 2026
Merged

FlorianRappl merged 35 commits into
mainfrom
devel

Conversation

@FlorianRappl

Copy link
Copy Markdown
Contributor

Types of Changes

Prerequisites

Please make sure you can check the following two boxes:

  • I have read the CONTRIBUTING document
  • My code follows the code style of this project

Contribution Type

What types of changes does your code introduce? Put an x in all the boxes that apply:

  • Bug fix (non-breaking change which fixes an issue, please reference the issue id)
  • New feature (non-breaking change which adds functionality, make sure to open an associated issue first)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

Description

This pull request introduces version 1.8.3 of AngleSharp, focusing on improved event handling, configuration performance, and compliance with DOM specifications. It also adds new tests and benchmarking for configuration services, and updates documentation and contributors.

PrzemyslawKlys and others added 30 commits September 22, 2026 13:02
…query

Notify script hosts when native listeners reset
Honor cancellation of queued timer callbacks
Use beforeunload for native Unloading handlers
Reduce configuration service setup cost without API changes
Respect browsing context sandbox rules during form submission
Add pull-based HTML serialization stream
Jack278 pushed a commit to twblazor/twblazor that referenced this pull request Oct 7, 2026
Updated [AngleSharp](https://github.com/AngleSharp/AngleSharp) from
1.8.2 to 1.8.3.

<details>
<summary>Release notes</summary>

_Sourced from [AngleSharp's
releases](https://github.com/AngleSharp/AngleSharp/releases)._

## 1.8.3

Released on Wednesday, September 30 2026

## What's Changed

- Improved cancellation of queued timer callbacks (#​1357)
@​PrzemyslawKlys
- Improved configuration / setup performance (#​1360) @​PrzemyslawKlys
- Fixed form submission ignoring sandbox restrictions (#​1358)
@​PrzemyslawKlys
- Fixed `<base>` elements not following frozen document base URL and
tree-order mutation rules (#​1355, #​1362)
- Fixed native `Unloading` handlers subscribing to `unloading` instead
of `beforeunload` (#​1354) @​PrzemyslawKlys
- Added `OnReset` event to inform script hosts of native listener
removals (#​1356) @​PrzemyslawKlys
- Added pull-based HTML serialization stream (#​1361) @​PrzemyslawKlys
- Released 1.8.3 by @​FlorianRappl in
AngleSharp/AngleSharp#1363

## New Contributors

* @​PrzemyslawKlys made their first contribution in
AngleSharp/AngleSharp#1356

**Full Changelog**:
AngleSharp/AngleSharp@v1.8.2...v1.8.3

Commits viewable in [compare
view](AngleSharp/AngleSharp@v1.8.2...v1.8.3).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to mpaulosky/IssueManager that referenced this pull request Oct 8, 2026
Updated [AngleSharp](https://github.com/AngleSharp/AngleSharp) from
1.8.2 to 1.8.3.

<details>
<summary>Release notes</summary>

_Sourced from [AngleSharp's
releases](https://github.com/AngleSharp/AngleSharp/releases)._

## 1.8.3

Released on Wednesday, September 30 2026

## What's Changed

- Improved cancellation of queued timer callbacks (#​1357)
@​PrzemyslawKlys
- Improved configuration / setup performance (#​1360) @​PrzemyslawKlys
- Fixed form submission ignoring sandbox restrictions (#​1358)
@​PrzemyslawKlys
- Fixed `<base>` elements not following frozen document base URL and
tree-order mutation rules (#​1355, #​1362)
- Fixed native `Unloading` handlers subscribing to `unloading` instead
of `beforeunload` (#​1354) @​PrzemyslawKlys
- Added `OnReset` event to inform script hosts of native listener
removals (#​1356) @​PrzemyslawKlys
- Added pull-based HTML serialization stream (#​1361) @​PrzemyslawKlys
- Released 1.8.3 by @​FlorianRappl in
AngleSharp/AngleSharp#1363

## New Contributors

* @​PrzemyslawKlys made their first contribution in
AngleSharp/AngleSharp#1356

**Full Changelog**:
AngleSharp/AngleSharp@v1.8.2...v1.8.3

Commits viewable in [compare
view](AngleSharp/AngleSharp@v1.8.2...v1.8.3).
</details>

Updated [Aspire.Hosting](https://github.com/microsoft/aspire) from
13.5.4 to 13.6.0.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](microsoft/aspire@v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](microsoft/aspire@56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](microsoft/aspire@v13.5.4...v13.6.0).
</details>

Updated [Aspire.Hosting.MongoDB](https://github.com/microsoft/aspire)
from 13.5.4 to 13.6.0.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.MongoDB's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](microsoft/aspire@v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](microsoft/aspire@56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](microsoft/aspire@v13.5.4...v13.6.0).
</details>

Updated [Aspire.Hosting.Redis](https://github.com/microsoft/aspire) from
13.5.4 to 13.6.0.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.Redis's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](microsoft/aspire@v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](microsoft/aspire@56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](microsoft/aspire@v13.5.4...v13.6.0).
</details>

Updated [Aspire.Hosting.Testing](https://github.com/microsoft/aspire)
from 13.5.4 to 13.6.0.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.Testing's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](microsoft/aspire@v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](microsoft/aspire@56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](microsoft/aspire@v13.5.4...v13.6.0).
</details>

Updated [Radzen.Blazor](https://github.com/radzenhq/radzen-blazor) from
11.5.1 to 12.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Radzen.Blazor's
releases](https://github.com/radzenhq/radzen-blazor/releases)._

## 12.0.3

# 12.0.3 - 2026-10-01

### Fixes
- **VirtualKeyboard** fits narrow screens. Every key had a fixed minimum
width, so on a phone the alphanumeric keyboard was wider than the screen
and the outer keys such as `1`, `0`, `q` and `p` were cut off. The keys
now shrink evenly to fit the available width in the `Bottom`, `Top`,
`Auto` and `Inline` placements and keep the same width in every row,
keys with longer labels stay as wide as their text, and the keyboard
looks the same as before on wider screens.

## 12.0.2

# 12.0.2 - 2026-10-01

### Improvements
- **FormField** has a `FocusOnClick` parameter. With
`FocusOnClick="true"` clicking the `Start` or `End` content, or the
empty area inside the field border, focuses the input. Clicks on
interactive `Start` or `End` content such as buttons and links are left
alone, disabled fields are ignored, and an already focused input keeps
focus without a blur. The parameter defaults to `false`, so existing
fields behave as before (#​2742).
- **Chart** legend items can be templated with the new `RadzenLegend`
`ItemTemplate`, which renders the content of every legend item instead
of its text while keeping the marker and the click behavior. The
template receives a `LegendItemContext` with the `Text`, `Data`,
`Series` and `Color` of the item, and the chart measures the rendered
legend and reserves the space it needs (#​852).
- **GoogleMap** has a `BoundsChanged` event that reports the area the
map is showing. It is raised once the map is loaded and each time the
map becomes idle after panning or zooming, so a drag raises one callback
instead of one per frame, and `GoogleMapBoundsChangedEventArgs` provides
the `NorthEast` and `SouthWest` corners of the visible area together
with the `Center` and the `Zoom` level (#​84).
- **DataGrid** and **Gantt** `CellClick` can prevent the `RowClick`
raised for the same click, for example when `CellClick` starts in-cell
editing and `RowClick` opens a detail panel.
`DataGridCellMouseEventArgs` now has `PreventDefault()` and
`IsDefaultPrevented`: calling `PreventDefault()` in `CellClick` skips
`RowClick` and the row selection for that click, and calling it in
`CellDoubleClick` skips `RowDoubleClick`. An asynchronous `CellClick`
handler has to call it before its first `await` (#​2570).
- **Spreadsheet** formulas support whole-column and whole-row references
such as `A:A`, `4:4`, `$A:$B`, `Data!A:A` and `'My Sheet'!4:5`. They
evaluate over the used area of the sheet, while `ROWS`, `COLUMNS`,
`COUNTBLANK`, `INDEX` and implicit intersection see the full logical
size, recalculate when any cell in the referenced columns or rows
changes, shift only the bounded axis on copy, fill and insert, and
become `#REF!` when the referenced column or row is deleted (#​2743).
- **DataGrid** and **Gantt** in-cell edit demos commit the pending edit
when the focus leaves the grid (#​2571).

### Fixes
- **Spreadsheet** formulas that reference another worksheet recalculate
when the referenced cell changes. The workbook now owns a single
dependency graph that orders recalculation across all sheets, defers it
while any sheet is batching, and shifts or invalidates cross-sheet
references when rows and columns are inserted or deleted.
- **Spreadsheet** renaming a worksheet rewrites every reference to it in
cell formulas, defined names, chart series ranges and data validation
formulas. The new name is quoted whenever it is not a plain identifier
or looks like a cell or R1C1 address, and quoted sheet names that escape
an apostrophe as two, such as `'Bob''s Sheet'!A1`, are read correctly.
- **Spreadsheet** adding, removing or renaming a sheet refreshes only
the formulas that name it instead of recalculating the whole workbook,
and loading a workbook with many sheets scans its formulas once.


## 12.0.1

# 12.0.1 - 2026-10-01

### Fixes
- **ThemeService** - a `RadzenDropDown` or `RadzenListBox` bound to
`Themes.All`, `Themes.Free` or `Themes.Premium` with
`TextProperty="Text"` and `ValueProperty="Value"` works in a trimmed
Blazor WebAssembly publish. 12.0.0 is the first trimmable release, and
because the library never reads the `Theme` properties itself, the
trimmer removed their getters when the application read them only by
name, so the component failed with `ExpressionMustBeReadable ifTrue` in
`PropertyAccess`. The `Theme` members are now preserved whenever the
type is used.
- **PropertyAccess** - a property without a getter is reported by name
with the trimming remedy (annotate the type with
`[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)]`
or preserve it in a linker descriptor) instead of the raw
`ExpressionMustBeReadable` expression tree error.


## 12.0.0

# 12.0.0 - 2026-09-30

### Breaking changes
- **RadzenDatePicker** - calendar navigation defaults to the new
drill-down mode: the calendar title drills up to a month grid and a year
grid instead of showing month and year drop-downs. Set
`NavigationMode="DatePickerNavigationMode.DropDown"` to restore the
previous behavior.
- **RadzenChart** - column, bar, area and waterfall series and their
stacked variants include zero in the value axis by default, and line,
scatter and stacked line series with all-negative values fit their data
instead of ending at zero. Set `Range="ValueAxisRange.Data"` or
`Range="ValueAxisRange.IncludeZero"` on `RadzenValueAxis` to restore the
previous behavior. `RadzenSparkline` keeps fitting its data unless its
value axis sets `Range="ValueAxisRange.IncludeZero"`.
- **RadzenChart** - category labels fit by default: labels that do not
fit are rotated, skipped at a regular stride and shortened with an
ellipsis, and `LabelRotation` and `LabelAutoRotation` now set only the
angle. Set `LabelFit="CategoryAxisLabelFit.None"` on
`RadzenCategoryAxis` to restore the previous behavior. Axis labels are
clipped at the chart edge instead of drawing over the page.
- **RadzenChart** - value axes compute the tick step from the data
range, so some axes get finer steps (set `Step` for a fixed step), and
an axis that sets only `Min` or only `Max` keeps that bound exactly and
rounds the other end to a tick (set both to restore the previous
behavior).
- **RadzenDataGrid** - enum filter values in saved settings are
serialized as numbers instead of `FullName` casts. Settings saved by
previous versions are still loaded.
- **Trimming** - the dynamic LINQ API (`QueryableExtension` and related
methods) is marked with `[RequiresUnreferencedCode]`, so applications
published with trimming enabled see analyzer warnings when calling it
directly.

### Improvements
- **RadzenMarkdownEditor** - new Markdown editor with a WYSIWYG Design
mode that edits the rendered document in place and writes it back to
Markdown, a Source mode for the raw Markdown, a built-in mode switcher
(`ShowModeSwitch`), tools for bold, italic, strikethrough, inline code,
code blocks, headings and paragraphs
(`RadzenMarkdownEditorFormatBlock`), block quotes, bullet, numbered and
task lists, links, images and horizontal rules, table authoring with
`RadzenMarkdownEditorTable` and `RadzenMarkdownEditorTableTools` (also
as a context menu inside a table), undo and redo shared by both modes,
Ctrl+B, Ctrl+I, Ctrl+K, Ctrl+Z and Ctrl+Y shortcuts, paste of HTML or
plain text as Markdown, copy of the selection as Markdown, live emoji
shortcodes and `RadzenMarkdownEditorCustomTool` for custom toolbar
buttons. Thanks to @​artnim!
- **RadzenDateRangePicker** - new date range picker with a two-month
calendar, min/max support and drill-down navigation.
- **RadzenVirtualKeyboard** - new on-screen keyboard that attaches to
inputs or renders inline, with custom layouts, numpad mode, locale
support and keyboard accessibility.
- **RadzenScheduler** - appointments can be grouped by resource in all
views (day, week, month, multi-day, planner, timeline and year) by
declaring `RadzenSchedulerResource` types and setting
`GroupByResource="true"` on a view, with hierarchical grouping by
multiple resource types, horizontal or vertical `GroupOrientation` and
appointments that belong to several resources when the resource property
is a collection. Fixes #​1418.
- **RadzenScheduler** - appointments can be resized by dragging their
edges in the day, week and multi-day views; handle the new
`AppointmentResize` event to apply the new duration.
- **RadzenScheduler** - new `AllDayProperty` renders all-day
appointments in a dedicated row of the week view, configured with the
`ShowAllDay` and `AllDayText` properties of `RadzenWeekView`.
- **RadzenGantt** - new resource view displays tasks in resource lanes
with stacking, hierarchical resources via `ResourceParentIdProperty`, an
unassigned tasks lane and a workload histogram, enabled with
`ResourceData`, `ResourceIdProperty`, `ResourceTextProperty` and
`TaskResourceIdProperty`. Fixes #​2488.
- **RadzenGantt** - new quarter-based Years view for multi-year projects
and a rescaled Year view. Fixes #​2524.
- **RadzenDataGrid** - exports to Excel and CSV directly in the browser
with `ExportToExcelAsync` and `ExportToCsvAsync`, without a server
endpoint. Exports respect the current sort, filter, column order,
visibility and format strings and can include the current page or all
rows; all rows of a grid bound with `LoadData` are requested in chunks
with progress through `DataGridExportOptions.Progress` and cancellation.
Excel exports apply the current theme unless `UseTheme="false"`, the new
`ExportValue` column parameter exports template columns without
`Property`, and `ToWorkbookAsync` returns the workbook for customization
with the spreadsheet API.
- **RadzenDatePicker** - new `NavigationMode` property with drill-down
calendar navigation: the calendar title drills up to a month grid and a
year grid.
- **RadzenTabs** - new `Overflow` property controls tab titles that do
not fit: `TabsOverflow.Default` shrinks them, `TabsOverflow.Wrap` wraps
them to additional lines, `TabsOverflow.Scroll` scrolls the tab list and
`TabsOverflow.Collapse` moves them into a dropdown menu at the end of
the tab list while the selected tab stays visible. Fixes #​2733.
- **RadzenChart** - `RadzenValueAxis.Range` (`Auto`, `Data`,
`IncludeZero`) controls whether a value axis includes zero, and
`RadzenCategoryAxis.LabelFit` (`Auto`, `None`) controls whether crowded
category labels are rotated, skipped and shortened. Labels shortened at
a word boundary drop trailing separators before the ellipsis, horizontal
bar labels get a third of the chart width, and value axes are measured
again once their scales are fitted so the plot is laid out with the
widths of the labels it actually draws.
- **RadzenChart** and **RadzenRangeNavigator** - `DateOnly`, nullable
`DateOnly` and `DateTimeOffset` categories are plotted on a date axis
instead of one category per row, with ticks never closer than a day and
`DateOnly` values in tick labels, tooltips and `Formatter`. Fixes
#​2735.
- **RadzenSparkline** - area and column sparklines fit their data under
`ValueAxisRange.Auto` and span their full height instead of a thin band
above zero.
- **RadzenProfileMenuItem** - new `Action` and `Method` parameters
render the item as an HTML form that posts with the antiforgery token
when available, for logout and similar endpoints. The submit button
looks like the other items in every theme and is submitted by clicking
or by Enter and Space.
- **RadzenMarkdown** - GitHub Flavored Markdown strikethrough
(`~~text~~`) and task list items (`- [ ]` and `- [x]`) are parsed and
rendered, exposed as the `Strikethrough` inline node and
`ListItem.Checked`. The new `HtmlVisitor` in `Radzen.Documents.Markdown`
renders a parsed document or a Markdown string to HTML with
`HtmlVisitor.ToHtml` and blanks `javascript:`, `vbscript:` and `data:`
URLs. `INodeVisitor.VisitStrikethrough` has a default implementation so
existing visitors keep compiling.
- **Themes** - new premium Zen theme. Themes can set the default chart
gradient opacity, the Inter variable font is bundled and enabled with
the `$inter` SCSS flag, and the licenses of the bundled fonts ship next
to the fonts.
- **Trimming** - the library is compatible with .NET trimming
(`PublishTrimmed`) and trimmed Blazor WebAssembly publish. Data-bound
components preserve the members they access via reflection through
`DynamicallyAccessedMembers` annotations, and the shipped
`LinkerConfig.xml` is replaced with conditional `DynamicDependency`
roots so only the types an application actually uses are preserved. See
TRIMMING.md for consumer-facing guidance.

### Fixes
- **RadzenFormField** - the wrapped input no longer receives its
previous value again on every re-render of the form field. The
`FormFieldContext` is now cascaded as a fixed value; a non-fixed
`CascadingValue` re-supplied the child's last parameter snapshot before
the new render delivered the new one, so a single change arrived as old,
new, old, new. Fixes #​2741.
- **RadzenDialog** - side dialogs refresh when the cascaded `Dialog`,
its `DialogOptions` or the `SideDialogOptions` change, the same way
`DialogContainer` does for regular dialogs, and the side dialog resizer
is created once per open instead of once per render. Fixes #​2740.
- **RadzenMenu**, **RadzenPanelMenu** and **RadzenProfileMenu** -
activating the `li[role=menuitem]` element directly, as assistive
technologies and tools such as Vimium do, expands or collapses the
submenu and follows `Path` exactly like clicking the visible label.
Fixes #​2737. Fixes #​2738.
- **RadzenAreaSeries**, **RadzenStackedAreaSeries**,
**RadzenFullStackedAreaSeries** and **RadzenRangeAreaSeries** - the
solid line ends flat at its first and last points, as before 11.0.0,
instead of with round caps that stuck out past the filled area by half
the stroke width. Regression from 11.0.0.
- **RadzenSpreadsheet** - XLSX worksheet and shared strings parts are
written without indentation, because Apple Numbers reads the indentation
whitespace inside inline strings as part of the cell text. Thanks to
@​pianomanjh!
- **RadzenQRCode** - `RadzenQREncoder.EncodeBytes` applied the data mask
twice, so the second pass cancelled the first while the format bits
still declared the mask and the matrix was undecodable.
- **RadzenGravatar** - the MD5 hash of emails whose length is 56 to 63
bytes modulo 64 was computed with the wrong padding, so those avatars
never resolved.


Commits viewable in [compare
view](radzenhq/radzen-blazor@v11.5.1...v12.0.3).
</details>

Updated [Scalar.AspNetCore](https://github.com/scalar/scalar) from
2.17.10 to 2.17.12.

<details>
<summary>Release notes</summary>

_Sourced from [Scalar.AspNetCore's
releases](https://github.com/scalar/scalar/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/scalar/scalar/commits).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mpaulosky <60372079+mpaulosky@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants