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).