mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-27 02:44:50 +01:00
Add the closed telemetry contract for the sandbox duplex transport: the two fixed spans, the four guarded counters, and the one transport event. A new provider-scoped facade maps each record to the fixed names and dimension keys. It maps the raw provider key through a one-value allowlist before every sink, so a plugin key never reaches a span, a counter, or the event; a non-approved key maps to the constant other. Wire the facade into the transport selection path and the broker. The selection path records the channel-open span, the fallback counter, and the transport event, and it maps each readiness failure to a fixed fallback reason. The broker records one request span with latency per delivered request and one loss record per terminal loss, classified as pre_dispatch or post_dispatch. Keep the per-request debug output off the duplex path: suppress the route and query proxy logs and pass no free-form logger to the broker, so no route, query, body, token, or raw provider error rides a log line, a span, an event, or a counter. Every recorder call sits inside an error swallow, so a telemetry failure never breaks the request path. The default recorder is a no-op, so the surface stays inert until the host binds a real recorder. Co-authored-by: Paperclip <noreply@paperclip.ing>