## What changed
- Add `codex-otel-trace-websocket` with a `TraceWebSocket` API that owns the
loopback OTLP receiver and WebSocket listener.
- Bind both listeners during startup, expose the exporter and bound listener
addresses, and surface listener failures through a single lifecycle method.
- Update `codex-code-mode-host` to use the new crate and shut down the bridge
after flushing its trace provider.
GitOrigin-RevId: ec5ca4c4369b6b3b1232875c2699730eb748ab1c