A processor in the shared chain reads the active span context and adds its IDs as lowercase hex, so both structlog and stdlib records carry them. The lowercase `trace_id` name is what the provisioned Loki derived field's case-sensitive regex matches; outside a span nothing is added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>