feat(usage): poll the OAuth usage endpoint as fast as its measured rate limit allows
Measured 2026-09-16 against the live endpoint: a clean burst allows exactly 5 requests before a 429, with Retry-After: 300 (a flat 5-req/5-min quota, no ratelimit-* headers on either the 200s or the 429s). Lowered UsagePollIntervalActiveSeconds/UsagePollIntervalIdleSeconds default from 300/900 to 120 each (clamp floor 90, up from 60) — leaves ~2.5 requests of headroom per window for manual refreshes and any other consumer of the same OAuth token, unlike 60s which consumes the whole quota by itself. The quota is a flat per-account limit, not tied to ClaudeDo's own running/idle state, so both keys share the same default now (kept separate for config compatibility). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
committed by
mika kuns
co-authored by
Claude Sonnet 5
parent
9a41bed0f5
commit
50b6b56f87
@@ -254,7 +254,10 @@ non-obvious, behaviour-changing. A fixed bug is git history, not a finding.
|
||||
Both edit the DI-singleton `WorkerConfig` in place *and* persist via their own `SaveKey` call
|
||||
(`SaveClaudeBin`/`SaveTicketApiBaseUrl`), so each applies without a restart. Every other field
|
||||
here is hand-edit only.
|
||||
- `usage_poll_interval_seconds` (60, clamped to min 15 on load)
|
||||
- `usage_poll_interval_active_seconds` / `usage_poll_interval_idle_seconds` (120 each, clamped to
|
||||
min 90 on load) — measured 2026-09-16: the endpoint allows exactly 5 requests per 5-minute
|
||||
window, then 429s with `Retry-After: 300`; 120s leaves margin for manual refreshes and other
|
||||
consumers of the same OAuth token, 60s eats the whole quota (see [usage-monitoring](../../docs/explore-notes/usage-monitoring.md)).
|
||||
- `online_inbox` — `enabled` (false by default; when false the entire `Online/` stack is not registered), `api_base_url` (must be HTTPS or loopback, validated at startup), `poll_interval_seconds` (60), `zitadel.authority`/`client_id`/`scopes`. The refresh token is **not** in this file — DPAPI-encrypted at `~/.claudeDo/online-inbox.token`.
|
||||
|
||||
Per-list config (`list_config` in DB) provides defaults for `model`, `system_prompt`,
|
||||
|
||||
Reference in New Issue
Block a user