Skip to content

[Bug]: Management emitter leaks into Coverage Overview and lacks a C# table header #11699

Description

@live1206

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

  • Follow the Code of Conduct.
  • Checked that there is not already an issue requesting the same fix.
  • Confirmed this is a concrete dashboard bug.
  • Provided a live minimal reproduction.

- by copilot

Metadata

Metadata

Labels

bugSomething isn't workingemitter:client:csharpIssue for the C# client emitter: @typespec/http-client-csharpspectorIssues related to spector and the spec sets

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions