+**WorkBuddy 单 provider 多账号池 + 配额守护自动切换 + 每账号独立指纹(#571)**:`workbuddy-login` provider 下可登录多个账号组成池,每账号**独立设备指纹**(`X-Device-Id` per-account,避免网关风控关联);账号列表显示脱敏手机号(如 `183****5600`)替代不可读 uid,可手动「设为当前」/「移除」。**配额守护**:后台每 ≥60s 查各账号 `get-user-resource` 剩余积分,某账号总剩余 < 阈值(默认 20,设置项可调)即标记耗尽、自动 sticky 切到下一个有额度账号,对 Codex 透明(独立于额度面板开关)。**反应式失败转移**:选中账号 refresh token 被网关拒或凭证丢失时,标记 5min 退避并重试池里下一个账号;配额守护遇 401/403(auth 失效)标记 1h 退避 —— 两条路径共同闭环,单账号失效不再撞死整个池。老单文件 `workbuddy-oauth.json` + 全局 `workbuddy-device-id` 首次启动自动迁移为池首账号(无缝)。/ **WorkBuddy single-provider multi-account pool + quota-guard auto-switch + per-account fingerprint (#571)**: under one `workbuddy-login` provider you can log into multiple accounts forming a pool, each with an **independent device fingerprint** (per-account `X-Device-Id` to avoid gateway risk-control correlation); the account list shows masked phone numbers (e.g. `183****5600`) instead of unreadable uids, with manual "set active" / "remove". **Quota guard**: a background task (≥60s throttle) queries each account's `get-user-resource` remaining credits; when an account's total remaining drops below the threshold (default 20, configurable) it is marked exhausted and the sticky selector auto-switches — transparent to Codex (independent of the quota-panel toggle). **Reactive failover**: when the selected account's refresh token is rejected or its credential is lost, it is marked with a 5min backoff and the next pool account is tried; the quota guard marks 1h backoff on 401/403 (auth failure) — both paths close the loop so a single dead account no longer stalls the whole pool. The legacy single-file `workbuddy-oauth.json` + global `workbuddy-device-id` auto-migrate into the pool's first account on first launch (seamless).
0 commit comments