Skip to content

v0.7.0

Choose a tag to compare

@FinbackYu FinbackYu released this 09 Aug 15:27
· 14 commits to main since this release

Added

  • Add a provider-usage cache and detached-refresh framework, with the first
    adapter for DeepSeek's official API balance. The active model resolves to
    its provider table, cache files are isolated by a one-way API-key
    fingerprint, the render hot path never performs network I/O, and custom
    DeepSeek-compatible proxies are refused so credentials only reach the
    fixed official balance endpoint. The footer renders currency as compact
    balance text (DeepSeek Balance ¥N.NN) instead of inventing a quota
    percentage or relying on unexplained abbreviations. DeepSeek also uses the
    local all-agent cost path, so ready facts compose as
    DeepSeek Balance ¥N.NN · Session Cost ≈¥N.NN for CNY accounts (and the
    matching USD form for USD accounts). Cost selects the official price table
    from the balance response's currency and remains visible by itself when the
    balance is unavailable but that account currency is known; an unknown
    currency fails closed instead of guessing the symbol.
  • Add local all-agent session-cost estimates for supported models on the
    official direct DeepSeek, OpenAI, and Anthropic APIs. A dedicated content-free
    usage.record ledger reconstructs main and subagent history without
    disturbing live metrics, waits for every wire to catch up, and fails closed
    for unknown models or compatible proxies. The footer renders the full brand
    and scope (DeepSeek Session Cost ≈¥N.NN / OpenAI Session Cost ≈$N.NN /
    Anthropic Session Cost ≈$N.NN),
    keeping estimates distinct from balances, admin billing, and subscriptions.

Changed

  • Format CNY session costs with two decimal places once they reach one fen,
    while retaining additional precision below that boundary so small nonzero
    costs do not collapse to ¥0.00.

Fixed

  • Follow in-session effort and model switches from the per-request ground
    truth: hosts stamp every llm.request wire row with the thinkingEffort
    and modelAlias the request actually ran with, so a switch that emits no
    new config.update/profile.bind row — the host's own footer (e.g. the
    line-2 context figures) can lag behind here — now updates the HUD on the
    next request. The one-time backfill scan version is bumped so sessions
    tracked by earlier HUD builds re-project effort and model from their
    request journal too.