<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ai-gateway — The AI Toolchain</title>
    <link>https://aitoolchain.io/tools/ai-gateway</link>
    <description>New releases and features in ai-gateway, tracked by The AI Toolchain.</description>
    <language>en</language>
    <lastBuildDate>Sat, 29 Aug 2026 17:06:31 GMT</lastBuildDate>
    <atom:link href="https://aitoolchain.io/tools/ai-gateway/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ai-gateway v1.5.0</title>
      <link>https://github.com/ferro-labs/ai-gateway/releases/tag/v1.5.0</link>
      <guid isPermaLink="true">https://github.com/ferro-labs/ai-gateway/releases/tag/v1.5.0</guid>
      <pubDate>Sat, 29 Aug 2026 17:06:31 GMT</pubDate>
      <description>ai-gateway v1.5.0 makes the gateway importable as a Go library via new run.Main() and run.Run() APIs
• Adds run.Main() and run.Run(ctx, opts...) in the new public `run` package, letting Go programs embed the full `ferrogw` server — `run.Run` returns startup and listen errors instead of exiting, and honours context cancellation for graceful shutdown identical to SIGTERM.
• Custom binaries can now be built by blank-importing plugins and calling run.Main(), enabling a plugin-composition workflow without forking the gateway binary.</description>
    </item>
    <item>
      <title>ai-gateway v1.4.2</title>
      <link>https://github.com/ferro-labs/ai-gateway/releases/tag/v1.4.2</link>
      <guid isPermaLink="true">https://github.com/ferro-labs/ai-gateway/releases/tag/v1.4.2</guid>
      <pubDate>Mon, 10 Aug 2026 17:02:22 GMT</pubDate>
      <description>ai-gateway v1.4.2 adds provider registration aliases, an embeddable HTTP facade, and build provenance on GET /health
• Adds `Gateway.RegisterProviderAs` to register one provider under a distinct routing target, allowing multiple credentials for the same canonical provider while preserving all optional capabilities (streaming, embeddings, images, rerank, moderation, audio, discovery, batch, Responses, and generic pass-through).
• Exposes `httpgateway` package to embedding applications, giving embedders access to Files/Batches, Responses, and generic pass-through handlers while keeping their own authentication and tenant policy middleware.
• `GET /health` now returns `version`, `commit`, and `built` build metadata alongside provider status, sourced from `internal/version` (defaults: `dev` / `none` / `unknown` for unstamped local builds).</description>
    </item>
    <item>
      <title>ai-gateway v1.4.0</title>
      <link>https://github.com/ferro-labs/ai-gateway/releases/tag/v1.4.0</link>
      <guid isPermaLink="true">https://github.com/ferro-labs/ai-gateway/releases/tag/v1.4.0</guid>
      <pubDate>Fri, 07 Aug 2026 03:34:22 GMT</pubDate>
      <description>ai-gateway v1.4.0 adds native rerank, moderation, audio, Files, Batches, and Responses API routing with full gateway lifecycle support.
• Adds `POST /v1/rerank` (Cohere v2 contract) as a natively routed surface supporting cohere, together, deepinfra, nvidia-nim, and bedrock — with `top_n` normalised across providers (`0` caps to no results, negative values are rejected).
• Adds `POST /v1/moderations` (OpenAI contract) as a natively routed surface supporting openai and mistral.
• Adds `POST /v1/audio/transcriptions` and `POST /v1/audio/translations` (multipart upload, 25 MiB cap) as natively routed surfaces supporting openai, azure-openai, groq, together, sambanova, deepinfra, mistral, and fireworks.
• Adds `POST /v1/audio/speech` (JSON in, binary audio out; `input` capped at 4096 characters) as a natively routed surface supporting openai, azure-openai, groq, together, deepinfra, and mistral.
• Adds `targets[].models` field to declare models a target serves that are absent from the catalog or live discovery — new catalog IDs, regional/preview names, or self-hosted deployments — making them available in routing and `GET /v1/models`.
• Adds `batch_target` config key to forward `/v1/files*` and `/v1/batches*` transparently to a configured backend (openai, azure-openai, groq, novita, qwen); returns 501 when `batch_target` is unset.
• Adds `POST /v1/responses` (Responses API) as a governed, priced surface with plugins, guardrails, circuit breaker, concurrency, and request log; stateful sub-routes pin to `responses_target` and return 501 when it is unset.
• All four new natively routed surfaces (rerank, moderations, audio, responses) carry the full gateway lifecycle — targets, routing strategy, plugins, circuit breaker, per-target concurrency, metrics, and request logging — replacing the generic pass-through.
• Extends image generation support to gemini (via `generateContent`), deepinfra, and together; extends embeddings support to azure-foundry.
• Adds a Tracing page to the dashboard over the gateway&apos;s OpenTelemetry output.
• Adds a `deploy/` compose stack running the gateway, a collector, a tracing backend, and a mock upstream for end-to-end observability without a provider key.
• Agentic MCP tool loops now run `before_request` plugins (guardrails, rate limiters) on every turn, not only the first — `transform` and `logging`/`metrics` plugin types are deliberately excluded from per-turn execution.
• Unifies routing internals across chat, streaming, embeddings, and image generation so retry (`targets[].retry`), circuit breaking, error classification, metrics, and request logging behave identically on every surface.
Breaking changes:
• `targets[].retry` was previously honoured only under `fallback` routing mode; it is now honoured under all modes, so a target that always fails will produce `attempts` upstream calls where it previously produced one.
• `render.yaml` now sets `GATEWAY_ENV=production`, enabling startup checks that refuse to boot when `ALLOW_UNAUTHENTICATED_PROXY=true` or `CORS_ORIGINS` contains `*`; a Render service carrying either setting will fail its next deploy.
• Outbound HTTP clients no longer follow upstream 3xx redirects — the redirect is returned to the caller as-is; requests that previously succeeded via redirect will now fail until the provider base URL is updated to the redirect target.
• Withheld config map keys in `GET /admin/config` are no longer returned verbatim; each entry is now replaced with `[REDACTED_KEY_&lt;n&gt;]` (sorted, stable index). A `PUT` body containing placeholder key names is rejected. Affected maps: `mcp_servers[].env`, `mcp_servers[].headers`, `observability.exporters[].config`, `observability.tracing.headers`, and undeclared plugin settings.</description>
    </item>
  </channel>
</rss>
