Per-request context passed to middleware and route handlers. Each request gets a fresh context; request-scoped data lives here, never in globals.
id: string
Unique request ID (generated or propagated by middleware).
services: IServiceRegistry
Service resolution (application-scoped plus request-scoped services).
params: Readonly<Record<string, string>>
Path parameters extracted by the router (e.g. :id).
query: Readonly<Record<string, string>>
Query string parameters.
state: Map<string, unknown>
Request-scoped state for passing data between middleware and handlers.
startTime: number
High-resolution timestamp captured when the context was created.
signal: AbortSignal
An abort signal that fires when the underlying HTTP connection is severed
(client disconnect, timeout). Populated by the kernel's request-context
factory from the native Request.signal; falls back to a non-aborting
sentinel so handlers always have a live signal to listen on.
Used by streaming producers (SSE heartbeats, channel cleanup) to stop work on client disconnect and avoid leaking producers.
The undisturbed web-standard Request, preserved for WebSocket upgrade
and gRPC dispatch after the middleware pipeline.
Threaded from IRequest.raw by the kernel's request-context
factory. Absent when the adapter did not provide one (injected or test
requests).