---
summary: "HTTP transport per-request log context fixed — handlers now derive a fresh requestId/timestamp + live trace/span IDs instead of the frozen boot context"
breaking: false
security: false
---

# 0.9.21 — 2026-06-02

## Fixed

- **HTTP transport per-request log context ([#194](https://github.com/cyanheads/mcp-ts-core/issues/194)).** Every per-request route handler and middleware in `httpTransport.ts` now derives its own context via `requestContextService.createRequestContext(...)` instead of spreading the setup-time `transportContext` (built once at boot from the `TransportManager.start` parent context). Previously all per-request logs — DELETE session termination, the JSON-RPC handler's protocol/session/cleanup warnings, the Origin guard, the body-size-limit guard, and the shared `closePerRequestInstances` helper — froze `requestId`/`timestamp`/`traceId`/`spanId` at boot, so a termination logged hours after startup reported boot's timestamp and trace IDs. Each handler now gets a fresh `requestId`/`timestamp` and the active request span's `traceId`/`spanId`; setup-time logs keep `transportContext`. Regression test added: per-request logs carry distinct, fresh `requestId` values across requests, never the boot context's ID.

## Changed

- **`orchestrations` skill is now `audience: external`.** The pipeline workflow files (`skills/orchestrations/SKILL.md` and the four files under `skills/orchestrations/workflows/`) ship with the package and are intended for downstream agents — frontmatter updated from `internal` to `external` to reflect this. The scaffolded `CLAUDE.md`/`AGENTS.md` templates (`templates/`) also now document how to chain task skills into a gated multi-phase pipeline when sub-agents are available.
