microsoft / microsoft/agent-host-protocol
OTLP channel: `otlp/export*` server→client notifications aren't surfaced by the clients
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 348
- Forks
- 122
- Avg merge
- 14h 12m
- Merged PRs (30d)
- 22
Description
Summary
The ahp-otlp:// channel and its generated payload types exist, but the client libraries intentionally drop these notifications instead of surfacing them — so a subscriber has no typed (or even untyped) callback to receive host-exported telemetry. The clients note this is consistent across languages, so this is a cross-client enhancement; the Swift generated types are the concrete example.
What exists today
- Protocol:
otlp/exportLogs,otlp/exportMetrics,otlp/exportTraceson theahp-otlp://channel, all@direction Server → Client; eachpayloadcarries an OTLP/JSONExportXxxServiceRequest. - Swift (module
AgentHostProtocol):OtlpExportLogsParams,OtlpExportMetricsParams, andOtlpExportTracesParamsare generated.
The gap
- These methods are neither in
AHPCommands/AHPClientNotificationsnor surfaced asSubscriptionEvents. The reference TypeScript client makes this explicit — in its notification switch,otlp/exportLogsfalls into thedefaultbranch with the comment that such notifications "are not surfaced asSubscriptionEvents to mirror the Rust/Swift clients." (clients/typescript/src/client/client.ts) - Result: a client that subscribes to
ahp-otlp://…receives nothing typed; the generatedOtlpExport*types have no reachable decode/route path, so a consumer would have to parse raw JSON-RPC frames itself.
Proposed enhancement
Surface the otlp/export* notifications to subscribers — e.g. as typed SubscriptionEvent cases (or a dedicated OTLP stream) decoded into the generated OtlpExport* params — so a subscriber to the OTLP channel can actually receive host telemetry through the client API.
Version
Observed at protocol version 0.5.2 (latest release) and current main.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with types/channels-otlp/notifications.ts to confirm the server-to-client notification payloads, then inspect clients/typescript/src/client/client.ts and the generated Swift OtlpExport* types. Trace how notifications become SubscriptionEvents in each client and identify the corresponding cross-client routing points. Done means subscribers can receive the three OTLP export notifications through the client APIs using the generated payload types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift, typescript
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100