From d564216ba45ba4f023727f37d9467dc6eab591f8 Mon Sep 17 00:00:00 2001 From: us Date: Sat, 18 Jul 2026 23:49:13 +0300 Subject: [PATCH] feat(renderer): send x-deadline-ms to the cloak sidecar mirror call Propagate the cloak arm's per-call budget (deadline.remaining().min(35s)) as an x-deadline-ms header on every mirror_once request, unconditionally (including attempt 0). Lets the sidecar deliver a slow cold solve in-band up to what the engine will actually wait, instead of fail-opening at its conservative default. Feature-gated (cloak) and inert when the tier is off. budget is guarded non-zero above, so x-deadline-ms: 0 is never emitted. --- crates/crw-renderer/src/cloak.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/crw-renderer/src/cloak.rs b/crates/crw-renderer/src/cloak.rs index 505a08cd..e54c4b26 100644 --- a/crates/crw-renderer/src/cloak.rs +++ b/crates/crw-renderer/src/cloak.rs @@ -160,6 +160,12 @@ impl CloakRenderer { if bypass_cache { rb = rb.header("x-bypass-cache", "true"); } + // Propagate our per-call budget so the sidecar can deliver a slow cold + // solve in-band (up to what we will actually wait) instead of fail-opening + // at its conservative default. UNCONDITIONAL: must be sent on every mirror + // call, including attempt 0 (bypass=false) — the generous-deadline + // first-request case this exists for. `budget` is guarded non-zero above. + rb = rb.header("x-deadline-ms", budget.as_millis().to_string()); let resp = tokio::time::timeout(budget, rb.send()) .await .map_err(|_| CrwError::Timeout(budget.as_millis() as u64))?