Embedded 13.5 CLI bundle omits Fluent UI assets and leaves dashboard blank
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
### Is there an existing issue for this?
- [x] I searched the existing issues
This looks similar to #17983, but I think this is a different 13.5 regression. #17983 described a stale 13.4 fallback bundle that became complete after clearing Aspire home. Here the first extraction into an empty runtime root is already incomplete.
### Describe the bug
The embedded CLI bundle built from the current `release/13.5` branch omits 37 Fluent UI files from the extracted dashboard webroot. The dashboard authenticates and reaches `/structuredlogs`, but it is completely blank because the required Fluent UI module and scoped CSS return 404.
This reproduces through the 1.17.0 VS Code extension and through a direct `aspire dashboard run` control.
### Expected behavior
A clean extraction should preserve the complete release-staging dashboard webroot and the dashboard should render after authentication.
### Actual behavior
The release-staging webroot has 234 files. A clean embedded-bundle extraction has 197 files. All 37 missing files are under:
```text
_content/Microsoft.FluentUI.AspNetCore.Components/
```
Representative missing files:
```text
Microsoft.FluentUI.AspNetCore.Components.lib.module.js
Microsoft.FluentUI.AspNetCore.Components.lib.module.js.map
Microsoft.FluentUI.AspNetCore.Components.lib.module.js.LEGAL.txt
Microsoft.FluentUI.AspNetCore.Components.lcdo7z9xd2.bundle.scp.css
32 component-scoped .razor.js files
js/initializersLoader.webview.js
```
The uncompressed Fluent UI module exists in release staging at 395,429 bytes. The clean extracted webroot has only its `.br` and `.gz` siblings at that path.
### Clean extraction control
1. Copied only the locally built CLI `bin/` and verified 13.5 package hive into a new runtime root.
2. Confirmed that `bundle/`, `versions/`, and the extraction marker did not exist.
3. Ran:
```bash
aspire dashboard run --log-level Debug
```
4. The CLI reported:
```text
No bundle layout discovered
Extracting embedded bundle
Versioned layout missing; extracting fresh
Payload extraction completed
Bundle extraction verified successfully
```
5. Authenticated through the generated login URL.
### Playwright CLI proof
```text
Page URL: http://localhost:18888/structuredlogs
Accessibility snapshot: empty
Console: 5 errors
Visible result: completely blank white page
```
Network:
```text
200 /structuredlogs
200 /_content/Microsoft.FluentUI.AspNetCore.Components/css/reboot.css
404 /_content/Microsoft.FluentUI.AspNetCore.Components/Microsoft.FluentUI.AspNetCore.Components.lib.module.js
404 /_content/Microsoft.FluentUI.AspNetCore.Components/Microsoft.FluentUI.AspNetCore.Components.lcdo7z9xd2.bundle.scp.css
```
Console:
```text
Loading module from "...Microsoft.FluentUI.AspNetCore.Components.lib.module.js"
was blocked because of a disallowed MIME type ("text/html").
The scoped CSS resource was blocked due to a MIME type ("text/html") mismatch.
TypeError: error loading dynamically imported module:
...Microsoft.FluentUI.AspNetCore.Components.lib.module.js
```
### Environment
```text
Aspire CLI/AppHost: 13.5.0
CLI commit: 1d922813c0f9bc14f7d817c817a8ab46b288bb44 (release/13.5)
Aspire VS Code extension: 1.17.0
Extension commit: c66c0f80e4748e07d079e68c74dd3abf3d27a604 (main)
VS Code Insiders: 1.133.0-insider
Platform: macOS arm64
Package hive: 103 unique Aspire packages, all exactly 13.5.0
```
### Proof

Contributor guide
Research direction
Start with the release/13.5 embedded-bundle extraction path exercised by `aspire dashboard run --log-level Debug`, comparing the release-staging webroot with a clean extraction. Verify why the uncompressed Fluent UI module and 37 files are omitted while their `.br` and `.gz` siblings remain. Done means a clean extraction preserves all 234 files and Playwright sees a rendered `/structuredlogs` page without 404s.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, vscode
- Domain
- build-system, cli, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100