teknium1
964fbaae2c
fix(auth): status snapshot peeks the credential pool instead of leasing it
...
`get_codex_auth_status` / `get_xai_oauth_auth_status` back every credential-gated
listing (`/model` picker rows, `hermes doctor`, dashboard auth cards). The shared
`_pool_first_oauth_status` read the pool with `select()`, which is a runtime lease:
it refreshes an expiring single-use token and, when that speculative POST fails
transiently (503, endpoint unreachable), benches the entry with a persisted
exhaustion cooldown. The picker then rendered the provider as an unconfigured
skeleton ("needs setup" / "0 models") while the runtime resolver kept serving
the same credential. On a round-robin pool the read also rotated and persisted
the priority order.
Read the pool with `peek()`: no refresh, no accounting, no rotation, no persist.
Refreshing stays with the runtime resolver reached through the `resolve`
fallback, whose failures persist nothing (same design as the Nous status).
Slimmer redo of #114379 by @Finn763 (observe flag threaded through four pool
methods plus non-refreshing resolvers); fixtures adapted from that PR.
Live: pool-only openai-codex entry, expired access token, stubbed token endpoint
returning 503 — before: 1 refresh POST, entry persisted `exhausted`,
`has_available()` False, picker row gone; after: 0 POSTs, entry untouched,
`has_available()` True, picker row present with the catalog. Runtime `select()`
still refreshes (control).
Co-authored-by: finn763 <165816600+finn763@users.noreply.github.com >
2026-09-18 10:12:25 -07:00
..
2026-09-13 09:40:44 -07:00
2026-09-18 09:19:04 -07:00
2026-09-15 21:46:37 -07:00
2026-09-17 11:21:42 -07:00
2026-09-18 09:43:19 -07:00
2026-09-14 09:02:28 -07:00
2026-09-15 04:11:11 -07:00
2026-09-18 09:50:52 -07:00
2026-09-18 09:49:46 -07:00
2026-09-15 04:11:11 -07:00
2026-09-16 16:48:42 -07:00
2026-09-15 03:58:44 -07:00
2026-09-15 03:58:44 -07:00
2026-09-17 00:02:09 -07:00
2026-09-17 12:28:25 +05:30
2026-09-11 03:45:33 +05:30
2026-09-15 20:44:42 +05:30
2026-09-15 04:57:29 -07:00
2026-09-18 10:00:29 -07:00
2026-09-16 14:34:59 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 10:12:25 -07:00
2026-09-16 14:34:59 -07:00
2026-09-12 22:07:41 -07:00
2026-09-15 03:38:29 -07:00
2026-09-12 22:07:41 -07:00
2026-09-16 14:34:59 -07:00
2026-09-18 10:00:29 -07:00
2026-09-17 00:34:50 -05:00
2026-09-15 18:26:38 -07:00
2026-09-15 19:06:54 -07:00
2026-09-16 16:53:40 -07:00
2026-09-15 18:24:22 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 09:35:49 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 01:43:35 +05:30
2026-09-16 17:49:48 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 14:52:26 +05:30
2026-09-17 14:24:53 -04:00
2026-09-15 18:25:46 -07:00
2026-09-18 01:43:35 +05:30
2026-09-17 09:06:59 -07:00
2026-09-12 22:00:02 -07:00
2026-09-18 01:43:35 +05:30
2026-09-15 04:08:53 -07:00
2026-09-18 09:55:21 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 18:36:22 +05:30
2026-09-13 20:50:10 -07:00
2026-09-15 19:05:29 -07:00
2026-09-15 19:05:29 -07:00
2026-09-15 06:29:50 -07:00
2026-09-12 08:25:36 -07:00
2026-09-13 20:41:41 -07:00
2026-09-12 16:17:04 -07:00
2026-09-18 09:44:59 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 21:47:48 -07:00
2026-09-15 05:25:39 -07:00
2026-09-15 00:41:13 +05:30
2026-09-18 09:41:02 -07:00
2026-09-18 09:41:02 -07:00
2026-09-17 09:06:59 -07:00
2026-09-16 08:57:18 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 05:09:06 -07:00
2026-09-18 17:10:12 +02:00
2026-09-15 05:38:31 -07:00
2026-09-18 09:38:01 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-16 23:13:20 -04:00
2026-09-10 01:25:45 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 09:56:28 -07:00
2026-09-13 05:09:06 -07:00
2026-09-16 17:02:34 -07:00
2026-09-16 23:19:45 +05:30
2026-09-18 21:47:13 +05:30
2026-09-15 12:06:08 -07:00
2026-09-17 19:00:40 -04:00
2026-09-13 20:51:06 -07:00
2026-09-12 21:39:10 -07:00
2026-09-14 08:10:36 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 04:12:13 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 00:33:03 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 08:57:18 -07:00
2026-09-15 03:44:36 -07:00
2026-09-15 04:07:13 -07:00
2026-09-18 09:57:38 -07:00
2026-09-18 09:25:59 -07:00
2026-09-18 10:01:01 -07:00
2026-09-16 16:43:08 -07:00
2026-09-18 10:00:29 -07:00
2026-09-17 20:56:27 +05:30
2026-09-16 00:32:15 -07:00
2026-09-18 15:40:37 +05:30
2026-09-16 16:58:43 -07:00
2026-09-18 10:04:23 -07:00
2026-09-14 16:14:33 -07:00
2026-09-16 16:51:45 -07:00
2026-09-18 09:29:44 -07:00
2026-09-18 09:48:41 -07:00
2026-09-18 09:29:44 -07:00
2026-09-15 18:35:32 -07:00
2026-09-15 18:34:40 -07:00
2026-09-15 18:33:43 -07:00
2026-09-09 12:18:58 -07:00
2026-09-18 09:50:19 -07:00
2026-09-16 16:56:22 -07:00
2026-09-17 20:56:27 +05:30
2026-09-15 04:12:13 -07:00
2026-09-18 10:10:05 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 09:19:19 -07:00
2026-09-15 18:35:59 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 04:12:13 -07:00
2026-09-16 16:18:17 -05:00
2026-09-18 10:11:46 -07:00
2026-09-18 09:38:34 -07:00
2026-09-17 08:44:33 -07:00
2026-09-16 15:16:09 -05:00
2026-09-18 10:01:01 -07:00
2026-09-18 10:11:46 -07:00
2026-09-15 19:06:54 -07:00
2026-09-18 09:23:13 -07:00
2026-09-15 03:38:29 -07:00
2026-09-17 09:03:29 -07:00
2026-09-16 17:11:01 -07:00
2026-09-15 05:34:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-10 04:22:38 -07:00
2026-09-13 20:54:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 03:39:45 -07:00
2026-09-18 15:40:37 +05:30
2026-09-18 15:40:37 +05:30
2026-09-18 09:41:02 -07:00
2026-09-18 15:40:37 +05:30
2026-09-10 09:11:00 -07:00
2026-09-12 01:35:05 -07:00
2026-09-12 01:35:05 -07:00
2026-09-15 18:58:02 -07:00
2026-09-18 15:40:37 +05:30
2026-09-14 22:01:32 +00:00
2026-09-11 03:45:31 +05:30
2026-09-10 18:11:25 -07:00
2026-09-16 18:12:34 -07:00
2026-09-16 00:32:15 -07:00
2026-09-18 09:43:19 -07:00
2026-09-16 17:15:38 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-18 09:43:19 -07:00
2026-09-18 10:01:01 -07:00
2026-09-15 18:48:59 -07:00
2026-09-17 09:03:29 -07:00
2026-09-16 17:08:25 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 18:36:20 -07:00
2026-09-11 03:45:31 +05:30
2026-09-16 00:32:15 -07:00
2026-09-13 14:33:11 -07:00
2026-09-16 14:21:14 -07:00
2026-09-16 14:34:59 -07:00
2026-09-18 10:01:01 -07:00
2026-09-16 14:34:22 -07:00
2026-09-18 09:38:01 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 15:40:37 +05:30
2026-09-18 15:40:37 +05:30
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:11 -07:00
2026-09-18 09:52:03 -07:00
2026-09-15 06:36:19 -07:00
2026-09-18 01:43:35 +05:30
2026-09-14 19:49:12 +05:30
2026-09-15 03:44:36 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:50 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 04:12:13 -07:00
2026-09-18 10:11:14 -07:00
2026-09-15 18:30:05 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-17 21:17:15 +05:30
2026-09-16 17:02:13 -07:00
2026-09-11 06:37:27 -07:00
2026-09-09 13:30:28 -07:00
2026-09-11 06:24:54 -07:00
2026-09-15 18:25:46 -07:00
2026-09-13 05:32:38 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 21:47:13 +05:30
2026-09-18 09:47:06 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-12 08:25:54 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 09:38:34 -07:00
2026-09-11 03:45:31 +05:30
2026-09-12 21:47:53 -07:00
2026-09-13 05:21:02 -07:00
2026-09-14 08:10:36 -07:00
2026-09-16 17:58:25 +00:00
2026-09-15 03:53:13 -07:00
2026-09-15 18:55:47 -07:00
2026-09-16 00:32:15 -07:00
2026-09-15 14:52:26 +05:30
2026-09-11 06:24:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-12 08:34:43 -07:00
2026-09-16 16:42:47 -07:00
2026-09-16 16:42:47 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 17:09:28 +02:00
2026-09-17 00:02:09 -07:00
2026-09-17 20:35:22 -07:00
2026-09-13 05:08:20 -07:00
2026-09-18 17:09:28 +02:00
2026-09-16 17:44:36 -07:00
2026-09-18 09:38:01 -07:00
2026-09-16 17:13:56 -07:00
2026-09-17 00:11:27 -07:00
2026-09-18 17:09:28 +02:00
2026-09-17 00:02:09 -07:00
2026-09-18 17:09:28 +02:00
2026-09-15 04:12:13 -07:00
2026-09-18 17:09:28 +02:00
2026-09-18 17:09:28 +02:00
2026-09-10 11:48:01 -07:00
2026-09-13 19:19:32 -07:00
2026-09-09 21:16:40 +05:30
2026-09-15 03:40:26 -07:00
2026-09-16 08:57:18 -07:00
2026-09-18 09:43:19 -07:00
2026-09-15 04:37:41 -07:00
2026-09-17 00:34:50 -05:00
2026-09-17 00:34:50 -05:00
2026-09-14 08:10:36 -07:00
2026-09-18 09:20:07 -07:00
2026-09-12 18:35:21 -07:00
2026-09-15 20:44:42 +05:30
2026-09-18 21:47:13 +05:30
2026-09-11 06:37:27 -07:00
2026-09-16 17:11:08 -07:00
2026-09-13 21:30:02 -07:00
2026-09-13 20:55:29 -07:00
2026-09-15 18:27:06 -07:00
2026-09-16 16:43:08 -07:00
2026-09-09 02:36:00 -07:00