microsoft / microsoft/typespec
[Bug]: Management emitter leaks into Coverage Overview and lacks a C# table header
- Dominant language
- Java
- Stars
- 5.9k
- Forks
- 394
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 104
Description
### Describe the bug
The Spector dashboard exposes the package name `@azure-typespec/http-client-csharp-mgmt` in two places on the Azure HTTP dashboard:
https://azure.github.io/typespec-azure/can-i-use/http/
1. The **Coverage Overview** includes the emitter as an additional language.
2. The **Azure Management Plane** table uses the package name as its column header instead of the friendly language name **C#**, unlike the Azure Data Plane table.
The Management Plane table correctly needs the management-specific C# emitter to load its coverage. However, the implementation package name should not be user-facing.
The Azure dashboard configuration defines:
- `@azure-typespec/http-client-csharp` in the top-level `emitterNames`
- `@azure-typespec/http-client-csharp-mgmt` only in the Azure Management Plane table's `emitterNames`
Configuration:
https://github.com/Azure/typespec-azure/blob/main/website/src/pages/can-i-use/http.astro
`Dashboard` currently passes all loaded `coverageSummaries` to `CoverageOverview`:
https://github.com/microsoft/typespec/blob/main/packages/spec-dashboard/src/components/dashboard.tsx
`CoverageOverview` groups those summaries by emitter package name. `emitterDisplayNames` changes only the rendered label; it does not define a logical language identity or merge emitters:
https://github.com/microsoft/typespec/blob/main/packages/spec-dashboard/src/components/coverage-overview.tsx
The table header has the same missing friendly-name mapping, falling back to `generatorMetadata.name`:
https://github.com/microsoft/typespec/blob/main/packages/spec-dashboard/src/components/dashboard-table.tsx
**Expected behavior:**
- The Coverage Overview contains one entry per logical language.
- Coverage from `@azure-typespec/http-client-csharp` and `@azure-typespec/http-client-csharp-mgmt` is aggregated into a single **C#** overview card, just as emitters shared by both tables aggregate their data-plane and management-plane scenarios.
- The `@azure-typespec/http-client-csharp-mgmt` column in the Azure Management Plane table is displayed as **C#**, matching the C# header in the Azure Data Plane table.
**Actual behavior:**
- `@azure-typespec/http-client-csharp-mgmt` appears in the overview alongside Python, Go, C#, JavaScript, Java, C++, and Rust as though it were another language.
- The Azure Management Plane table displays `@azure-typespec/http-client-csharp-mgmt` as the column header.
The management emitter needs a `C#` friendly display name for its table header. The overview also needs language-level grouping rather than emitter-package grouping. Merely adding the display name with the current implementation would create two separate cards both labeled **C#**; excluding the management emitter would instead omit management-plane scenarios from C# while other languages include both planes.
### Reproduction
1. Open https://azure.github.io/typespec-azure/can-i-use/http/.
2. Inspect the **Coverage Overview** section.
3. Observe that `@azure-typespec/http-client-csharp-mgmt` is listed as an additional entry.
4. Inspect the **Azure Management Plane** table.
5. Observe that its C# column is labeled `@azure-typespec/http-client-csharp-mgmt` instead of **C#**.
### Checklist
- [x] Follow the Code of Conduct.
- [x] Checked that there is not already an issue requesting the same fix.
- [x] Confirmed this is a concrete dashboard bug.
- [x] Provided a live minimal reproduction.
\- by copilot
Contributor guide
Assessment
This issue has not been assessed yet.