You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -185,7 +185,7 @@ Questions and bug reports are welcome in [GitHub Issues](https://github.com/gitc
185
185
186
186
## Current release
187
187
188
-
ReRouted `0.3.1` ships for Apple Silicon macOS with a Developer ID signature, stapled Apple notarization tickets, and in-app updates backed by stable GitHub Releases. The public API is intentionally limited to health, model discovery, and chat completions; a published third-party client compatibility matrix is still forthcoming.
188
+
ReRouted `0.4.0` ships for Apple Silicon macOS with a Developer ID signature, stapled Apple notarization tickets, and in-app updates backed by stable GitHub Releases. The public API is intentionally limited to health, model discovery, and chat completions; a published third-party client compatibility matrix is still forthcoming.
189
189
190
190
ReRouted is released by [Public Bytes](https://publicbytes.org), a nonprofit building practical technology for public good.
Copy file name to clipboardExpand all lines: docs/architecture.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,9 +71,9 @@ The router supports:
71
71
-`fallback`: members are attempted in their configured order.
72
72
-`round-robin`: each request rotates the starting member, then retains fallback behavior through the remaining members.
73
73
74
-
Timeouts, `408`, `429`, and `5xx` responses are retryable. The per-member timeout defaults to 60 seconds. A route stops when a member returns a non-retryable failure; a single direct model stops after its only member.
74
+
Timeouts, `408`, `429`, and `5xx` responses are retryable. The per-member timeout defaults to 60 seconds. An explicit route stops immediately when any account or member returns a non-retryable failure; a later account lock cannot replace that terminal response.
75
75
76
-
OAuth providers add an account-pool layer beneath model routing. Accounts receive the lowest available alias (`oauth1`, `oauth2`, ...), and both shared ids (`chatgpt/gpt-5.4`) and account-specific ids (`chatgpt/oauth2/gpt-5.4`) can continue through sibling accounts. Quota failures create an account-wide lock using provider reset hints when available; authentication and transient failures use shorter model-scoped cooldowns. Early streaming quota events are inspected before the client stream starts so fallback can still occur. Selection, failure, fallback, locked-account skips, and terminal exhaustion are written as structured logs.
76
+
OAuth providers add an account-pool layer beneath model routing. Accounts receive monotonic, never-reused aliases (`oauth1`, `oauth2`, ...). Model discovery advertises one canonical pooled id such as `chatgpt/gpt-5.4`; account-qualified ids such as `chatgpt/oauth2/gpt-5.4` and legacy stored-account ids remain resolvable but are not advertised. Quota failures create an account-wide lock using provider reset hints when available; authentication and transient failures use shorter model-scoped cooldowns. Early streaming quota events are inspected before the client stream starts so fallback can still occur. Selection, failure, fallback, locked-account skips, and terminal exhaustion are written as structured logs.
77
77
78
78
## Provider adapters
79
79
@@ -83,7 +83,7 @@ OAuth providers add an account-pool layer beneath model routing. Accounts receiv
83
83
-`chatgpt.js` translates chat-completion requests to the ChatGPT Codex Responses surface and normalizes Responses SSE.
84
84
-`claude.js` translates OpenAI messages and tools to Anthropic Messages, applies the current OAuth client contract, and converts JSON/SSE back to OpenAI shapes.
85
85
-`antigravity.js` translates Gemini-style upstream requests and SSE.
86
-
-`xai.js`uses an OpenAI-compatible chat surface with xAI OAuth credentials.
86
+
-`xai.js`translates chat-completion requests to the xAI subscription Responses surface and normalizes its forced SSE stream.
87
87
88
88
OAuth access-token refreshes are persisted back to the provider record when an adapter returns updated tokens.
0 commit comments