0f923303d3
Task O.1: AsyncLocalStorage trace context (currentTraceId/runWithTrace/toTraceparent) read by singleton services with no DI churn; Express traceMiddleware derives a trace id per request (x-trace-id → traceparent → generated), echoes x-trace-id on the response, runs the request in-context, and logs a structured http.request line on finish. Minimal JSON structured logger stamps traceId on every line. Wired via app.use in main.ts. 4 tests: scope, concurrency isolation, traceparent shape/parse. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>