Skip to main content

resolve_transcript_request_tier_fields

Function resolve_transcript_request_tier_fields 

Source
pub(crate) fn resolve_transcript_request_tier_fields(
    mstore: &Arc<Store>,
    req: &mut InjectionRequest,
)
Expand description

Server-side resolution of InjectionRequest::is_transcript_request / transcript_request_escalate_forced — see both fields’ own doc comments (backend/reactive/types.rs) and SPEC_JEKT_TRANSCRIPT_REQUEST_TIER_RULES_2026_08_22.md. Lives here (not Handler::inject_message_inner) because it needs Store access — Handler has no Store access “by design,” same reason sig_verified/lan_verified are resolved by this same caller before the request reaches the handler.

Takes mstore: &Arc<Store> directly (not &AppState) so muxbus::cloud_subscriber::sync_agent_reactive — the WAN delivery path, which calls Handler::inject_message directly and never goes through handle_reactive_inject/HTTP at all — can call this exact same resolution too (pub(crate)). Phase C (WAN) needs the identical rule 1/ rule 2 computation this function already does; without also wiring it in there, a WAN-delivered transcript_request would silently skip both rules entirely, not just get weaker ones.

Always re-parses req.message itself — never trusts anything the client might have set on these two fields (impossible anyway, since both are #[serde(skip_deserializing)], but this function is the one place that actually computes their real value from scratch).