SIGN IN SIGN UP

feat: add per-model-family pool cards to dashboard overview

The overview's pool cards aggregate only the account-wide five-hour and
seven-day windows — the per-model-family weekly caps that Anthropic
reports in limits[] as kind=weekly_scoped (e.g. a "Fable" cap) are
invisible there, although routing already overflows between accounts per
family, so the accumulated family headroom of the whole pool cannot be
seen anywhere.

With several accounts sharing such a scoped cap, each account's own page
shows its own percentage, but the pooled view (how many accounts are
exhausted for that family, the pooled average, the earliest reset) had to
be assembled by hand.

The overview now renders one additional pool card per family discovered
in the accounts' weekly_scoped limits: computeScopedPoolUsage classifies
each account carrying the family's entry with the same exclusion
semantics as the existing pools (paused/rate-limited/token-expired and
account-wide 5h/7d exhaustion disqualify too; scoped percent >= 100
becomes the new family_exhausted reason), and the aggregation tail of
computePoolUsage — extracted as finalizePoolResult, behavior-preserving
for the existing cards — yields both averages (including and excluding
exhausted accounts), worst offender, earliest reset and the seven-day
at-risk projection. Accounts without the family's entry are not part of
that pool; display names are trimmed on both discovery and matching so a
padded name still lands in its own pool. Averages stay unweighted (no
plan weight) — a deliberate v1 limit.
M
Matthias Breddin committed
9f38949d89ea2b2c6c1c0ecb375746529cadeea4
Parent: d2e9b53