kshitijk4poor
d43863f005
fix: widen stale circuit breaker to non-streaming path + all provider-swap resets
...
Review findings on the salvaged #60332 breaker, fixed as follow-ups:
- restore_primary_runtime() now resets the streak (third provider-swap
path; without it a recovered primary was short-circuited before a
single attempt and could never be re-proven healthy except via /model).
- interruptible_api_call (non-streaming) now carries the same breaker
(guard at entry, bump on stale_call_kill, reset on success). Quiet-mode
/ subagent / headless sessions — the profile most like #58962 's
unattended 494-failure session — take this path and had the identical
infinite stale-retry class.
- Partial-stream stub return now resets the streak (chunks were received,
provider demonstrably responsive).
- Consolidated the triple-duplicated counter arithmetic into shared
helpers (_stale_streak/_bump_stale_streak/_reset_stale_streak/
_check_stale_giveup) with one canonical comment block; error message
now says 'consecutive stale attempts' (the counter counts kills, not
turns — a single turn can produce several).
4 new tests (restore resets / no-op restore keeps latch / non-streaming
short-circuit / non-streaming success reset).
2026-07-08 01:50:14 +05:30
..
2026-04-07 17:19:07 -07:00
2026-05-19 17:27:24 -07:00
2026-06-19 11:37:51 -07:00
2026-07-01 03:18:41 -07:00
2026-06-07 02:15:23 -07:00
2026-05-28 22:26:25 -07:00
2026-06-28 01:15:21 -07:00
2026-06-27 21:07:53 -07:00
2026-06-27 19:37:33 -07:00
2026-05-24 15:14:13 -07:00
2026-06-28 00:57:42 -07:00
2026-06-30 01:43:40 -07:00
2026-07-01 00:20:32 -07:00
2026-04-19 22:43:09 -07:00
2026-05-17 02:29:41 -07:00
2026-05-28 22:26:25 -07:00
2026-06-16 06:23:24 -07:00
2026-06-20 11:38:01 -07:00
2026-05-21 12:49:21 +05:30
2026-06-22 14:54:53 -07:00
2026-04-24 03:10:19 -07:00
2026-06-30 15:30:06 -07:00
2026-06-21 11:35:09 -07:00
2026-06-08 09:41:34 -07:00
2026-07-07 02:39:54 -07:00
2026-07-07 02:39:54 -07:00
2026-05-09 21:06:19 -07:00
2026-05-28 22:26:25 -07:00
2026-05-27 01:52:34 -07:00
2026-06-18 21:37:52 -07:00
2026-05-09 12:28:42 -07:00
2026-05-28 22:26:25 -07:00
2026-06-25 12:56:05 -07:00
2026-05-28 22:26:25 -07:00
2026-06-25 13:08:18 -07:00
2026-07-03 12:51:12 +05:30
2026-05-28 22:26:25 -07:00
2026-04-07 17:19:07 -07:00
2026-05-28 22:26:25 -07:00
2026-05-20 11:44:10 -07:00
2026-04-27 08:35:50 -07:00
2026-06-27 19:23:15 -07:00
2026-04-17 12:32:03 -07:00
2026-07-05 03:14:55 -07:00
2026-05-28 22:26:25 -07:00
2026-07-02 04:51:56 +05:30
2026-07-07 14:54:50 +05:30
2026-06-12 01:06:46 -07:00
2026-07-02 05:33:25 -07:00
2026-06-21 18:05:07 -07:00
2026-04-30 11:18:39 -07:00
2026-05-29 19:23:05 -07:00
2026-07-01 01:08:27 -07:00
2026-05-28 22:26:25 -07:00
2026-06-27 04:39:26 -07:00
2026-06-24 23:02:48 -05:00
2026-07-01 16:17:46 +05:30
2026-06-27 19:07:02 -07:00
2026-06-22 18:23:21 -05:00
2026-06-25 12:56:05 -07:00
2026-07-06 12:46:20 -07:00
2026-05-02 02:09:46 -07:00
2026-07-05 13:42:46 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-27 11:30:55 -07:00
2026-05-05 05:00:05 -07:00
2026-05-28 22:26:25 -07:00
2026-05-10 22:28:01 -07:00
2026-06-07 22:17:35 -07:00
2026-06-17 01:04:26 +08:00
2026-06-16 10:37:37 -07:00
2026-07-05 21:36:37 -07:00
2026-07-01 05:31:09 -07:00
2026-06-30 12:07:01 -07:00
2026-06-07 21:50:57 -07:00
2026-06-18 15:46:19 +05:30
2026-06-06 13:18:18 +05:30
2026-06-12 12:21:29 -07:00
2026-07-01 05:06:00 -07:00
2026-05-25 01:47:55 -07:00
2026-06-28 01:15:21 -07:00
2026-07-01 13:36:50 +05:30
2026-07-06 12:46:20 -07:00
2026-07-02 13:41:53 +05:30
2026-06-30 03:27:41 -07:00
2026-07-01 02:18:56 -07:00
2026-06-21 22:43:48 -07:00
2026-05-28 22:26:25 -07:00
2026-04-07 17:19:07 -07:00
2026-05-31 06:14:32 -07:00
2026-06-07 22:22:01 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 22:51:25 -07:00
2026-07-05 06:29:45 -07:00
2026-04-22 18:34:25 -07:00
2026-07-06 02:36:52 +05:30
2026-04-16 16:36:33 -07:00
2026-05-12 00:16:45 +05:30
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-06-19 18:06:38 -04:00
2026-06-05 20:59:36 -05:00
2026-05-28 22:26:25 -07:00
2026-04-25 09:51:39 -07:00
2026-07-08 01:50:14 +05:30
2026-07-08 01:50:14 +05:30
2026-05-28 22:26:25 -07:00
2026-07-02 06:36:20 +05:30
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-06-28 02:05:20 -07:00
2026-05-13 17:32:22 -07:00
2026-04-24 05:35:43 -07:00
2026-06-27 04:39:26 -07:00
2026-05-27 05:43:20 -07:00
2026-06-13 14:35:00 -07:00
2026-06-10 12:39:44 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 14:36:58 -07:00
2026-07-05 06:42:28 -07:00
2026-05-19 17:27:24 -07:00
2026-07-06 02:36:52 +05:30
2026-06-24 02:15:57 +05:30
2026-05-29 03:44:49 -07:00
2026-05-19 20:49:11 +01:00
2026-06-27 22:03:14 -07:00
2026-04-15 15:03:28 -07:00
2026-05-28 22:26:25 -07:00
2026-06-07 21:50:57 -07:00