docs: routing pages and site facts for gateway v1.5.2 - #9
Conversation
…ersion facts The changelog page gains v1.4.2, v1.4.3, v1.4.4, v1.4.5, v1.5.0 and v1.5.1 sections, sourced from the gateway CHANGELOG and tag dates, in the page's existing form; its description, keywords and "latest tag" line name v1.5.1. Version facts that the site states once and repeats: PRODUCT.version and the structured-data softwareVersion move to 1.5.1; the announcement bar announces v1.5.1 (model_map, failover only when the provider is at fault, the importable runtime) under a new id so it re-shows; the CLI reference's sample "status" and "version" output, the providers endpoint matrix stamp, and the installer's pin and archive-name examples follow.
…r-target timeouts, 429 cooldown, sticky sessions, rule target chains, bounded predicates, attribution headers Every routing page, the configuration reference, the API reference, the concept pages and the changelog now describe the v1.5.2 contract. The one statement this release reverses — a one-target conditional or content-based rule borrowing a healthy sibling when its circuit is open — is corrected on each page that carried it. Site version facts move to 1.5.2.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d37b152bb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| --- | ||
| title: Configuration | ||
| description: "Complete v1.4.x config reference for the Ferro Labs AI Gateway — targets, retry, circuit breakers, all 8 routing strategies, plugins, and MCP servers." | ||
| description: "Complete v1.5.x config reference for the Ferro Labs AI Gateway — targets, timeouts, retry, circuit breakers, all 8 routing strategies, plugins, and MCP servers." |
There was a problem hiding this comment.
Update the in-page schema-version notice
After this metadata bump, the visible callout on lines 19–20 still says the page documents the v1.4.x schema. Because the page now includes v1.5-only keys such as targets[].timeout, strategy.sticky, and target_keys, readers can reasonably conclude those options work with a v1.4 binary and receive startup validation errors. Update the callout to v1.5.x as part of this version change.
Useful? React with 👍 / 👎.
| | system prompt mentions code, user message does not | system content is never inspected | OpenAI | | ||
|
|
||
| If the matched target fails, the client gets that failure; the gateway does not try the others. | ||
| A rule names one target or an ordered chain (`target_keys`). If the matched target fails because the provider was at fault, the next member of its chain is tried; the gateway never reaches for a target the rule did not name, and a rule with one target is exact. |
There was a problem hiding this comment.
Reconcile the target-chain behavior with the page summary
This new description says a failover-safe failure advances through target_keys, but the prominent “In plain words” callout immediately above still says the matched provider's answer is final, that another target is chosen only before the call, and never after a failure. For a multi-target rule those statements are opposites, so an operator reading the summary can misunderstand whether an outage triggers the configured stand-in; update the summary to describe chain-scoped failover.
Useful? React with 👍 / 👎.
| id: 'v152-released', | ||
| content: | ||
| '🚀 <strong>v1.4.1 is out</strong> — embedded dashboard, one unified routing pipeline across all surfaces, and native rerank / moderations / audio / responses endpoints. <a href="/changelog/">See what changed →</a>', | ||
| '🚀 <strong>v1.5.2 is out</strong> — one ranker on every surface, per-target timeouts, 429 cooldown, sticky sessions, rule target chains, and attribution headers on every response. <a href="/changelog/">See what changed →</a>', |
There was a problem hiding this comment.
Qualify the attribution-header announcement
The announcement claims attribution headers appear on every response, while the newly added endpoint reference explicitly says pre-target failures such as plugin denials and unknown models carry none, and pass-through responses emit only X-Gateway-Provider. Clients using the banner's claim to design diagnostics will therefore encounter missing headers on those responses; narrow this to routed responses that attempted a target rather than “every response.”
Useful? React with 👍 / 👎.
…mmary, routed-response wording
Summary
Brings the site up to gateway v1.5.2 (routing depth, tagged 2026-09-03). Every routing page, the configuration reference, the API reference, the concept pages and the changelog now describe the v1.5.2 contract, and the site's version facts move to 1.5.2.
What changed
targets[].timeout; the429park; the typed context-length failover class;strategy.failover_on_status_codes; sticky sessions (strategy.sticky) on load balance and A/B test;target_keyschains and the newuser/stream/has_tools/metadatapredicates on conditional; least-latency as time to first byte per model with expiring samples and a bounded exploration share; cost-optimized on input plus output with weighted tie-break;labelrequired on A/B variants.conditionalorcontent-basedrule no longer borrows a healthy sibling when its circuit is open; it answers503, andtarget_keysis how a rule names a stand-in. Corrected on the routing pages, configuration, concepts, request lifecycle, architecture, FAQ and monitoring.X-Gateway-Provider/-Target/-Model/-Attemptson every routed surface, before a stream's first chunk) and theX-Gateway-Metadatarequest header; streaming notes the headers precede the first chunk; observability marksferro.routing.attemptas emitted.product.ts, JSON-LDsoftwareVersion, announcement bar (v152-released), CLI sample output, installer pin examples, providers matrix stamp;static/llms-full.txtregenerated.Checks
node scripts/check-doc-accuracy.mjs— cleannode scripts/check-frontmatter.mjs— cleantsc— cleandocusaurus build— passes, all links validFollows the v1.5.1 refresh (#8).