Peter Steinberger
901b0652bf
test: tighten embedded fallback assertions
2026-05-09 18:08:07 +01:00
hekunwang
7236d6487e
fix(agents): classify stream_read_error as transient ( #79692 )
...
* fix(agents): classify stream_read_error as transient
* fix: classify stream read errors as transient (#79692 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-09 06:18:04 -04:00
Peter Steinberger
9ef37d1907
test: tighten assertions and harness coverage
2026-05-08 05:28:12 +01:00
Peter Steinberger
c9b9887583
test: speed up embedded runner e2e mocks
2026-04-27 11:50:37 +01:00
Peter Steinberger
f9207e5d39
test(agents): cover defaults fallback timeout
2026-04-25 01:42:38 +01:00
EVA
40be5ad581
fix: harden GPT-5 runtime paths
...
Co-authored-by: EVA <100yenadmin@users.noreply.github.com >
2026-04-24 08:55:52 +01:00
Peter Steinberger
3ae15cd746
test: cover codex transport fallback path
2026-04-23 17:58:19 +01:00
Peter Steinberger
cbe124689d
test: share embedded runner e2e mocks
2026-04-18 23:42:15 +01:00
Peter Steinberger
da22866030
test: dedupe embedded fallback fixtures
2026-04-18 22:24:03 +01:00
bwjoke
f7422e1fbc
fix(failover): detect bare leading 402 assistant errors ( #47579 )
...
Merged via squash.
Prepared head SHA: ff336a0d97
Co-authored-by: bwjoke <1284814+bwjoke@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-04-17 22:06:55 +03:00
Vincent Koc
5cd9c2d2de
fix(cycles): bypass context engine and config barrels
2026-04-11 23:12:24 +01:00
Ted Li
d78d91f8c2
fix: continue fallback after OpenRouter no-endpoints 404 ( #61472 ) (thanks @MonkeyLeeT)
...
* Fix OpenRouter no-endpoints fallback classification
* Restore bare model-not-found matcher coverage
* Preserve model does-not-exist fallback classification
* Narrow does-not-exist model-not-found matching
* Keep runtime model-not-found matcher strict
* style(agents): drop model matcher comment
* fix: continue fallback after OpenRouter no-endpoints 404 (#61472 ) (thanks @MonkeyLeeT)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-10 13:46:14 +05:30
Peter Steinberger
9afcbbec5e
refactor(auth): extract persisted auth store helpers
2026-04-06 14:25:06 +01:00
Peter Steinberger
d007559c38
test: trim more agent e2e partial mocks
2026-04-03 20:50:57 +01:00
Peter Steinberger
87b7bb1d14
fix(agents): harden rate-limit fallback handoff
...
Co-authored-by: TechFath3r <thetechfath3r@gmail.com >
2026-04-03 18:28:56 +09:00
Forgely3D
4fa11632b4
fix: escalate to model fallback after rate-limit profile rotation cap ( #58707 )
...
* fix: escalate to model fallback after rate-limit profile rotation cap
Per-model rate limits (e.g. Anthropic Sonnet-only quotas) are not
relieved by rotating auth profiles — if all profiles share the same
model quota, cycling between them loops forever without falling back
to the next model in the configured fallbacks chain.
Apply the same rotation-cap pattern introduced for overloaded_error
(#58348 ) to rate_limit errors:
- Add `rateLimitedProfileRotations` to auth.cooldowns config (default: 1)
- After N profile rotations on a rate_limit error, throw FailoverError
to trigger cross-provider model fallback
- Add `resolveRateLimitProfileRotationLimit` helper following the same
pattern as `resolveOverloadProfileRotationLimit`
Fixes #58572
* fix: cap prompt-side rate-limit failover (#58707 ) (thanks @Forgely3D)
* fix: restore latest-main gates for #58707
---------
Co-authored-by: Ember (Forgely3D) <ember@forgely.co >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-04-01 17:54:10 +09:00
Peter Steinberger
418fa12dfa
fix: make overload failover configurable
2026-03-31 21:34:35 +01:00
openperf
56b5ba0dcb
fix: address security and review feedback
...
- Fix CWE-209: use static safe message instead of raw provider error text
- Fix CWE-117: sanitize provider/model in logs via sanitizeForLog
- Hide CLI hints from external channels via shouldSurfaceToControlUi
- Move overload cap check before advanceAuthProfile to save setup latency
- Export MAX_LIVE_SWITCH_RETRIES as module-level constant
- Use exact toBe() assertions in tests
- Correct failover decision label to fallback_model
2026-03-31 20:25:09 +05:30
openperf
1fcd179d8c
fix(gateway): prevent session death loop on overloaded fallback
...
- Add MAX_LIVE_SWITCH_RETRIES=2 guard in agent-runner-execution.ts
- Add MAX_OVERLOAD_PROFILE_ROTATIONS=1 cap in run.ts for overloaded errors
- Return kind:final with user-visible error on retry exhaustion
- Escalate to cross-provider fallback instead of exhausting same-provider profiles
Fixes #58348
2026-03-31 20:25:09 +05:30
Peter Steinberger
6f6468027a
refactor: dedupe test and runtime seams
2026-03-24 23:33:30 +00:00
Luke
d98e3a1ea9
Tests: fix fresh-main regressions ( #53011 )
...
* Tests: fix fresh-main regressions
* Tests: avoid chat notice cache priming
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-23 09:54:50 -07:00
Peter Steinberger
e84ca730a3
test: stabilize e2e module isolation
2026-03-23 11:46:54 +00:00
Peter Steinberger
abf2157b18
fix: sync agent and autoreply e2e updates
2026-03-23 01:33:40 -07:00
Altay
531e8362b1
Agents: add fallback error observations ( #41337 )
...
Merged via squash.
Prepared head SHA: 852469c82f
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-10 01:12:10 +03:00
Vincent Koc
e4d80ed556
CI: restore main detect-secrets scan ( #38438 )
...
* Tests: stabilize detect-secrets fixtures
* Tests: fix rebased detect-secrets false positives
* Docs: keep snippets valid under detect-secrets
* Tests: finalize detect-secrets false-positive fixes
* Tests: reduce detect-secrets false positives
* Tests: keep detect-secrets pragmas inline
* Tests: remediate next detect-secrets batch
* Tests: tighten detect-secrets allowlists
* Tests: stabilize detect-secrets formatter drift
2026-03-07 10:06:35 -08:00
Peter Steinberger
02b3e85eac
refactor(agents): dedupe embedded fallback e2e helpers
2026-03-07 17:58:31 +00:00
Altay
6e962d8b9e
fix(agents): handle overloaded failover separately ( #38301 )
...
* fix(agents): skip auth-profile failure on overload
* fix(agents): note overload auth-profile fallback fix
* fix(agents): classify overloaded failures separately
* fix(agents): back off before overload failover
* fix(agents): tighten overload probe and backoff state
* fix(agents): persist overloaded cooldown across runs
* fix(agents): tighten overloaded status handling
* test(agents): add overload regression coverage
* fix(agents): restore runner imports after rebase
* test(agents): add overload fallback integration coverage
* fix(agents): harden overloaded failover abort handling
* test(agents): tighten overload classifier coverage
* test(agents): cover all-overloaded fallback exhaustion
* fix(cron): retry overloaded fallback summaries
* fix(cron): treat HTTP 529 as overloaded retry
2026-03-07 01:42:11 +03:00