Skip to content

v0.7.0 — long-running research models survive end-to-end

Choose a tag to compare

@izzoa izzoa released this 21 Jul 09:58

Highlights

  • Research-class models (o3-deep-research and kin) now work end-to-end. The hidden undici 300s headers/body ceiling is gone — the SSRF-guarded dispatcher's timeouts are now derived above polyrouter's own typed bounds, so raising a timeout knob actually holds, and timeouts stay typed and correctly breaker-classified instead of surfacing as opaque socket errors.
  • Per-provider patience overrides — set first-response and between-chunks timeouts (1s–1h) on a single provider from the provider form's Advanced section. Blank fields inherit the instance defaults (shown honestly from the server via GET /api/providers/timeout-defaults); overrides resolve per fallback-chain attempt, so a raised research provider never slackens hang detection for anyone else in the chain.
  • Keepalives count as liveness — upstream bytes (OpenRouter's : OPENROUTER PROCESSING comments included) re-arm the streaming stall watchdog and renew the circuit breaker's half-open probe lease, so a streamed deep-research call with long silent thinking gaps is no longer aborted as stalled. True silence still fails typed at exactly the configured bound.
  • The ChatGPT/Responses buffered path gained its own byte-re-armed idle guard — it previously had no typed post-headers bound at all.
  • Body-capture card buttons fixed — "Purge all bodies" no longer renders as bare oversized text; the consent/disable dialogs follow the established primary/cancel/ghost idioms.

Upgrade notes

  • No migrations in this release; drop-in upgrade.
  • Long-call operator guidance: raise the slow provider's patience in its Advanced section, prefer streaming, and size your client SDK's own timeout — that one bound the router cannot lift.
  • Per-provider timeout fields are optional and null by default; existing providers keep inheriting the instance defaults until you set them.

Full package changelogs live in packages/*/CHANGELOG.md.