Cloud & DevOpsDeveloper ToolsProgramming Languages

Aspire 13.6: Persistent Dashboard, REPLs, Java & Rust

Aspire 13.6 dashboard with persistent telemetry, database REPLs, and Java Rust hosting
Aspire 13.6 introduces persistent telemetry history, one-click database shells, and first-party Java and Rust hosting.

After more than two years of developers losing traces the moment they restarted their AppHost, Aspire 13.6 ships with something the community has wanted since day one: a dashboard that remembers what happened. Released on September 29, 2026, the update delivers persistent telemetry history, one-click authenticated database shells, and first-party hosting for Java and Rust—a release that quietly completes Aspire’s pivot from a .NET tool to a genuinely polyglot platform.

Your Dashboard Now Has Memory

The most visible change in 13.6 is the one that took the longest to ship. Until now, the Aspire dashboard held telemetry in an in-memory circular buffer. Restart the AppHost mid-debugging session and you started over. A GitHub issue opened in May 2024 described the problem plainly: developers routinely reproduced a tricky bug, reached for the traces, then watched everything disappear on the next hot restart.

In 13.6, the dashboard backs its telemetry against a SQLite database. The run selector in the header lets you switch between the current live run and up to ten completed runs, each retaining up to 100,000 console logs, structured logs, and traces. You can pin runs worth keeping beyond the ten-run rolling window. The dashboard also ships as Native AOT with a refreshed Fluent UI v5 interface.

Two caveats worth knowing before you upgrade. First, the SQLite database carries no independent encryption layer—sensitive telemetry values are on disk in plaintext. Aspire tightens Unix file ownership but does nothing for Windows ACLs, so protect that directory. Second, a GitHub issue filed hours after release notes that the CLI and coding agents cannot yet query historical run data—the aspire otel commands only reach the live API. Expect a fix in a future release; for now, you can point agents at the SQLite files directly.

Open a Database Shell in One Click

The second headline feature is subtler but immediately useful. Debugging a live database resource previously meant tracking down the container port, copying the generated password, finding or installing the right client locally, and hoping the connection string was correct. Aspire 13.6 removes every step of that with WithRepl().

var postgres = builder.AddPostgres("postgres").WithRepl();
var redis = builder.AddRedis("cache").WithRepl();

One extension method adds a REPL command to the resource’s row in the dashboard. Clicking it opens the bundled container client—already authenticated with the resource’s real credentials—inside a terminal dock without leaving the browser. PostgreSQL gets psql, Redis gets redis-cli, MongoDB gets mongosh, and SQL Server, MySQL, and Valkey all have bundled clients too.

The feature is opt-in because it exposes a fully authenticated shell with write access, and it only works in run mode. One rough edge at launch: aspire terminal attach cannot yet attach to dock terminals created by WithRepl(), so CLI-based scripting against those shells is blocked for now.

Java and Rust Are Now First-Party

The third major change is the least flashy but arguably the most significant signal of where Aspire is heading. Java and Rust support previously lived in the community-maintained Aspire Community Toolkit. In 13.6, both graduate to official packages: Aspire.Hosting.Java and Aspire.Hosting.Rust.

Java support covers Spring Boot, Quarkus, executable JARs, Maven and Gradle wrapper tasks, and prebuilt Java containers. Aspire auto-attaches the OpenTelemetry Java agent, detects the target Java release from your build configuration, and generates a multi-stage Dockerfile on publish. VS Code debugging works for Java resources and Java-based AppHosts.

// C# AppHost — Java
builder.AddSpringBootApp("catalog", "../catalog")
    .WithExternalHttpEndpoints();

// C# AppHost — Rust
builder.AddRustApp("api", "../rust-api")
    .WithHttpEndpoint(env: "PORT")
    .WithExternalHttpEndpoints();

With Rust, Cargo applications are modeled through AddRustApp, covering binary selection, argument configuration, and multi-stage Dockerfile generation. Combined with existing support for .NET, JavaScript, TypeScript, Go, and Python, Aspire now orchestrates every major server-side language as a first-party citizen. The rebrand from “.NET Aspire” to “Aspire” looks less like a branding decision and more like a statement of intent.

Check Breaking Changes Before You Upgrade

Aspire 13.6 has three breaking changes that will catch existing projects off guard if you skip the release notes.

  • MongoDB now uses TLS by default. Local MongoDB resources participate in Aspire’s shared certificate configuration. Plaintext clients will fail. Use WithoutHttpsCertificate() to opt out in development, or update your clients to trust the Aspire certificate and use the complete generated connection string.
  • The Cosmos DB emulator defaults to Linux-based vNext. If you have seeded data or rely on WithPartitionCount(), call RunAsClassicEmulator() to stay on previous behavior. vNext requires data re-seeding.
  • Terminal types changed namespace. Aspire.Hosting.Terminals is now Aspire.Hosting.ApplicationModel. Update your imports.

Once you have reviewed the relevant sections, the upgrade is two commands:

aspire update --self
aspire update

The full release notes and migration guidance live in the official Aspire 13.6 release blog and the what’s new documentation. The complete release notes are on GitHub if you want the full changelog.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *