Skip to content

DL-348

The UI emits the PostHog session id on outbound Connect requests via a sessionIdInterceptor in @compass/client (sibling to traceResponseInterceptor), completing the J1 correlation-key seam whose inbound half stamps semconv session.id on backend spans. X-POSTHOG-SESSION-ID ONLY — X-POSTHOG-DISTINCT-ID is permanently excluded because it identifies a person and backend spans land in Grafana/Tempo, the plane J1 keeps identity out of; identity resolution stays PostHog-side where identify() holds it. Supersedes the 2026-09-05 HOLD (RIG-3233), whose two reasons — no inbound consumer, and a lazy-getter-over-nothing boot workaround — are discharged by the server merge and by the boot reorder respectively. posthog-js’s own TracingHeaders extension is rejected: it monkey-patches global fetch/XHR and also sends the distinct-id header

Status: Active (Matt, 2026-09-07)

Record: ../../ui/compass-outbound-session-header/design.md#the-outbound-interceptor