- 21 Jun, 2026 3 commits
-
-
Stefy Lanza (nextime / spora ) authored
When a rotation fails over to a different provider/model than the preferred (highest-weight) pick, optionally notify the client so the provider/model change isn't silent. Opt-in via a new notify_on_failover flag, settable globally (rotations.json top-level) or per-rotation, mirroring notifyerrors. On a real switch (served provider/model differs from preferred), three mechanisms carry the notice: - Visible banner: prepended to message content (non-streaming) or a leading delta chunk (streaming). - JSON metadata: an aisbf_failover object on the body / leading stream chunk. - HTTP headers: X-AISBF-Failover/Provider/Model/Preferred-* on the StreamingResponse and (for non-streaming) at the rotation route. Applied to both the normal and chunked rotation paths. The banner is injected after caching so cache hits don't replay a stale notice; no switch means zero overhead and nothing emitted; default off preserves existing behavior. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
-
Stefy Lanza (nextime / spora ) authored
Streaming rotation requests returned the provider's lazy async generator to the client before the upstream HTTP call was made, so an immediate provider error (e.g. HTTP 400 "model not supported") surfaced mid-stream after the 200 OK headers were already sent — leaking the error to the client instead of failing over. - Prime streaming responses (_prime_stream) inside the rotation retry loop so immediate provider errors are raised within the try/except and trigger failover to the next provider by weight, transparently to the client. - Add _is_non_retryable_error to skip pointless same-provider retries for client errors (400/401/403/404/405/422) and move straight to the next provider; 5xx/timeouts/network remain retryable. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
-
Stefy Lanza (nextime / spora ) authored
Add _record_dashboard_proxy_event, _settle_market_result, _get_market_source_details, _market_request_id and _extract_usage_from_sse_chunk to RotationHandler, and the market settlement cluster to AutoselectHandler. These were defined only on RequestHandler, so rotation/autoselect requests raised AttributeError (crash on the dashboard event path, silently swallowed elsewhere), dropping market settlement and streaming usage capture. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
-
- 19 Jun, 2026 1 commit
-
-
Stefy Lanza (nextime / spora ) authored
The collapsed provider-list status chip only rendered gpus[0], so a coderai client connecting with multiple GPUs displayed just the first. Render one chip per reported GPU (name + per-GPU VRAM), falling back to an aggregate VRAM chip when no per-GPU detail is sent. GPU names are HTML-escaped. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
-
- 19 May, 2026 2 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
- 18 May, 2026 6 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
- 17 May, 2026 4 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
- 16 May, 2026 3 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
- 14 May, 2026 1 commit
-
-
Stefy Lanza (nextime / spora ) authored
-
- 13 May, 2026 4 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
- 12 May, 2026 16 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-