You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
claude-sonnet-5.5 (1.3x, 1M window, 128k output) with native reasoning effort
native reasoning effort for claude-sonnet-5
fastest endpoint rotation: the order follows the latest latency measurement per region, a challenger leads only with a median more than 15% lower, a failing endpoint backs off with a cooldown that doubles up to 10 minutes, and an optional schedule re-measures only after traffic
choose which models /v1/models lists; a hidden model still answers requests
"Refresh models" button that re-reads every account's catalog; a new account is re-read 1 and 5 minutes after it is added, and a failed forced read keeps the current catalog
DASHBOARD_AUTH=false opens the dashboard without a password for a loopback-only gateway; /v1 still requires a key and startup warns
the request log shows output speed and the reasoning effort actually sent to Kiro
note on Claude Code's Write, Edit, MultiEdit and NotebookEdit (CLAUDE_WRITE_HINT, also in the dashboard) asking the model to save large files in parts
on the first start after updating, tool shortening, the Write/Edit note, endpoint rotation and the fastest order turn on once; a value pinned by an environment variable is kept, and later dashboard changes stick
the fastest order measures every endpoint at startup once an account is ready (3 short generations per endpoint)
Fixed
end the turn as max_tokens / length when Kiro cuts a response inside a tool call, or with its MODEL_TEMPORARILY_UNAVAILABLE event after output started, instead of a 500 the client retried forever; the cut call is dropped
record a response Kiro cut in the request log (warning icon and a detail field), including a cut tool call after complete ones, which ends the turn as tool_use
only /v1 sends access-control-allow-origin: *; with DASHBOARD_AUTH=false the dashboard refuses cross-site requests (Sec-Fetch-Site, then Origin against Host)
a failing background account initialization backs off from 10s up to 5 minutes, and a forced token refresh honours the 30s backoff
an account still initializing no longer makes the pool answer 403, and usage that reports the quota spent with overage off counts as out of quota (402)
a single-endpoint ping no longer changes routing; a full probe replaces the region's measurements, so models never mix, and the write runs off the async runtime
tool calls recovered from [Called …] text are counted once in output tokens
a session's input calibration applies only to the model it was measured on, and web-search follow-ups no longer feed it
the per-account rate chart states its bucket and time window again; the request log filters wrap below the title on small screens
device login shows the approval link as a fallback when the clipboard is unavailable
a period change is no longer overwritten by a poll already in flight, and its failures reach the dashboard's error handling
the light theme's terracotta is darkened to #b85a36 for WCAG AA contrast on buttons
the mobile tab bar uses left/right arrow keys; a failed sign-in alert is dismissed once signed in
the fastest endpoint strategy is no longer overridden by the endpoint that last served an account, and a cooldown of 0 disables its backoff
a transient token refresh failure backs off for 30s even after the access token expired, instead of retrying on every request
hidden models are stored by Kiro id, so a hyphenated or dotted spelling can be listed again from the dashboard
a session re-pinned while it was being evicted no longer counts against its old account twice
"Refresh models" reads every account at once, and a failed forced read no longer postpones the next scheduled one
answer a pool that cannot serve the model with errors clients do not retry: not_found_error 404 when no account has the model, billing_error 402 (OpenAI insufficient_quota 402, a status its SDKs do not retry) when every account is out of monthly quota, permission_error 403 when they are all suspended or signed out
report the 1M window for Opus 4.7/4.8/5/5.5 and Sonnet 5 instead of 666667, so reported input tokens are no longer a third low
send the adaptive thinking block with Claude reasoning effort again; without it Sonnet 5 returned no reasoning
list Claude models in /v1/models with hyphenated ids; dotted and hyphenated names resolve to the same model
keep a session on its account through transient failures (burst limits, busy slots); move it only when the account is suspended, signed out, out of quota or lacks the model
persist session pins with the runtime state, so a restart or a blue/green switch keeps warm caches; expired pins and pins of a re-bound login are dropped
honour session routing when ACCOUNT_QUOTA_WEIGHTED_ROUTING=false
token refresh: range 60..1800s, default 960s; a transient refresh failure keeps serving the still-valid token and retries after 30s
return Kiro context overflows as prompt is too long: N tokens > M maximum (Anthropic) and context_length_exceeded (OpenAI)
scale the message_start input estimate and count_tokens by the ratio Kiro reported, so start and end counts agree
resolve the auto-kiro alias for price, window and catalog lookups
measure time to first token from when the request arrives; Kiro sends headers only once the first token is ready
count tool calls (name and arguments) as output tokens, so tool-only turns get output and speed
record no speed when the whole output arrives at once (decode window under 250ms)
traffic metrics (overview, /metrics requests and latency) count only generations, not count_tokens or model listing
the request log model filter joins every spelling of a model (claude-opus-5-5, claude-opus-5-5[1m], claude-opus-5.5)
Changed
dashboard navigation moved to a sidebar grouped by Monitoring, Management and System, with sign-out at its foot; the top bar, the live toggle and the "Refresh usage" button are gone (usage still refreshes every 5 minutes)
the overview opens with one compact strip of six figures, and its panels use the full width beside the sidebar
the total request rate chart can show 15 minutes, 1 hour or 6 hours
the request log lists time, route, model, status and latency; speed, effort, credits and the multiplier moved to the detail view
settings cards sit in pairs, descriptions are shorter, number fields fit their label, the ping repetitions field is gone, and every save button uses the primary style and is enabled only when its card has changes
errors, warnings and notices show in one alert stack that fades out on its own (4s notices, 7s warnings, 8s errors) and scrolls into view; gateway error messages, relative times and the rate-limit guide are translated into all four languages
the light theme is white with Claude's terracotta accent, the dark theme near-black with Kiro's purple accent
adding an account copies the approval link instead of opening it, shows the time left, and the success notice fades out
the mobile tab bar stays horizontal under the sidebar layout
Removed
the agent task mode option; requests always send vibe
the system prompt condenser; tool description shortening stays and is now on by default