🤓 Content for release: 13.5#1233
Conversation
…1181) * docs: document timestamp search qualifier for telemetry filtering Documents the new 'timestamp' search qualifier added in microsoft/aspire#17816. Users can now filter traces and structured logs by date/time using ISO 8601 strings with comparison operators (>, >=, <, <=) in the dashboard filter bar. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move timestamp qualifier docs to shared CLI references Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> * Fix severity casing in timestamp search example Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: James Newton-King <james@newtonking.com> * Apply suggestion from @JamesNK * Apply suggestion from @JamesNK * docs: clarify date-only timestamp search values Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> * Apply suggestion from @JamesNK * Apply suggestion from @JamesNK * Update timestamp example dates to use 2026 --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> Co-authored-by: James Newton-King <james@newtonking.com>
* Fix persistent container endpoint proxy default docs Persistent containers use proxied endpoints by default (same as session containers), while persistent executables and projects default to proxyless endpoints. Also document that proxyless container endpoints with only a targetPort immediately allocate the targetPort as the host port. Corrects docs that previously stated all persistent resources default to proxyless endpoints. Documents changes from microsoft/aspire#17960. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: David Negstad <50252651+danegsta@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…re#17889) (#1210) * docs: update Foundry Local section to reflect CLI-based lifecycle The Foundry Local integration now uses the installed 'foundry' CLI (foundry service start/stop/list and foundry model download/load) instead of the FoundryLocalManager in-proc APIs. Aspire manages the entire service lifecycle automatically. Update docs to: - Clarify users do not need to pre-start Foundry Local - State that the 'foundry' CLI must be on PATH - Describe the automatic start/stop lifecycle management Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Sébastien Ros <sebastienros@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds Aspire 13.5 “What’s new” placeholder content and updates several docs to reflect recent networking/persistence behavior changes and new CLI telemetry search capabilities (timestamp filtering).
Changes:
- Add placeholder release notes page for Aspire 13.5 and wire it into the docs sidebar.
- Update persistent lifetime/proxyless endpoint guidance across “What’s new”, networking fundamentals, and resource lifetime docs.
- Extend CLI
--searchdocumentation to include timestamp comparisons for logs/traces/spans (plus command reference updates).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/frontend/src/content/docs/whats-new/aspire-13-5.mdx | Adds placeholder Aspire 13.5 release notes + upgrade/install guidance scaffolding. |
| src/frontend/src/content/docs/whats-new/aspire-13-4.mdx | Clarifies persistent proxy behavior differences between containers vs executables/projects. |
| src/frontend/src/content/docs/reference/cli/search-filter.mdx | Documents timestamp qualifier and comparison behavior for --search. |
| src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx | Updates supported search fields + adds timestamp filtering example. |
| src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx | Updates supported search fields + adds timestamp filtering example. |
| src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx | Updates supported search fields + adds timestamp filtering example. |
| src/frontend/src/content/docs/integrations/cloud/azure/azure-ai-foundry/azure-ai-foundry-host.mdx | Updates Foundry Local lifecycle explanation and prerequisites around foundry CLI. |
| src/frontend/src/content/docs/fundamentals/networking-overview.mdx | Refines proxyless endpoint defaults/behavior for persistent resources and containers. |
| src/frontend/src/content/docs/app-host/resource-lifetimes.mdx | Updates persistent lifetime endpoint proxy defaults and proxyless container endpoint note. |
| src/frontend/config/sidebar/docs.topics.ts | Adds “Aspire 13.5” entry to the “What’s new” sidebar section. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| The supported comparison operators are `>`, `>=`, `<`, and `<=`. | ||
|
|
||
| Timestamp values are internally stored with UTC. The `timestamp` value is converted to UTC using these timezone rules: |
Frontend HTML artifact readyThe latest frontend build uploaded the This comment updates automatically when a new frontend build artifact is uploaded. |
Add a new row to the CLI telemetry data points table for Aspire CLI 13.5 documenting the new coding agent detection telemetry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…8065-a0f9d35c8766b2f3 [docs] Document coding agent telemetry detection in CLI telemetry page
* docs: add WithTerminal() interactive terminal sessions page Documents the WithTerminal() experimental API introduced in Aspire 13.5: - Basic usage (C# and TypeScript) - Custom terminal dimensions - Multi-replica support - Dashboard terminal view - aspire terminal attach / aspire terminal ps CLI commands Closes microsoft/aspire#17866 (docs obligation) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: address PR review feedback for withterminal docs - remove redundant sidebar translations block - clean up unused import and wording updates - fix CLI reference link target - remove duplicate build/run call in dimensions sample Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Mitch Denny <midenn@orangecake.local> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Update all banners (18 files across English and 16 locale variants) from 13.4 to 13.5 with engaging messaging - Replace 13.5 placeholder release notes with comprehensive content from the official changelog - Include detailed release highlights covering AppHost, CLI, Dashboard, and Extensions improvements - Document breaking changes (ServiceProvider renamed, PublishAsConnectionString obsolete, aspire ps --resources flag removed) - Maintain consistent tone and voice with prior What's new articles Changes cover: - Interactive terminal sessions with WithTerminal() - Polyglot IInteractionService across TypeScript, Python, Go, Java, Rust - User-defined resource command arguments - TypeScript AppHost stability fixes and optimizations - Custom health checks for TypeScript AppHosts - CLI enhancements (npm package, embedded skills bundle) - Dashboard telemetry improvements (timestamp filtering, better error messages) - VS Code extension enhancements (Dashboard side panel, Bun debugging, resource commands) - Foundry Local integration CLI updates - And more bug fixes and improvements Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add documentation for the new operating system check introduced in microsoft/aspire#18252. The check appears in the Environment section of `aspire doctor` output and includes structured metadata in JSON format. Changes: - Update Environment checks description to mention OS reporting - Add OS check to sample table output - Add operating-system entry to JSON output example - Document the osType/displayName/version/description metadata fields Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…830cd8abec29e2f [docs] Add OS information check to aspire doctor docs
…1199) * docs: document proxyless container endpoint on-demand allocation Documents the on-demand port allocation behavior for dynamic proxyless container endpoints introduced in Aspire 13.5 (microsoft/aspire#17851). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update proxyless endpoint port allocation Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * docs: align proxyless port allocation docs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs: clarify proxyless container port wording Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs: remove redundant proxyless port text Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> Co-authored-by: David Negstad <David.Negstad@microsoft.com>
* Add Aspire version placeholders to release docs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Remove generated Nix icon safelist entry Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Document release version placeholder checks Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Document current version placeholder review guidance Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Use version placeholder in seed database packages Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Fix OOM in aspire-version-placeholders build hook The astro:build:done hook re-walked the entire dist tree with a single recursive Promise.all, holding the contents of every .html/.md/.txt file (tens of thousands across all locales, including the large llms-full.txt assets) in memory at once. On the full production build that exhausted the default ~4 GB Node heap and crashed with 'JavaScript heap out of memory'. That broad walk was almost entirely redundant. The remarkAspireVersionPlaceholders remark plugin is already wired into markdown.remarkPlugins, so placeholders are replaced before render: .html pages are correct, and llms*.txt is sourced from rendered HTML via render(entry). The reference/**/*.md endpoints come from API/sample data, not docs content. The only generated artifact that still contains raw placeholders is the per-page .md copies emitted by starlight-page-actions, which viteStaticCopy's raw src/content/docs/** through a regex-only transform that bypasses the remark pipeline. Scope the post-build pass to .md files only and stream them through a bounded worker pool (default concurrency 16). Peak memory is now proportional to the concurrency limit, and the bulk of dist (.html plus the large .txt assets) is no longer re-read. Replacement semantics are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Address PR review: normalize concurrency and clarify test comment - Guard against a non-finite/0/negative concurrency value: normalize to a finite positive integer (falling back to the default) before computing the worker count, so a stray NaN can't collapse the pool to an empty array and silently skip every file. Adds a regression test passing NaN. - Reword the scoping test comment so it no longer implies the seeded .html/.txt/.mdx fixtures were already replaced; clarify the assertion is that this pass intentionally leaves every non-.md extension untouched. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Add Kubernetes persistent volume documentation
Document the first-class KubernetesPersistentVolumeResource feature
(microsoft/aspire PR #16929): a dedicated Persistent volumes on
Kubernetes page under deployment/kubernetes, a concise pointer in the
Kubernetes integration reference, sidebar wiring, and cross-links from
related Kubernetes and data-persistence pages.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Lead persistent volumes page with AddPersistentVolume API
Refocus the opening on the AddPersistentVolume fluent API with a minimal
example up front, rather than the KubernetesPersistentVolumeResource class
name, matching how developers think in terms of AppHost APIs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Fix TypeScript persistent-volume examples and parameter method names
- Correct withDataVolume TS calls to pass an options object
(withDataVolume({ name: 'pg-data' })) instead of a name string; the
TypeScript binding takes WithDataVolumeOptions, not a string.
- Clarify the config-method table: in TypeScript the parameter-accepting
variants are separate methods (withPvStorageClassParam,
withPvCapacityParam, withVolumeAnnotationParam), not overloads of the
string methods.
Verified against the shipped Aspire 13.5.0-preview.1 package by compiling
and publishing both examples with the dev CLI.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Mitch Denny <midenn@orangecake.local>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Mitch Denny <midenn@Mac.localdomain>
* Add WithTerminal docs and aspire terminal CLI reference Document the experimental WithTerminal() AppHost API for exposing interactive terminal sessions on resources, plus the aspire terminal, aspire terminal attach, and aspire terminal ps CLI commands. Wires the new pages into the docs and reference sidebars and repoints the 13.5 what's-new link to the new slug. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Frame no-auto-debugger as a temporary NOTE callout Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Give C# and TypeScript equal billing in with-terminal docs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Consolidate WithTerminal docs onto with-terminal.mdx Remove the duplicate withterminal.mdx (from #1244) in favor of the kebab-case with-terminal.mdx, matching the app-host directory naming convention. Fold in the dashboard section and the TypeScript config tracking issue reference. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Address PR review: self-contained snippets and ASPIRETERMINAL001 guidance Add the #pragma warning disable ASPIRETERMINAL001 suppression to the C# examples, make the Experimental aside actionable, and make the configure and replicas snippets self-contained (full builder bootstrap + run) for both C# and TypeScript. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Mitch Denny <midenn@Mac.localdomain> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
alistairmatthews
left a comment
There was a problem hiding this comment.
Please address my comments, then this is good to go.
| **Project-based AppHost** — `Properties/launchSettings.json`: | ||
|
|
||
| ```json title="Properties/launchSettings.json" |
There was a problem hiding this comment.
I don't see how line 32 helps here. I suggest putting that content in the code block title:
| **Project-based AppHost** — `Properties/launchSettings.json`: | |
| ```json title="Properties/launchSettings.json" | |
| ```json title="Project-based AppHost — Properties/launchSettings.json" |
| **File-based AppHost** — `apphost.run.json` (profiles) and `aspire.config.json` (entry point only): | ||
|
|
||
| ```json title="apphost.run.json" |
There was a problem hiding this comment.
Same issue as my previous comment:
| **File-based AppHost** — `apphost.run.json` (profiles) and `aspire.config.json` (entry point only): | |
| ```json title="apphost.run.json" | |
| ```json title="File-based AppHost — apphost.run.json" |
| } | ||
| ``` | ||
|
|
||
| ```json title="aspire.config.json" |
There was a problem hiding this comment.
| ```json title="aspire.config.json" | |
| ```json title="File-based AppHost — aspire.config.json" |
| @@ -0,0 +1,184 @@ | |||
| --- | |||
| title: Test TUI and shell apps with WithTerminal | |||
There was a problem hiding this comment.
I don't see this article in the left hand sidebar. Does it need an entry in docs.topics.ts?
| title: Test TUI and shell apps with WithTerminal | ||
| seoTitle: Test terminal apps in your Aspire AppHost with WithTerminal |
There was a problem hiding this comment.
"with WithTerminal" is a bit awkward. Can we use "using WithTerminal" or "by using WithTerminal" instead?
|
|
||
| The command discovers the running AppHost, verifies it supports the `terminals.v1` capability, looks up the resource, and connects to one of its terminal replicas. When the resource has a single replica, that replica is selected automatically. When it has more than one, you're prompted to choose one—or you can pass `--replica`. | ||
|
|
||
| Multiple peers can attach to the same session at once. By default `attach` takes the **primary** role and drives the terminal's dimensions. Pass `--viewer` to join as a passive **viewer** instead—useful when another peer, such as the dashboard, is currently driving the session. |
There was a problem hiding this comment.
| Multiple peers can attach to the same session at once. By default `attach` takes the **primary** role and drives the terminal's dimensions. Pass `--viewer` to join as a passive **viewer** instead—useful when another peer, such as the dashboard, is currently driving the session. | |
| Multiple peers can attach to the same session at once. By default, `attach` takes the **primary** role and drives the terminal's dimensions. Pass `--viewer` to join as a passive **viewer** instead. This technique is useful when another peer, such as the dashboard, is currently driving the session. |
|
|
||
| - **`--viewer`** | ||
|
|
||
| Connect as a viewer (secondary) instead of taking primary control. Viewers see the terminal output but do not drive its dimensions. Useful when another peer (for example, the dashboard) is currently driving the session. Take control later with `Ctrl+B T`. |
There was a problem hiding this comment.
| Connect as a viewer (secondary) instead of taking primary control. Viewers see the terminal output but do not drive its dimensions. Useful when another peer (for example, the dashboard) is currently driving the session. Take control later with `Ctrl+B T`. | |
| Connect as a viewer (secondary) instead of taking primary control. Viewers see the terminal output but do not drive its dimensions. This option is useful when another peer (for example, the dashboard) is currently driving the session. Take control later with `Ctrl+B T`. |
|
|
||
| ## Description | ||
|
|
||
| The `aspire terminal ps` command lists every resource in the connected AppHost that was registered with [`WithTerminal()`](/app-host/with-terminal/). For each terminal it reports the current grid size, the number of attached peers, and per-replica health so you can see what's available before running [`aspire terminal attach`](/reference/cli/commands/aspire-terminal-attach/). |
There was a problem hiding this comment.
| The `aspire terminal ps` command lists every resource in the connected AppHost that was registered with [`WithTerminal()`](/app-host/with-terminal/). For each terminal it reports the current grid size, the number of attached peers, and per-replica health so you can see what's available before running [`aspire terminal attach`](/reference/cli/commands/aspire-terminal-attach/). | |
| The `aspire terminal ps` command lists every resource in the connected AppHost that was registered using [`WithTerminal()`](/app-host/with-terminal/). For each terminal it reports the current grid size, the number of attached peers, and per-replica health so you can see what's available before running [`aspire terminal attach`](/reference/cli/commands/aspire-terminal-attach/). |
| --- | ||
| title: aspire terminal command | ||
| seoTitle: aspire terminal command reference for the Aspire CLI | ||
| description: Learn about the aspire terminal command, which lists and attaches to interactive terminal sessions for resources registered with WithTerminal. |
There was a problem hiding this comment.
| description: Learn about the aspire terminal command, which lists and attaches to interactive terminal sessions for resources registered with WithTerminal. | |
| description: Learn about the aspire terminal command, which lists and attaches to interactive terminal sessions for resources registered using WithTerminal. |
|
|
||
| ## Description | ||
|
|
||
| The `aspire terminal` command provides subcommands for working with interactive terminal sessions exposed by resources that were registered with [`WithTerminal()`](/app-host/with-terminal/) in the AppHost. You can list which resources have a terminal and attach your local terminal to a running session. |
There was a problem hiding this comment.
| The `aspire terminal` command provides subcommands for working with interactive terminal sessions exposed by resources that were registered with [`WithTerminal()`](/app-host/with-terminal/) in the AppHost. You can list which resources have a terminal and attach your local terminal to a running session. | |
| The `aspire terminal` command provides subcommands for working with interactive terminal sessions exposed by resources that were registered using [`WithTerminal()`](/app-host/with-terminal/) in the AppHost. You can list which resources have a terminal and attach your local terminal to a running session. |
* Document AI agent skill usage telemetry in CLI telemetry reference Extend the Microsoft-collected CLI telemetry page to cover the agent telemetry hooks installed by 'aspire agent init': the three event types (skill_invocation, tool_invocation, reference_file_read), the exact low-cardinality fields recorded, the privacy guarantees (only Aspire-owned skill/tool names and skill-relative reference paths; never absolute paths, repo or user names, file contents, or tool arguments), and the ASPIRE_CLI_AGENT_TELEMETRY_OPTOUT / --no-telemetry-hooks opt-out paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Simplify CLI telemetry docs to a single opt-out Remove the AI-only opt-out section (ASPIRE_CLI_AGENT_TELEMETRY_OPTOUT) and the 'aspire agent init --no-telemetry-hooks' note. The single ASPIRE_CLI_TELEMETRY_OPTOUT switch disables all CLI telemetry including AI agent skill usage. Soften the over-claimed opt-out re-check wording. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alistair Matthews <alistairwebdojo@live.com> --------- Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alistair Matthews <alistairwebdojo@live.com>
Uh oh!
There was an error while loading. Please reload this page.