Skip to content

v0.12.0 — account-switch data fixes, a Requests page that stays true, and a dashboard that works on a phone

Latest

Choose a tag to compare

@izzoa izzoa released this 07 Aug 05:04

Highlights

  • Fixed: another account's data could stay on screen after switching accounts. If more
    than one person signs in through the same browser, this is the reason to upgrade. Signing
    out and back in as a different user could leave the previous account's request rows, its
    spend totals and cost breakdowns, and — the severe half — its captured prompt and
    response text
    in the inspector, the one category of content the system otherwise refuses
    to store at all. A response begun under the previous account could also still commit under
    the next. No server-side isolation failure was involved: every API response was correctly
    scoped to whoever asked, and nothing was ever sent to the wrong principal. The defect was
    in what the browser held onto locally, so loading the new build fixes it completely. The
    guard now lives in the shared slice runner and at the identity boundary itself, so every
    current loader is covered at once and every future one by default — a per-loader fix has
    to be remembered each time, which is how the gap opened.
  • The Requests page stops going quietly stale. It froze its time window at load and
    nothing ever triggered another read, so it silently stopped being true the moment you
    opened it — and the new live band above it made that worse, reading as "this page is
    current" while the list below was not. Page 1 now refreshes on the same floored cadence
    the Overview uses, through the same shared budget, so a burst of settling requests cannot
    become a query storm. Once you have clicked "Load more" the list is left alone and a
    "N new" pill appears instead — discarding pages you explicitly asked for in order to
    show fresher rows is the worse trade. A probe that fails says so rather than reading as
    "nothing new".
  • A finished request stops claiming to be running. A settled request lingers for a few
    seconds while its durable row is written, and the whole time it said Running with a
    pulsing dot. It now says Finishing, without the live indicator. This was a defect on
    the Overview card too, masked there by a handoff that usually completes quickly.
  • Live in-flight rows on the Requests page. The band of currently-running requests that
    the Overview has always had now appears above the request list as well, with the same
    behaviour and the same degraded-path polling when the event stream is unavailable.
  • The Overview breakdown panel switches between spend and tokens. The by-model,
    by-provider and by-agent breakdown can now be read in tokens instead of dollars, which is
    the figure that actually explains a cost — a model that is cheap per token can still
    dominate a bill on volume. GET /api/analytics/breakdown gains an optional metric
    parameter defaulting to spend, so existing callers are unaffected.
  • The dashboard works on a phone. Every page reflows at phone widths rather than
    demanding a horizontal scroll; overlays and dialogs are reachable sheets that account for
    the on-screen keyboard and the browser's own chrome instead of being pushed off-screen by
    it; and routing rules can be reordered by touch, which previously required a mouse.

Upgrade notes

  • No migrations and no schema change — a drop-in upgrade from 0.11.0.
  • Two token figures deliberately change value. Token totals now count both cost ledgers
    (an escalated cascade attempt burns tokens you were billed for) and include cached tokens
    (input_tokens is recorded as uncached input). The Overview headline will therefore
    read higher than it did for the same range — more so the more caching and cascade
    escalation your traffic does. Historical cost is untouched: no price snapshot is
    recomputed and no recorded cost changes.
  • GET /api/analytics/breakdown gains an optional metric parameter, defaulting to
    spend. Existing callers see no change; its rows now additionally carry the four token
    components and an estimatedTokens figure.
  • Nothing to configure. The account-switch fixes, the Requests-page freshness behaviour
    and the responsive layout all take effect on the new build with no setting to change.

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