pub struct Working {
pub session: Option<SessionInfo>,
pub client: Option<ClientInfo>,
pub request_method: Option<ClientMethod>,
pub request_tool: Option<String>,
pub response_size: Option<u64>,
pub upstream_us: Option<u64>,
pub tags: TagSet,
pub timings: Vec<StageTiming>,
}Expand description
Mutated by middlewares as they learn about the request. Final
contents feed the Emit stage.
Fields§
§session: Option<SessionInfo>§client: Option<ClientInfo>§request_method: Option<ClientMethod>Originating client method, stashed on the request side so response-side middlewares know what produced the response.
request_tool: Option<String>Tool name for tools/call, stashed on the request side so the
emitter can populate RequestEvent.tool without re-parsing.
response_size: Option<u64>Serialized response body size in bytes. EnvelopeSealMiddleware
fills this on the buffered path; streaming paths leave it None.
Feeds RequestEvent.response_size.
upstream_us: Option<u64>Wall-clock time spent in forward_request (network RTT +
upstream work). Populated by ProxyTransport. Feeds
RequestEvent.upstream_us.
timings: Vec<StageTiming>Per-stage wall-clock timings, pushed in order as each stage
completes. Populated only when MCPR_STAGE_TIMING is set —
otherwise stays empty. Feeds RequestEvent.stage_timings.