Skip to content

[docs] Document DotnetProjectResource-backed Blazor gateway APIs for polyglot AppHosts - #1564

Merged
Karol Zadora-Przylecki (karolz-ms) merged 8 commits into
release/13.6from
docs/pr-19026-32505988923-1-dc5a1c75f6fccdb7
Sep 29, 2026
Merged

Karol Zadora-Przylecki (karolz-ms) merged 8 commits into
release/13.6from
docs/pr-19026-32505988923-1-dc5a1c75f6fccdb7

Conversation

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Documents changes from microsoft/aspire#19026

@karolz-ms

Targeting release/17.0 — the latest release branch on microsoft/aspire.dev — because release/13.6 (from the source PR milestone 13.6) does not exist there.

Why this PR is needed

microsoft/aspire#19026 exports the DotnetProjectResource-backed Blazor gateway APIs (AddDotnetProjectBlazorGateway and the DotnetProjectResource overload of WithBlazorClientApp) for use in polyglot (TypeScript, Go, Java, Python) AppHosts. These APIs were previously marked [AspireExportIgnore]; they are now [AspireExport]/[AspireExport(...)], so AddDotnetProjectBlazorGateway and withBlazorClientApp are now callable from non-C# AppHosts. The existing Blazor hosting reference page only documented the ProjectResource-based AddBlazorGateway/WithBlazorClientApp pair, so it didn't cover this newly-exported, DotnetProjectResource-based variant or its experimental/publish-mode caveats.

Summary of changes

  • Added a new "Add a Blazor Gateway for a C# project resource" section to blazor-hosting.mdx covering AddDotnetProjectBlazorGateway / addDotnetProjectBlazorGateway and the DotnetProjectResource overload of WithBlazorClientApp / withBlazorClientApp, with C# and TypeScript examples matching the PR's own usage snippet.
  • Documented that this gateway variant is experimental (ASPIREDOTNETPROJECT001), run-only (publish fails fast until DotnetProjectResource supports the container-files pipeline), and cross-linked to dotnet-host.mdx and the ASPIREDOTNETPROJECT001 diagnostic page.
  • Updated the "See also" list accordingly.

Files modified

  • src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx (updated)

Generated by PR Documentation Check for #19026 · auto · 66.2 AIC · ⌖ 12.3 AIC · ⊞ 19.6K · ◷

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot aspire-repo-bot Bot added the docs-from-code Copilot initiated issue from dotnet/aspire repo label Aug 21, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor Author

Frontend HTML artifact ready

The latest frontend build uploaded the frontend-dist artifact for PR #1564. Use the VS Code button below to open this PR with GitHub Artifacts Explorer and browse the built HTML locally.

VS Code: Open PR #1564 artifacts

This comment updates automatically when a new frontend build artifact is uploaded.

@IEvangelist
David Pine (IEvangelist) changed the base branch from release/17.0 to release/13.6 August 24, 2026 18:01
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use ApiReference for exported APIs and exact C# links for the experimental gateway APIs that are not exported to TypeScript. Preserve the existing code examples.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Moderate documentation inaccuracies and example/reference issues remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity

Open (2)
What changed in this PR

Documents DotnetProjectResource-backed Blazor gateway APIs for polyglot AppHosts.

Changes:

  • Adds C# and TypeScript gateway examples.
  • Documents experimental diagnostics and publishing behavior.
  • Adds API references and related links.
File Summary
src/​frontend/​src/​content/​docs/​integrations/​dotnet/​blazor-hosting.mdx Adds gateway documentation and examples; unresolved findings concern endpoint exposure, publishing behavior, API references, diagnostics, and tab ordering.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx Outdated
Comment thread src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx Outdated

@IEvangelist David Pine (IEvangelist) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated docs-accuracy review

Two independent phases were run and merged. Phase A verifies every factual claim against microsoft/aspire source; Phase B (doc-tester) validates the page as a new user, blind to that source.

Summary

  • Phase A source of truth: microsoft/aspire @ release/13.6 — SHA f544a9c660afc22ac6cdb5650c21eb2f908b3054
  • Claims extracted: 11 non-narrative — ✅ 10 verified · ⚠️ 0 verified-with-nuance · ❓ 0 unverifiable · ❌ 1 contradicted
  • Phase B (doc-tester): 1 route exercised (/integrations/dotnet/blazor-hosting/) — 🔴 0 critical · 🟡 2 warnings. All internal links, both API-reference anchors, and all <ApiReference> names resolve on the live site.

Verdict: REQUEST_CHANGES — one API-behavior claim is contradicted by the source-of-truth branch (see inline comment on the caution Aside).


Phase A — Claim verification

❌ Contradicted (1)

The publish "fails fast / not supported" caveat is contradicted by release/13.6. See the inline comment for source evidence.

✅ Verified claims (10) — click to expand evidence
id Claim Evidence — microsoft/aspire @ f544a9c660
A1 BlazorGatewayExtensions.AddBlazorWasmProject exists src/Aspire.Hosting.Blazor/BlazorGatewayExtensions.cs:107 (AddBlazorWasmProject<TProject>)
A2 BlazorGatewayExtensions.AddBlazorGateway exists BlazorGatewayExtensions.cs:35
A3 ResourceBuilderExtensions.WithExternalHttpEndpoints exists src/Aspire.Hosting/ResourceBuilderExtensions.cs:1920
A4 BlazorGatewayExtensions.WithBlazorClientApp (ProjectResource) exists BlazorGatewayExtensions.cs:165
A5 AddDotnetProjectBlazorGateway exists, [AspireExport] (polyglot), [Experimental(ASPIREDOTNETPROJECT001)] BlazorGatewayExtensions.cs:88-98; added by microsoft/aspire#19026 (c128892591)
A6 WithBlazorClientApp(DotnetProjectResource, BlazorWasmAppResource, string, string, bool) overload BlazorGatewayExtensions.cs:193-201
A7 DotnetProjectHostingExtensions.AddDotnetProject exists (ns Aspire.Hosting) src/Aspire.Hosting.Dotnet/DotnetProjectHostingExtensions.cs:13,249
A8 DotnetProjectResource type exists src/Aspire.Hosting.Dotnet/DotnetProjectResource.cs:28 (ns Aspire.Hosting.Dotnet)
A9 TS exports addDotnetProjectBlazorGateway / withBlazorClientApp / addBlazorWasmProject [AspireExport] (camelCase), [AspireExport("withDotnetProjectBlazorClientApp", MethodName="withBlazorClientApp")], [AspireExport("addBlazorWasmProject")]
A10 Both DotnetProject APIs gated behind ASPIREDOTNETPROJECT001 BlazorGatewayExtensions.cs:88,193

FYI (non-blocking): the checked-in public-API baseline src/Aspire.Hosting.Blazor/api/Aspire.Hosting.Blazor.cs still shows [AspireExportIgnore] on these two members — it is stale relative to the compiled source ([AspireExport]). The source .cs is authoritative, so the doc's "callable from polyglot AppHosts" premise is correct.

Nuance (non-blocking, pre-existing): the whole BlazorGatewayExtensions class is also [Experimental("ASPIREBLAZOR001")], so the C# sample's AddBlazorWasmProject<>() call additionally raises ASPIREBLAZOR001, which the page never mentions. This is a page-wide framing gap, not introduced by this PR.


Phase B — Doc-tester results (blind to microsoft/aspire source)

Route exercised: /integrations/dotnet/blazor-hosting/ (only changed page).
Method note: the PR isn't deployed and heavy local builds are disabled in this runner, so link/anchor/route resolution was validated against the docs content, the site's own route + anchor-generation code, and the live deployed site (HTTP status + anchor-id presence). No microsoft/aspire source was consulted in this phase.

Category Passed Failed Warnings
Content accuracy — 0 1
Code examples 2 0 1
Links / anchors 9 0 0

🔴 Critical issues

None.

🟡 Warnings

W1 (Medium) — C# sample omits experimental-diagnostic suppression. The C# AppHost.cs block calls experimental APIs but shows no #pragma warning disable ASPIREDOTNETPROJECT001. A new user copying it verbatim hits experimental-API build errors before reaching the caution Aside. The Aside does explain the diagnostic and link to suppression guidance, so this is a smoothness gap, not an error. (ASPIREBLAZOR001, which also applies via AddBlazorWasmProject<>, is never mentioned on the page.)

W2 (Low / knowledge gap) — publish behavior not runtime-tested. "publishing it currently fails fast…" is runtime behavior a browser-only blind-user pass can't execute. Flagged for runtime verification. (Phase A independently examined the source for this claim — see the inline comment.)

✅ Passed checks

  • All 7 internal link targets return HTTP 200 on the live site: blazor-hosting/, frameworks/dotnet/dotnet-host/, diagnostics/aspiredotnetproject001/, blazor-get-started/, blazor-connect/, integrations/overview/, and the API-reference …/blazorgatewayextensions/methods/ page.
  • Both API-reference deep-link anchors exist as real heading ids on the live page: #adddotnetprojectblazorgateway and #withblazorclientapp-iresourcebuilder-dotnetprojectresource-iresourcebuilder-blazorwasmappresource-string-string-bool. The author correctly used a bare-name anchor for the unique method and the param-disambiguated anchor for the overloaded one.
  • All 5 <ApiReference> names resolve against the API data (Blazor, Dotnet, and core Aspire.Hosting packages).
  • Link format: every internal link is site-relative and ends with /, anchors placed after the trailing slash.
  • Examples are complete (TS imports present; C# uses standard AppHost conventions) and resource names are consistent across C#/TS (client, gateway). The new ApiReference import is used.

Knowledge gaps

  • KG1: Runtime behavior of aspire publish with AddDotnetProjectBlazorGateway was not executed (would require building an AppHost with the experimental API).

Phase A read microsoft/aspire@release/13.6 (f544a9c660). Phase B was blind to that source and validated the deployed docs experience.

Comment thread src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx Outdated
@IEvangelist

David Pine (IEvangelist) commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

CI has now failed three times in the frontend build because the twoslash validation reports six unexpected diagnostics. This is a content-change failure rather than a transient CI failure; please correct the affected code blocks before merge.

David Pine (IEvangelist) added a commit that referenced this pull request Sep 28, 2026
…ps (#1780)

## Summary

<!-- Describe what this pull request changes and why. -->

Reconcile the 13.6 wiki audit and **all 25 open `docs-from-code`
proposals targeting `release/13.6`** against the actual release source.
Add missing canonical guidance rather than putting all coverage in
What's new. This is a new, isolated feature PR into `release/13.6`; it
does not update the release rollup #1599, merge or close another
proposal, or push directly to a release branch.

**Draft with explicit remaining packaging/validation gates:** the six
REPL walkthroughs are source-verified, but current publicly available
13.6 packages do not contain the late `WithRepl` exports. Generated API
catalogs have deliberately not been fabricated or refreshed from 14.x.
See the open checklist below.

### Evidence baseline

- Documentation base: `717442f6666948bcf77f3d704dc2dadf7c080ec2`.
- Product source of truth:
[`microsoft/aspire@e8fd6fbb954f50ccd2e66479538392f65e13e71d`](https://github.com/microsoft/aspire/tree/e8fd6fbb954f50ccd2e66479538392f65e13e71d),
current `release/13.6` at audit time. Source was read from that Git
object, not the stale source working directory.
- [13.6 wiki](https://github.com/microsoft/aspire/wiki/13.6-Change-log)
snapshot `8e01a371d4f16a1306e48174d4cf1fdeca714348`, whose cutoff is
product PR 20511. Later backports 20541/20546/20548 are included here.
- Proposal base branches alone were **not** used as proof of release
membership. Direct ancestry and known release backports were checked.
Four fallback-targeted proposals are excluded below.
- Wiki link corrections: its REPL link #1752 actually covers Sandboxes;
the REPL proposal is #1740. Its AOT link #1714 covers PFX certificates,
not AOT.

### Complete audit-gap checklist

Checked items mean documentation coverage is implemented, not that cloud
deployment or every product runtime scenario was executed.

- [x] **1. Dotnet API graduation:** correct removal to **13.6**, not
14.0, in What's new, both Dotnet guides, and the diagnostic page;
preserve the prerelease package caveat. This applies to core
`AddDotnetProject`, `DotnetProjectResource`, and related
`WithBuildEnvironment` overloads, not all uses of the diagnostic.
Source: microsoft/aspire#20496.
- [x] **2. Sandboxes:** remove obsolete API suppressions in the article
and deployment guide while preserving Azure service preview/access and
prerelease package limitations. Source: microsoft/aspire#20483.
- [x] **3. Docked REPL documentation:** all six
PostgreSQL/MySQL/MongoDB/SQL Server/Redis/Valkey guides plus the article
now cover opt-in `WithRepl`/`withRepl`, run-only availability, actual
client privileges, credential handling, and explicit exit versus closing
a viewer. Source: microsoft/aspire#20419, backport of
microsoft/aspire#20231. Package-backed checks remain open below.
- [x] **4. Terminal CLI flag:** update current 13.6 article,
`with-terminal`, and all three terminal command references. Preserve
`terminals.v1` and experimental hosting API distinctions. Current
configuration/schema data had no flag entry to remove; historical 13.5
notes remain historical. Source: microsoft/aspire#20548.
- [x] **5. First-party Rust:** rewrite both canonical Rust guides around
`Aspire.Hosting.Rust`; document Cargo versus application arguments,
typed targets, debugging, generated Dockerfiles, workspace context, ABI
constraints, and Toolkit migration. Bacon remains explicitly
Toolkit-only. Add exact first-party package mapping. Source:
microsoft/aspire#18906 and current Rust README.
- [x] **6. Agent setup:** align command reference, skills guide,
AI-agent guide, and article on MCP opt-in, `--mcp`,
chained/non-interactive behavior, seven-skill catalog, Project v2
migration, and Copilot app detection. Also fix stale default-selection
text: all applicable bundle skills are preselected; companion tools
remain opt-in. Sources: microsoft/aspire#19893, microsoft/aspire#20405,
microsoft/aspire#19820.
- [x] **7. Deno AppHost runtime:** document Deno 2+ detection, commands,
permissions, native watch/type checking, doctor, and `DENO_CERT`,
separately from Deno guest hosting. Source: microsoft/aspire#18627,
distinct from microsoft/aspire#18628.
- [x] **8. Native AOT / Fluent UI v5:** concise article, dashboard
exploration, and standalone guidance; automatic packaged-dashboard
selection, no invented performance figures. Source:
microsoft/aspire#19565 and release packaging sources.
- [x] **9. NuGet:** document bundled in-process operations, credential
providers, non-interactive authentication, and realistic
troubleshooting. Correct the proposal's `dotnet nuget locals`
authentication advice: cache commands do not authenticate a feed.
Source: microsoft/aspire#20391.
- [x] **10. Multithreaded builds:** article and coordinated-build guide
explain `-mt`, SDK detection, distinct project/file-based SDK floors,
and fallback. Source: microsoft/aspire#20441.
- [x] **11. Radius:** add a real deployment guide with C#/TypeScript
setup, recipe-backed connections versus local endpoints, per-resource
credential behavior, unauthenticated Redis limitation, secret exposure
boundaries, and actionable runtime diagnostics 070–091. Wire navigation
and exact package mapping. Source: microsoft/aspire#19555 and release
README.
- [x] **12. Connection aliases:** replace contradictory no-encoding
guidance, retain composed logical-key-first lookup and portable-target
behavior, explain collision detection and custom-publisher metadata.
Source: microsoft/aspire#19729.
- [x] **13. Connector Namespace / Toolbox / provisioning:** add
Connector Namespace walkthrough, security/consent/revocation limits and
mapping/sidebar; add Foundry Toolbox walkthrough, connection properties,
roles, index prerequisites, approval enforcement boundaries, immutable
versions, and existing-resource behavior. Extend existing Azure
provisioning guide without a duplicate page. Sources:
microsoft/aspire#19024, microsoft/aspire#17742, microsoft/aspire#20131.
- [x] **14. Remaining high-impact items:** article covers opt-in
manifest-aware DNX and new-template CLI bundling (existing SDK guides
retained), migration skill and Copilot app detection; canonical inline
`CsiVolumeSourceV1`/`VolumeV1.Csi` example, management links, Cosmos
vNext telemetry, and AI Inference `GetModelInfoAsync`/`/info` health
checks with `DisableHealthChecks`. No Azure OpenAI health-check claim.
Sources: microsoft/aspire#19310, microsoft/aspire#19076,
microsoft/aspire#19826, microsoft/aspire#20070, microsoft/aspire#15671,
microsoft/aspire#15969.
- [x] **15. All 25 proposal dispositions:** listed below, including
newer dashboard backports and four exclusions. Existing Sandbox
inference coverage is retained rather than copied from a stale draft.
- [ ] **16. Refresh generated API/catalog/Twoslash data from an official
post-backport 13.6 build.** Existing `26473.12`/`a11eca96` data remains
untouched. The newest public `dotnet9` feed package checked,
`13.6.0-preview.1.26474.10` at
`43496a2a306c81c862c947b11b4f4e5494b6fe08`, still has no Redis
`WithRepl` in its actual package XML. Do not use 14.x, hand-edit
declarations, or attribute source changes to older binaries.
- [ ] **Validate the six REPL examples against that actual post-backport
SDK and running clients.** Their new TypeScript fences are plain
TypeScript, not annotated with unsupported Twoslash data. No existing
diagnostics are allowlisted or suppressed; no generated API exports are
fabricated. Enable Twoslash when the genuine catalog catches up.

### All 25 open proposal dispositions and provenance

Text is selectively adapted from these proposals, not merged wholesale.
#1778 and #1748 are authored by @sebastienros; the other proposals are
authored by the Aspire repo bot. The table credits the associated
product-change authors where supplied by the proposals. Existing PRs
remain open and unchanged.

| Docs PR | Release source / credited product author | Disposition |
| --- | --- | --- |
| #1778 | microsoft/aspire#19729 — @sebastienros | **Adopted:**
canonical connection-string alias correction, including logical-first
resolution and migration. |
| #1771 | microsoft/aspire#20481 — @sebastienros | **Excluded:** flat
polyglot feature keys are not in the audited release tip; no verified
backport. Preserve release key names. |
| #1770 | microsoft/aspire#20525 → microsoft/aspire#20548 — @mitchdenny
| **Corrected/adopted:** command guides plus the still-current 13.6
article, which the proposal incorrectly treats as historical. |
| #1769 | microsoft/aspire#20416 — @JamesNK | **Excluded:** brand hover
change has no verified 13.6 membership/backport. |
| #1768 | microsoft/aspire#20523 → microsoft/aspire#20546 — @JamesNK |
**Adopted:** run pin/unpin preserves selector and current selection. |
| #1766 | microsoft/aspire#20537 → microsoft/aspire#20541 — @mitchdenny
| **Adopted:** terminal dock empty state. |
| #1761 | microsoft/aspire#20490 → microsoft/aspire#20496 — @eerhardt |
**Corrected:** graduation is 13.6, package remains prerelease,
Blazor-specific exception retained. |
| #1760 | microsoft/aspire#20436 — @eerhardt | **Excluded:** CLI
net11/tools-any retarget is not in the audited release; no fallback-base
inference. |
| #1748 | microsoft/aspire#20131 — @sebastienros | **Adopted:** extend
existing provisioning guide with service-specific models/lookups and
projection limits. |
| #1744 | microsoft/aspire#20337 → microsoft/aspire#20441 — @karolz-ms |
**Adopted:** precise SDK-conditional multithreaded build coverage. |
| #1740 | microsoft/aspire#20231 → microsoft/aspire#20419 — @mitchdenny
| **Adapted:** all six guides; TypeScript-first tabs, source-verified
lifecycle/security. Actual post-backport SDK/runtime gate is open above.
|
| #1738 | microsoft/aspire#20158 → microsoft/aspire#20405 — @karolz-ms |
**Partly already covered / completed:** existing seven-skill catalog
retained; add project migration guidance and correct command
catalog/defaults. Do not misclassify the bundled skill as a companion
tool. |
| #1735 | microsoft/aspire#20334 — @karolz-ms | **Excluded:** enhanced
startup errors are not in the audited release; no verified backport. |
| #1731 | microsoft/aspire#19847 → microsoft/aspire#20391 — @eerhardt |
**Corrected/adopted:** in-process NuGet and real authenticated-restore
troubleshooting, not cache-command authentication. |
| #1719 | microsoft/aspire#20299 → microsoft/aspire#20407 — @JamesNK |
**Corrected/adopted:** cookie naming/scoping; identical names can
collide but do not guarantee cross-dashboard cookie decryptability or
shared sign-in. |
| #1664 | microsoft/aspire#20011 — @maddymontaquila | **Adopted:**
concise Azure environment icon release note. |
| #1628 | microsoft/aspire#17742 — @davidfowl | **Adapted/expanded:**
canonical Toolbox examples, consumer contract, role/index prerequisites,
approval/security and concurrency limits. |
| #1623 | microsoft/aspire#19810 — @mitchdenny | **Already covered:**
current Sandbox guide/article already describe compute inference,
explicit selection and external endpoints. Preserve that guidance while
removing obsolete suppressions. |
| #1620 | microsoft/aspire#19243 — @sebastienros | **Adapted:** AKS
credential-before-Helm cleanup and destructive-operation warning; omit
misleading ambient-context workaround. |
| #1614 | microsoft/aspire#19870 — @sebastienros | **Adopted:** typed
callback handle behavior in extension authoring and article. |
| #1574 | microsoft/aspire#19430 — @mitchdenny | **Adapted:** canonical
hostname inheritance, explicit-host precedence, catch-all default
backend. |
| #1570 | microsoft/aspire#19590 — @karolz-ms | **Adopted:** Dev Tunnel
URL regression troubleshooting. |
| #1565 | microsoft/aspire#19429 — @mitchdenny | **Corrected/adopted:**
Helm embedded parameters with real `refExpr` and `addParameter(name, {
value })`, not stringifying a handle or using an invalid actual-SDK
overload. |
| #1564 | microsoft/aspire#19026 — @karolz-ms | **Corrected/adopted:**
C#/TypeScript Dotnet gateway walkthrough. Retain both experimental
diagnostics; remove obsolete run-only restriction after
microsoft/aspire#19997 publishing support. Avoid imported ambiguous API
reference. |
| #1499 | microsoft/aspire#19248 — @IEvangelist | **Adopted:** describe
exact secret-value redaction and embedded-secret limit; release article
already covered the fix. |

### Important source-verified corrections to proposals / earlier audit
assumptions

-
[`BlazorGatewayExtensions.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Blazor/BlazorGatewayExtensions.cs):
`AddDotnetProjectBlazorGateway` and the Dotnet `WithBlazorClientApp`
overload still carry `ASPIREDOTNETPROJECT001`; the class carries
`ASPIREBLAZOR001`. They share `WithBlazorClientAppCore`/`WithBlazorApp`
and the publish-companion path. Thus neither blanket diagnostic
retirement nor the proposal's old run-only claim is correct.
-
[`SkillDefinition.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Agents/SkillDefinition.cs)
sets bundled skills' `IsDefault=true`;
[`AgentInitCommand.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Commands/AgentInitCommand.cs)
selects the applicable catalog defaults for both flows. MCP has its own
standalone-only binding.
-
[`TypeScriptAppHostToolchainResolver.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Projects/TypeScriptAppHostToolchainResolver.cs)
is the source for Deno flags and certificate variable; guest Deno
hosting is separate.
- [`Radius
README`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Radius/README.md)
supplies the resource-specific credential rules and publish diagnostics,
not assumptions about local endpoints.

## Third-party links and affiliations

<!-- List third-party links and disclose material affiliations. -->

Links point to official Microsoft Learn, VS Code Marketplace debugger
extensions, Rust/Cargo/Bacon documentation, Radius documentation, and
source repositories. No sponsorship, commercial endorsement, or
affiliation claim is introduced. Maintainers should supply any personal
affiliation disclosure required by policy; automation has not inferred
one.

## Validation

<!-- List the checks you ran or explain why validation isn't needed. -->

- **97 passing focused unit checks** across API-reference
authoring/rendering, Twoslash blocks, file-tree formatting, CLI
configuration schema, SEO lengths, and resource catalog.
- **82 passing structured-data checks**, including exact integration
mapping uniqueness and page resolution.
- **11 C# samples compile**, zero warnings/errors, using genuine
`13.6.0-preview.1.26473.12` packages. Scope: Rust, Connector Namespace,
Radius, Toolbox, inline CSI, Helm, Blazor gateway, and provisioning.
`Projects.Api/Worker/Client` use compile-only `IProjectMetadata`
stand-ins; no claim of running those apps or provisioning cloud
resources.
- **10 TypeScript samples pass `tsc`** under `strict`, `NodeNext`, and
`ES2022` against three **unmodified actual SDK files**, not just the
site's declaration bundle. The fixture uses the exact `e8fd6fbb` release
`AtsCapabilityScanner` and genuine `26473.12`
TypeSystem/code-generator/integration binaries, whose informational
source is `a11eca96`. This is an isolated local generation fixture,
**not** a claim that official CLI generation or a new packaged release
was tested. An attempted restore with the older handed-off local CLI
could not discover an AppHost server; the bounded direct generator
fixture was used instead.
- The SDK scan is **not globally warning-free**: it reports a Radius
`withContainerImage` collision on `CSharpAppResource` and an App
Configuration `createRoleAssignment` overload collision. None of the
compiled examples calls those colliding methods; the warnings are
retained in evidence, not suppressed, and no generated declarations were
edited.
- Browser: Connector Namespace, Radius, both Rust pages, Foundry
hosting, and What's new return **HTTP 200**, correct headings, and no
rendered Twoslash errors. New guide/article page-local anchors and the
cross-page Blazor anchor resolve. Connector/Radius mobile layouts have
no horizontal overflow; Connector language-tab interaction works.
Standalone Astro preview emits expected `/api/live` 404s because
StaticHost is not running.
- `git diff --check` passes. No production `pnpm build`, cloud
deployment, REPL runtime session, full product suite, or blanket
validation of every pre-existing example was performed.
- Generated C#/TypeScript API data, declaration bundles, integration
catalogs, image catalogs, and contributor data are unchanged. Only the
authored package-to-guide mapping is updated.

**Before merging:** complete the two packaging/REPL checkboxes above,
inspect CI, and obtain human review. This PR intentionally does not
close or merge the source documentation proposals.

---------

Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
@karolz-ms

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

…-32505988923-1-dc5a1c75f6fccdb7

# Conflicts:
#	.github/workflows/frontend-build.yml
#	src/frontend/ec.config.mjs
#	src/frontend/src/components/FooterResources.astro
#	src/frontend/src/components/LoopingImage.astro
#	src/frontend/src/components/starlight/Header.astro
#	src/frontend/src/content/docs/app-host/with-terminal.mdx
#	src/frontend/src/content/docs/dashboard/configuration.mdx
#	src/frontend/src/content/docs/dashboard/explore.mdx
#	src/frontend/src/content/docs/dashboard/standalone.mdx
#	src/frontend/src/content/docs/get-started/ai-coding-agents.mdx
#	src/frontend/src/content/docs/get-started/aspire-vscode-extension.mdx
#	src/frontend/src/content/docs/integrations/cloud/azure/azure-ai-foundry/azure-ai-foundry-connect.mdx
#	src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx
#	src/frontend/src/content/docs/integrations/frameworks/rust/rust-get-started.mdx
#	src/frontend/src/content/i18n/en.json
#	src/frontend/src/data/aspire-integrations.json
#	src/frontend/src/data/pkgs/Aspire.Azure.AI.Inference.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.AI.OpenAI.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Data.Tables.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Messaging.EventHubs.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Messaging.ServiceBus.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Messaging.WebPubSub.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Npgsql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Npgsql.EntityFrameworkCore.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Search.Documents.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Security.KeyVault.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Storage.Blobs.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Storage.Files.DataLake.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Azure.Storage.Queues.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Confluent.Kafka.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.AppConfiguration.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.AppContainers.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.AppService.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.ApplicationInsights.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.CognitiveServices.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.ContainerRegistry.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.CosmosDB.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.EventHubs.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.FrontDoor.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Functions.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.KeyVault.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Kubernetes.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Kusto.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Network.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.OperationalInsights.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Redis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Search.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.ServiceBus.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.SignalR.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Sql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.Storage.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Azure.WebPubSub.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Blazor.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Browsers.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.DevTunnels.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Docker.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.EntityFrameworkCore.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Foundry.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Garnet.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Go.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.JavaScript.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Kafka.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Keycloak.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Kubernetes.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Maui.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Milvus.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.MySql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Nats.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.OpenAI.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Oracle.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Orleans.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Python.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Qdrant.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.RabbitMQ.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Redis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Seq.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.SqlServer.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Valkey.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Hosting.Yarp.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Keycloak.Authentication.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.Azure.Cosmos.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.Azure.StackExchangeRedis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.Data.SqlClient.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.EntityFrameworkCore.Cosmos.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.EntityFrameworkCore.SqlServer.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Milvus.Client.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.MongoDB.Driver.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.MongoDB.Driver.v2.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.MongoDB.EntityFrameworkCore.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.MySqlConnector.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.NATS.Net.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Npgsql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.OpenAI.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Oracle.EntityFrameworkCore.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Pomelo.EntityFrameworkCore.MySql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Qdrant.Client.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.RabbitMQ.Client.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.RabbitMQ.Client.v6.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.Seq.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.StackExchange.Redis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.StackExchange.Redis.DistributedCaching.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.StackExchange.Redis.OutputCaching.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/Aspire.TypeSystem.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/pkgs/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.13.5.1-beta.767.json
#	src/frontend/src/data/pkgs/CommunityToolkit.Aspire.Hosting.Kind.13.5.1-beta.767.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.AppConfiguration.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.AppContainers.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.AppService.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.ApplicationInsights.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.CognitiveServices.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.ContainerRegistry.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.CosmosDB.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.EventHubs.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.FrontDoor.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Functions.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.KeyVault.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Kubernetes.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Kusto.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Network.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.OperationalInsights.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Redis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Search.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.ServiceBus.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.SignalR.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Sql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Storage.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.WebPubSub.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Browsers.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.DevTunnels.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Docker.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.EntityFrameworkCore.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Foundry.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Garnet.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Go.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.JavaScript.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Kafka.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Keycloak.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Kubernetes.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Maui.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Milvus.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.MySql.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Nats.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.OpenAI.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Oracle.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Orleans.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.PostgreSQL.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Python.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Qdrant.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.RabbitMQ.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Radius.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Redis.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Seq.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.SqlServer.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Valkey.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/Aspire.Hosting.Yarp.13.6.0-preview.1.26473.12.json
#	src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.13.5.1-beta.767.json
#	src/frontend/src/data/twoslash/aspire.d.ts
#	src/frontend/tests/e2e/ui-regressions.spec.ts
#	src/frontend/tests/unit/twoslash-types-generator.vitest.test.ts
#	src/frontend/tests/unit/update-integrations.vitest.test.ts

Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>

Copilot AI commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

Resolved the conflicts by merging the latest release/13.6 in c0bcfe38. The PR now differs from the base in only blazor-hosting.mdx.

Copilot AI and others added 2 commits September 28, 2026 22:33
Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
@karolz-ms

Copy link
Copy Markdown
Contributor

Copilot Address finding from David: #1564 (comment) The frontend build check is still failing.

Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>

Copilot AI commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Copilot Address finding from David: #1564 (comment) The frontend build check is still failing.

Fixed the current frontend validation failure in e8888e0: WithBlazorClientApp now selects the ProjectResource overload, avoiding the ambiguous TypeScript API reference. The latest CI logs show twoslash passed; the failing test was the API-reference authoring validator. Locally both targeted API-reference and twoslash suites pass (57 tests). Awaiting CI on the new commit.

@karolz-ms
Karol Zadora-Przylecki (karolz-ms) merged commit 688faef into release/13.6 Sep 29, 2026
16 checks passed
@karolz-ms
Karol Zadora-Przylecki (karolz-ms) deleted the docs/pr-19026-32505988923-1-dc5a1c75f6fccdb7 branch September 29, 2026 00:10
David Pine (IEvangelist) added a commit that referenced this pull request Sep 29, 2026
Follow-up to #1780, which merged with two open checkboxes. Both are now
validated against the latest staging build.

This is a single commit on top of the current `release/13.6` tip
(`5589ce6d`), so it merges cleanly.

- [x] Generated API catalog refreshed from genuine 13.6 packages,
including the late `WithRepl` additions and removed attributes.
- [x] REPL samples and all other new samples checked against the real
13.6 SDK, not stale Twoslash types.

## Provenance

- **Feed:** `darc-pub-microsoft-aspire-f4c27f2d`
(`https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-microsoft-aspire-f4c27f2d/nuget/v3/index.json`).
- **Source:** microsoft/aspire `release/13.6` at
`f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62`, the newest staging build.
Every regenerated official TS module records `sourceCommit: f4c27f2d…`,
and the restored nuspecs (for example Redis, Blazor and
CodeGeneration.TypeScript) report that commit.
- **Versions:** stable packages are `13.6.0`; prerelease packages are
`13.6.0-preview.1.26478.8`. The codegen package is
`Aspire.Hosting.CodeGeneration.TypeScript 13.6.0`, mapped exclusively to
the staging feed. nuget.org has no `13.6.0`, so resolution is
unambiguous.
- **Scanner:** a locally fixed CLI/ATS scanner, built from `a11eca96`
plus `320eed42` (the microsoft/aspire#20438 content) and `435fd4eb` (the
microsoft/aspire#20443 content). Both upstream PRs are still unmerged.
- Nothing in `a11eca96..f4c27f2d` touches `AtsCapabilityScanner`,
`Aspire.TypeSystem` or `Aspire.Hosting.CodeGeneration.TypeScript`. The
last two commits (microsoft/aspire#20566 and microsoft/aspire#20562)
only change dashboard layout code and Dockerfiles.
- The layout's `dashboard` and `dcp` folders are copies from the
`8230626c` staging CLI bundle. Layout discovery requires them, but they
aren't used for scanning or code generation.
- **Isolation:** the stable version number didn't change between builds,
so generation used fresh process-local `NUGET_PACKAGES`, HTTP cache,
`TEMP` and `ASPIRE_HOME` folders. That rules out reusing `e8fd6fbb`
bits. `ASPIRE_REPO_ROOT` and `ASPIRE_REPO_PATH` were unset, and there
was no source-project substitution.
- **Pipeline:** the repo's own pipeline, in this order:
`update:integrations` → `generate-package-json.ps1` →
`normalize:api-data -- --pkgs` → `update:ts-api` (with Twoslash `.d.ts`)
→ `validate:api-data`.
- Generated JSON and `d.ts` were not hand-edited, and nothing from 14.x
was imported.

### Deviation: no `ASPIRE_RELEASE_VERSION` pin

Pinning `13.6.0` left the 50 prerelease packages stale. The feed is
commit-specific, so the unpinned run resolves every package from the
same build.

### Packages absent from the feed

These seven official packages aren't in this build, so they are carried
forward unchanged:

- `Aspire.Elastic.Clients.Elasticsearch` 13.3.0
- `Aspire.Hosting.AgentFramework.DevUI` 1.22.0-preview.260918.1
- `Aspire.Hosting.AWS` 13.7.2
- `Aspire.Hosting.ClickHouse` 13.5.3
- `Aspire.Hosting.DocumentDB` 0.116.0
- `Aspire.Hosting.Elasticsearch` 13.3.0
- `Aspire.Hosting.GitHub.Models` 13.5.4

## Changes

- **Generated data:** regenerated `aspire-integrations.json` (still 217
packages; 82 at `13.6.0` and 50 at `13.6.0-preview.1.26478.8`), `pkgs/`
(210 succeeded, 0 failed), `ts-modules/` (146 succeeded, 0 failed) and
`twoslash/aspire.d.ts`. `integration-docs.json` needed no change.
- **Generator fix** (`generate-package-json.ps1`): the 24 Provisioning
overlays restored `Aspire.Hosting` at the overlay's own prerelease
version, which doesn't exist now that `Aspire.Hosting` is stable
`13.6.0`. The script now uses the resolved `Aspire.Hosting` version, via
a new `-HostingVersion` parameter with a feed-lookup fallback for
selective runs.
- **Blazor docs:** `AddDotnetProjectBlazorGateway` and
`WithBlazorClientApp` report their own `ASPIREDOTNETPROJECT001`
diagnostic. `ASPIREBLAZOR001` applies to other experimental Blazor
hosting types, such as `BlazorWasmAppResource`.
- A compile check with the pragma removed reports only
`ASPIREDOTNETPROJECT001`, on exactly those two methods.
- The previous wording, from #1564, said the gateway methods carry both
diagnostics.
- **Dashboard docs (microsoft/aspire#20562):** the dashboard no longer
has a terminal button in the header or a terminal entry in the mobile
menu.
- `dashboard/explore.mdx` and the What's new bullet now describe the
backtick key as the way to open and hide the terminal dock.

## Validation

- **`WithRepl` coverage:** present in the C# and TS API data for all six
REPL packages (PostgreSQL, MySql, MongoDB, SqlServer, Redis, Valkey) and
in `aspire.d.ts`.
- **C# compile:** every new sample compiles with 0 warnings and 0 errors
against exact packages from the `f4c27f2d` feed (16 at `13.6.0`, 9 at
`26478.8`). This covers REPL×6, Rust, ConnectorNamespace, Foundry
Toolbox, Radius, CSI, Helm, Blazor (now matching #1564's
`WithExternalHttpEndpoints` sample), Provisioning and Dotnet. The Dotnet
samples need no `ASPIREDOTNETPROJECT001` suppression.
- **TS compile:** the SDK was generated by a real `aspire restore`
(codegen `13.6.0`, `Aspire.Hosting.Redis/13.6.0` and
`Aspire.Hosting.Blazor/13.6.0-preview.1.26478.8`, all at `f4c27f2d`).
Strict `tsc` (NodeNext) passes for all 18 `.mts` samples, including the
new Blazor gateway TS sample. A negative control (`withReplz`) fails
with TS2551.
- **Scanner warnings:**
- Radius reports no collisions; the earlier `withContainerImage`
collision on `CSharpAppResource` is gone.
- The `createRoleAssignment` overload collisions remain in 16
Provisioning overlays. They are recorded here, not suppressed; no doc
sample calls this method.
- **Tests:** `pnpm validate:api-data` passes (217 identities, 146
modules matched to C# provenance). These suites pass:
`test:unit:structured-data` (82), `api-reference` (55), `api-markdown`
(30), `ts-api` (31), `twoslash-types` (12), `twoslash-blocks` (2),
`llms-txt` (12) and `docs` (2).
- No local `pnpm build` was run; CI covers it.

## Not done

- **Contributors:** `update:release-contributors` needs the `v13.6.0`
tag, which doesn't exist yet. This is left for after the release is
tagged.

Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-from-code Copilot initiated issue from dotnet/aspire repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants