AGENTS.md@telemetry-reporter · git:20260923.310e6a4 · 2026-09-23 · sha256 38349a47fc054d1d
AGENTS.md@telemetry-reporter git:20260923.310e6a4A
Immutable. This exact content is served forever at /api/v1/blob/38349a47fc054d1d.
# Telemetry Reporter Agent Guide This directory contains a standalone .NET 10 implementation of the Azure MCP `server plugin-telemetry` command. Read [README.md](README.md) for user-facing build, packaging, and usage documentation. This file defines how coding agents should modify the project. ## Scope and Structure - `src/ghcfa-telem/` contains the console application. - `src/Ghcfa.Telemetry/` contains command parsing, validation, telemetry, and platform-specific machine information behavior. - `tests/Ghcfa.Telemetry.Tests/` contains the .NET unit tests. - `resources/` contains Azure MCP allowlists embedded by `Ghcfa.Telemetry`. - `eng/scripts/Build-Native.ps1` creates opt-in Native AOT packages for the Azure MCP operating system and architecture matrix. The repository-level `tests/AGENTS.md` does not apply to this directory. ## Compatibility Requirements - Preserve the Azure MCP command-line contract, JSON response shape, exit codes, validation behavior, telemetry event names, and telemetry properties. - The Microsoft-only telemetry exporter policy is an intentional compatibility divergence. Preserve `AZURE_MCP_COLLECT_TELEMETRY` as the global opt-out, and do not add user-configurable Application Insights or OTLP sinks. - Treat `CompatibilityConstants.AzureMcpCommit` as the source revision for the copied behavior and allowlists. - When synchronizing with a newer Azure MCP revision, update the compatibility constants, embedded resources, implementation, tests, README, and third-party notices as applicable. - Keep telemetry disabled in build or smoke-test scenarios that invoke the executable. - Add XML summary comments to every declared C# type, including test and nested types. ## Build and Test Run .NET commands from this directory so `global.json` selects the expected SDK and Microsoft Testing Platform runner: ```powershell dotnet build .\ghcfa-telem.slnx --configuration Release dotnet test .\ghcfa-telem.slnx --configuration Release --no-build ``` Normal builds are framework-dependent. Native AOT is opt-in and supports `win-x64`, `win-arm64`, `linux-x64`, `linux-arm64`, `osx-x64`, and `osx-arm64`. Follow the host mapping and platform toolchain prerequisites in the README. Smoke tests run only when the target RID matches the host RID; cross-compiled Windows and macOS ARM64 packages report an explicit skip. ## Versioning - Nerdbank.GitVersioning is configured by `version.json` with a `0.1` major/minor version and `pathFilters: ["."]`. - Do not add hard-coded `<Version>` properties to project files. - Scripts that need the computed package version must invoke NBGV's `GetBuildVersion` target and read `NuGetPackageVersion`. - Keep the NBGV package reference private and centrally versioned through `Directory.Packages.props`. ## Repository Integration This project is intentionally independent of the root npm build and existing CI workflows. Do not modify root build scripts, package manifests, or CI configuration to include it unless the user explicitly requests that work.