andyst-dev
2fba6e31bd
fix(agent): collapse provider aliases in the fallback-chain dedup
...
`_entry_identity` compared the fallback entry's provider id as a raw,
lowercased string. A provider reachable under two ids — the canonical
models.dev id (`opencode`) and a legacy rename alias (`opencode-zen`) —
was therefore kept as two separate slots in the fallback chain. That shifts
the chain by one slot and lets an alias slip past the same-backend skip,
so a turn can hit the alias slot, recover from a re-seeded rate-limit pool
against it, and exhaust retries without ever reaching the real paid
fallback.
Normalize the provider id (lazy `normalize_provider` import to avoid
cycles) before computing the entry identity, so aliases collapse onto the
canonical id for dedup. The returned chain still carries each entry's
original provider id — only the identity used for dedup is normalized.
Fixes #85235
2026-10-06 15:00:21 -05:00
..
2026-10-06 10:11:33 -04:00
2026-10-06 23:14:10 +05:30
2026-10-06 04:36:02 -07:00
2026-10-06 23:14:10 +05:30
2026-10-06 12:28:55 -04:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 02:53:00 -07:00
2026-10-06 11:17:11 -04:00
2026-10-06 11:10:45 -04:00
2026-10-06 11:14:34 -04:00
2026-10-06 11:14:42 -04:00
2026-10-06 11:17:11 -04:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:28 -07:00
2026-10-06 06:22:27 -07:00
2026-10-06 05:44:21 -07:00
2026-10-06 05:50:08 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 15:00:21 -05:00
2026-10-06 03:44:49 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:22:27 -07:00
2026-10-05 23:33:41 -07:00
2026-10-06 14:23:00 -04:00
2026-10-06 15:15:06 -04:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 11:10:43 -07:00
2026-10-05 22:38:27 -05:00
2026-10-06 14:57:23 -05:00
2026-10-06 14:57:23 -05:00
2026-10-06 14:57:23 -05:00
2026-10-06 12:28:00 -04:00
2026-10-06 12:27:41 -04:00
2026-10-06 13:23:15 -04:00
2026-10-06 13:23:15 -04:00
2026-10-06 06:22:29 -07:00
2026-10-05 17:24:40 -07:00
2026-10-05 17:24:40 -07:00
2026-10-05 16:06:32 -07:00
2026-10-05 17:11:30 -07:00
2026-10-05 23:33:41 -07:00
2026-10-06 23:14:10 +05:30
2026-10-06 12:46:06 -04:00
2026-10-06 10:11:33 -04:00
2026-10-05 22:07:41 -07:00
2026-10-05 22:07:41 -07:00
2026-10-06 03:44:49 -07:00
2026-10-05 23:33:41 -07:00
2026-10-06 11:10:43 -07:00
2026-10-05 22:07:41 -07:00
2026-10-05 22:07:41 -07:00
2026-10-05 22:07:41 -07:00
2026-10-05 22:07:41 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-10-05 22:07:41 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:20:31 -07:00
2026-10-06 06:20:30 -07:00
2026-10-06 12:08:49 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:21:58 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:28 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:21:09 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:21:58 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:22:28 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 01:06:29 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:38:56 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:21:58 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:20:32 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:27 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:22:28 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:22:28 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 02:53:56 -07:00
2026-10-06 12:59:08 -05:00
2026-10-06 11:19:16 -04:00
2026-10-06 14:51:20 -04:00
2026-10-06 05:17:45 -07:00
2026-10-06 11:15:27 -04:00
2026-10-06 11:15:20 -04:00
2026-10-06 12:27:22 -04:00
2026-10-06 12:30:01 -04:00
2026-10-06 12:28:55 -04:00
2026-10-06 12:28:06 -04:00
2026-10-06 12:27:29 -04:00
2026-10-06 12:03:11 -04:00
2026-10-06 12:00:47 -04:00
2026-10-06 03:44:49 -07:00
2026-10-06 12:28:55 -04:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00