-| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
-| ------------------------- | :-----: | :---------: | :---------------: |
-| 🌐 Provider | 290 | **342** | altri in arrivo |
-| 🧠 Modelli documentati | 1185 | **1202** | — |
-| 🖼️ Modality Bridge | — | 🆕 vision | video |
-| 📡 Catalogo gratuito Radar| — | 🆕 opt-in | — |
-| ⚖️ Scheduling quota-aware | — | — | 🔭 prossimamente|
-| 📊 Telemetria delle quote | — | — | 🔭 prossimamente|
+| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
+| -------------------------- | :-----: | :---------: | :--------------: |
+| 🌐 Provider | 290 | **342** | altri in arrivo |
+| 🧠 Modelli documentati | 1185 | **1202** | — |
+| 🖼️ Modality Bridge | — | 🆕 vision | video |
+| 📡 Catalogo gratuito Radar | — | 🆕 opt-in | — |
+| ⚖️ Scheduling quota-aware | — | — | 🔭 prossimamente |
+| 📊 Telemetria delle quote | — | — | 🔭 prossimamente |
**→ [Roadmap](../../../ROADMAP.md) — verso `v3.9.0 LTS`**
@@ -193,11 +194,12 @@
+
## 🆓 Funziona subito dopo l'installazione — nessuna chiave, nessuna configurazione
-

+

```bash
# Fresh install, zero credentials — `auto` already works:
@@ -206,7 +208,7 @@ curl http://localhost:20128/v1/chat/completions \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
-
Preferisci uno specifico backend gratuito? Chiamalo direttamente, ad esempio `oc/…` (OpenCode Free) o `felo/…` (Felo). Poi passa a `auto` e lascia che sia OmniRoute a scegliere.
+
Preferisci uno specifico backend gratuito? Chiama direttamente `oc/…` (OpenCode Free). Poi passa a `auto` e lascia che sia OmniRoute a scegliere.
📦 Script di avvio rapido pronti da copiare per **Python, Node.js, PHP e cURL** → [`examples/quickstart/`](../../../examples/quickstart/)
@@ -215,6 +217,7 @@ curl http://localhost:20128/v1/chat/completions \
@@ -227,6 +230,7 @@ curl http://localhost:20128/v1/chat/completions \
@@ -323,6 +327,7 @@ curl http://localhost:20128/v1/chat/completions \
+
## 🎯 Combo — La funzionalità di punta
@@ -393,6 +398,7 @@ Tutte e **19** le strategie — combinabili liberamente per ogni passaggio della
+
## 🏆 Cosa distingue OmniRoute
@@ -404,6 +410,7 @@ Tutte e **19** le strategie — combinabili liberamente per ogni passaggio della
+
## 💚 Supporta OmniRoute
OmniRoute è distribuito con licenza MIT e mantenuto apertamente. Se ti fa risparmiare tempo o denaro, ecco come aiutarlo a restare indipendente — scegli ciò che preferisci. Le sponsorizzazioni non influenzano mai la priorità del routing: acquistano visibilità, non posizionamento.
@@ -465,6 +472,7 @@ Radar è opt-in e usa soltanto richieste GET. Il client OmniRoute non carica pro
@@ -497,6 +505,7 @@ Radar è opt-in e usa soltanto richieste GET. Il client OmniRoute non carica pro
+
## 🤖 CLI e agenti di coding compatibili
> Una sola configurazione — `http://localhost:20128/v1` — e **qualsiasi** IDE o CLI AI può usare modelli gratuiti e a basso costo.
@@ -915,6 +924,7 @@ Usali solo con client che non possono aggiungere `Authorization: Bearer ...`. L'
+
## 📦 Altri metodi di installazione — Docker, sorgente, pnpm, Arch
**🐳 Docker**
@@ -926,11 +936,11 @@ docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
`:latest` segue la versione SemVer stabile **pubblicata** più alta. Non segue il branch git `main`. Per GitOps, fissa `:X.Y.Z`. Vedi [Canali di release Docker](../../guides/DOCKER_GUIDE.md#release-channels). L'immagine imposta **`OMNIROUTE_MEMORY_MB=1024`**. È sufficiente per la dashboard e una chat leggera. I **coding agent** (`POST /v1/responses` da Claude Code, Codex, Grok, …) richiedono un heap V8 molto più grande, altrimenti il processo va in `FATAL ERROR` a ~12 GiB con due contesti lunghi sovrapposti. Dimensiona il container oltre l'heap (i buffer nativi si trovano fuori da V8):
-| Carico di lavoro | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
-| ----------------------------------- | ------------------------------- | ---------------------- |
-| Dashboard / chat leggera | `1024` (predefinito immagine) | ≥2 g |
-| Un coding agent | `8192` | ≥10 g |
-| Due `/v1/responses` lunghe simultanee | `10240`–`12288` | ≥12–16 g |
+| Carico di lavoro | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
+| ------------------------------------- | ------------------------------- | ---------------------- |
+| Dashboard / chat leggera | `1024` (predefinito immagine) | ≥2 g |
+| Un coding agent | `8192` | ≥10 g |
+| Due `/v1/responses` lunghe simultanee | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
@@ -949,6 +959,7 @@ Tabella completa: [Guida Docker — RAM di runtime](../../guides/DOCKER_GUIDE.md
**🥟 Bun**
Sono supportati `bun install` standard e l'installazione globale (`bun install -g omniroute`) tramite rilevamento del runtime Bun:
+
- **`bun:sqlite` integrato**: OmniRoute usa il driver integrato `bun:sqlite` quando gira con Bun, con fallback a `better-sqlite3` su Node.js o a `sql.js`.
- **Selezione automatica del bundler Webpack**: sviluppo (`bun run dev`) e build di produzione (`bun run build`) rilevano automaticamente Bun e disabilitano Turbopack a favore di Webpack per evitare incompatibilità dei binding V8 nativi.
- **Dockerfile Bun dedicato**: `Dockerfile.bun` multi-stage per deployment di produzione nativi Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
@@ -1109,19 +1120,19 @@ Metriche di validazione: 1002 video monitorati · 7,069,190 visualizzazioni note
> Tutto in un unico posto — segui il maintainer, parla con la community oppure apri una issue.
-| Canale | Dove / come |
-| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
-| 💼 **LinkedIn** — segui il maintainer | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
-| 🐙 **GitHub** — segui release e suggerimenti | [@diegosouzapw](https://github.com/diegosouzapw) |
-| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
-| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
-| 🟢 **WhatsApp — 🌍 Global** | [entra nel gruppo](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) |
-| 🟢 **WhatsApp — 🇧🇷 Brasil** | [entra nel gruppo](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz) |
-| 🌍 **Sito web** | [omniroute.online](https://omniroute.online) |
-| 📦 **Codice sorgente** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
-| 🐛 **Segnala un bug** | [apri una issue](https://github.com/diegosouzapw/OmniRoute/issues) — allega l'output di `npm run system-info` |
-| 🤝 **Contribuisci** | [CONTRIBUTING.md](../../../CONTRIBUTING.md) · [Modello di branching e release](../../ops/BRANCHING_MODEL.md) · scegli una `good first issue` |
-| 💚 **Sostieni il progetto** | [Modi per sostenere ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
+| Canale | Dove / come |
+| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
+| 💼 **LinkedIn** — segui il maintainer | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
+| 🐙 **GitHub** — segui release e suggerimenti | [@diegosouzapw](https://github.com/diegosouzapw) |
+| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
+| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
+| 🟢 **WhatsApp — 🌍 Global** | [entra nel gruppo](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) |
+| 🟢 **WhatsApp — 🇧🇷 Brasil** | [entra nel gruppo](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz) |
+| 🌍 **Sito web** | [omniroute.online](https://omniroute.online) |
+| 📦 **Codice sorgente** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
+| 🐛 **Segnala un bug** | [apri una issue](https://github.com/diegosouzapw/OmniRoute/issues) — allega l'output di `npm run system-info` |
+| 🤝 **Contribuisci** | [CONTRIBUTING.md](../../../CONTRIBUTING.md) · [Modello di branching e release](../../ops/BRANCHING_MODEL.md) · scegli una `good first issue` |
+| 💚 **Sostieni il progetto** | [Modi per sostenere ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
@@ -1131,6 +1142,7 @@ Metriche di validazione: 1002 video monitorati · 7,069,190 visualizzazioni note
+
## 🛠️ Stack tecnologico
@@ -1161,6 +1173,7 @@ Metriche di validazione: 1002 video monitorati · 7,069,190 visualizzazioni note
+
## 📖 Documentazione
@@ -1338,6 +1351,7 @@ Metriche di validazione: 1002 video monitorati · 7,069,190 visualizzazioni note
diff --git a/docs/i18n/tr/README.md b/docs/i18n/tr/README.md
index 463c70caaa..4bdabe6cac 100644
--- a/docs/i18n/tr/README.md
+++ b/docs/i18n/tr/README.md
@@ -61,14 +61,14 @@
-| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
-| ----------------------------- | :-----: | :---------: | :---------: |
-| 🌐 Sağlayıcılar | 290 | **342** | kuyrukta dahası var |
-| 🧠 Belgelenmiş modeller | 1185 | **1202** | — |
-| 🖼️ Modalite Köprüsü (Modality Bridge) | — | 🆕 vision | video |
-| 📡 Radar ücretsiz kataloğu | — | 🆕 isteğe bağlı | — |
-| ⚖️ Kota duyarlı zamanlama | — | — | 🔭 sırada |
-| 📊 Kota telemetrisi | — | — | 🔭 sırada |
+| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
+| ------------------------------------- | :-----: | :-------------: | :-----------------: |
+| 🌐 Sağlayıcılar | 290 | **342** | kuyrukta dahası var |
+| 🧠 Belgelenmiş modeller | 1185 | **1202** | — |
+| 🖼️ Modalite Köprüsü (Modality Bridge) | — | 🆕 vision | video |
+| 📡 Radar ücretsiz kataloğu | — | 🆕 isteğe bağlı | — |
+| ⚖️ Kota duyarlı zamanlama | — | — | 🔭 sırada |
+| 📊 Kota telemetrisi | — | — | 🔭 sırada |
**→ [Yol Haritası](ROADMAP.md) — `v3.9.0 LTS` hedefine doğru ilerliyor**
@@ -189,7 +189,7 @@
-

+

```bash
# Fresh install, zero credentials — `auto` already works:
@@ -198,7 +198,7 @@ curl http://localhost:20128/v1/chat/completions \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
-
Belirli bir ücretsiz arka uç mu tercih ediyorsunuz? Doğrudan çağırın, örn. `oc/…` (OpenCode Free) veya `felo/…` (Felo). Ardından `auto` modeline geçin ve seçimi OmniRoute'a bırakın.
+
Belirli bir ücretsiz arka uç mu tercih ediyorsunuz? Doğrudan `oc/…` (OpenCode Free) çağırın. Ardından `auto` modeline geçin ve seçimi OmniRoute'a bırakın.
📦 **Python, Node.js, PHP ve cURL** için kopyala-yapıştır hızlı başlangıç betikleri → [`examples/quickstart/`](examples/quickstart/)
@@ -973,11 +973,11 @@ docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
`:latest` etiketi **yayımlanmış** en yüksek kararlı SemVer sürümünü takip eder. Git `main` dalını takip etmez. GitOps için `:X.Y.Z` sürümünü sabitleyin. Bkz. [Docker Sürüm Kanalları](docs/guides/DOCKER_GUIDE.md#release-channels). İmaj **`OMNIROUTE_MEMORY_MB=1024`** değerini sabitler. Bu, pano ve hafif bir sohbet için yeterlidir. **Kodlama ajanları** (Claude Code, Codex, Grok, vb.'den gelen `POST /v1/responses`), çok daha büyük bir V8 heap alanına ihtiyaç duyar; aksi takdirde iki örtüşen uzun bağlam altında süreç ~12 GiB seviyesinde `FATAL ERROR` verir. Konteyneri heap boyutunun üzerinde boyutlandırın (yerel arabellekler V8'in dışında yer alır):
-| İş Yükü | Heap (`-e OMNIROUTE_MEMORY_MB`) | Konteyner (`--memory`) |
-| ----------------------------------- | ------------------------------- | ---------------------- |
-| Pano / hafif sohbet | `1024` (imaj varsayılanı) | ≥2 g |
-| Tek bir kodlama ajanı | `8192` | ≥10 g |
-| İki eşzamanlı uzun `/v1/responses` | `10240`–`12288` | ≥12–16 g |
+| İş Yükü | Heap (`-e OMNIROUTE_MEMORY_MB`) | Konteyner (`--memory`) |
+| ---------------------------------- | ------------------------------- | ---------------------- |
+| Pano / hafif sohbet | `1024` (imaj varsayılanı) | ≥2 g |
+| Tek bir kodlama ajanı | `8192` | ≥10 g |
+| İki eşzamanlı uzun `/v1/responses` | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
@@ -996,6 +996,7 @@ Tam tablo: [Docker Kılavuzu — çalışma zamanı RAM](docs/guides/DOCKER_GUID
**🥟 Bun**
Standart `bun install` ve genel kurulum (`bun install -g omniroute`), Bun çalışma zamanı algılamasıyla desteklenir:
+
- **Yerleşik `bun:sqlite`**: OmniRoute, Bun altında çalışırken Bun'ın yerleşik `bun:sqlite` sürücüsünü kullanır; Node.js altında `better-sqlite3` veya `sql.js`'e geri döner.
- **Otomatik Webpack paketleyici seçimi**: Geliştirme (`bun run dev`) ve üretim derlemeleri (`bun run build`), Bun'ı otomatik olarak algılar ve yerel V8 bağlama uyumsuzluklarını önlemek için Turbopack yerine Webpack'i seçer.
- **Özel Bun Dockerfile**: Yerel Bun üretim dağıtımları için çok aşamalı `Dockerfile.bun` (`docker build -f Dockerfile.bun -t omniroute:bun .`).
@@ -1153,19 +1154,19 @@ Doğrulama metrikleri: 1002 takip edilen video · 7.069.190 bilinen görüntüle
> Her şey tek bir yerde — geliştiriciyi takip edin, toplulukla sohbet edin veya bir issue açın.
-| Kanal | Nerede / Nasıl |
-| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| 💼 **LinkedIn** — geliştiriciyi takip edin | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
-| 🐙 **GitHub** — sürümler ve ipuçları için | [@diegosouzapw](https://github.com/diegosouzapw) |
-| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
-| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
-| 🟢 **WhatsApp — 🌍 Global** | [gruba katılın](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) |
-| 🟢 **WhatsApp — 🇧🇷 Brezilya** | [gruba katılın](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz) |
-| 🌍 **Web Sitesi** | [omniroute.online](https://omniroute.online) |
-| 📦 **Kaynak Kod** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
-| 🐛 **Hata Bildirimi** | [issue açın](https://github.com/diegosouzapw/OmniRoute/issues) — `npm run system-info` çıktısını ekleyin |
-| 🤝 **Katkıda Bulunun** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Dallanma ve Sürüm Modeli](docs/ops/BRANCHING_MODEL.md) · bir `good first issue` seçin |
-| 💚 **Projeyi Destekleyin** | [Destekleme yolları ↑](#-omnirouteu-destekleyin) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
+| Kanal | Nerede / Nasıl |
+| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
+| 💼 **LinkedIn** — geliştiriciyi takip edin | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
+| 🐙 **GitHub** — sürümler ve ipuçları için | [@diegosouzapw](https://github.com/diegosouzapw) |
+| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
+| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
+| 🟢 **WhatsApp — 🌍 Global** | [gruba katılın](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) |
+| 🟢 **WhatsApp — 🇧🇷 Brezilya** | [gruba katılın](https://chat.whatsapp.com/LTSpdFhXTxjH4R6CCNiKWz) |
+| 🌍 **Web Sitesi** | [omniroute.online](https://omniroute.online) |
+| 📦 **Kaynak Kod** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
+| 🐛 **Hata Bildirimi** | [issue açın](https://github.com/diegosouzapw/OmniRoute/issues) — `npm run system-info` çıktısını ekleyin |
+| 🤝 **Katkıda Bulunun** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Dallanma ve Sürüm Modeli](docs/ops/BRANCHING_MODEL.md) · bir `good first issue` seçin |
+| 💚 **Projeyi Destekleyin** | [Destekleme yolları ↑](#-omnirouteu-destekleyin) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
diff --git a/docs/reference/FREE_TIERS.md b/docs/reference/FREE_TIERS.md
index 927dccf720..a7b2aa68d5 100644
--- a/docs/reference/FREE_TIERS.md
+++ b/docs/reference/FREE_TIERS.md
@@ -1,7 +1,7 @@
---
title: "Free Tiers & Free-Token Budget"
-version: 3.8.40
-lastUpdated: 2026-07-31
+version: 3.8.50
+lastUpdated: 2026-08-26
---
# Free Tiers & Free-Token Budget
@@ -21,13 +21,13 @@ lastUpdated: 2026-07-31
| **+ deposit-unlock boost** | **+~24M** | A one-time **$10** OpenRouter top-up raises its free pool from 50 → 1000 req/day. Reported separately so it never inflates the steady number. |
| Theoretical ceiling (all rate limits, 24/7) | ~10B | Sum of every provider rate limit extrapolated to non-stop use. **Not a guarantee** — do not headline this. |
-**Honest headline:** _OmniRoute aggregates **~1.51B documented free tokens per month** (up to ~2.13B in your first month with signup credits) across 42 free-tier pools — plus a long tail of permanently-free, no-cap providers — and RTK + Caveman compression (15–95% token savings) stretches that further._
+**Honest headline:** _OmniRoute aggregates **~1.51B documented free tokens per month** (up to ~2.13B in your first month with signup credits) across 39 free-tier pools — plus a long tail of permanently-free, no-cap providers — and RTK + Caveman compression (15–95% token savings) stretches that further._
> **Why this dropped from the previous ~1.94B.** The 2026-06-17 refresh is an honesty correction, not a loss: `gemini` is now pool-deduped (was inflated by counting each Flash variant separately, 462M → 60M), `cloudflare-ai` corrected to its real 10k-Neurons/day (122M → 30M), `doubao` reclassified as a one-time signup credit (not recurring), and shut-down tiers removed (`chutes`/`phind`/`kluster` discontinued). Partly offset by `llm7` (correct 5M/day → 150M) and new free providers (Kilo, OpenCode Zen, Z.AI GLM-Flash).
>
> **Further corrected to ~1.37B in v3.8.42:** `longcat` was reclassified from a 150M/mo recurring grant to a one-time 10M signup credit after its free preview ended. Same honesty rule — no provider was dropped by mistake.
>
-> **Updated to ~1.51B after removing a retired provider:** the pool count is now 42 after mapping free tiers that were documented upstream but missing from the catalog (`requesty`, `ovhcloud`, `agnes`, `glm`) plus new providers `navy` and `aihorde` (#7840). This is the live, CI-gated number (`check:docs-counts` fails the build if this drifts from `computeFreeModelTotals()`).
+> **Updated on 2026-08-26 after retiring Felo Web:** the source now reports 39 recurring pool keys. Felo Web is excluded while its GPL-derived provenance/licensing remains on HOLD. This is the live, CI-gated number (`check:docs-counts` fails the build if this drifts from `computeFreeModelTotals()`).
Biggest **documented** contributors: `mistral` 1.00B, `llm7` 150M, `groq` 117M, `gemini` 60M, `cerebras` 30M, `cloudflare-ai` 30M, `sambanova` 30M. (`longcat` is excluded — its 10M LongCat-2.0 grant is a one-time, KYC-gated signup credit, not a recurring monthly budget.)
diff --git a/docs/reference/PROVIDER_REFERENCE.md b/docs/reference/PROVIDER_REFERENCE.md
index bb1e819178..6c0bd071f0 100644
--- a/docs/reference/PROVIDER_REFERENCE.md
+++ b/docs/reference/PROVIDER_REFERENCE.md
@@ -34,7 +34,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
---
-## No-auth Providers (no key required) (13)
+## No-auth Providers (no key required) (12)
| ID | Alias | Name | Tags | Website | Notes | Tool calling |
|----|-------|------|------|---------|-------|--------------|
@@ -45,7 +45,6 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
| `codex-app-server` | `cxa` | OpenAI Codex (App-Server) | No-auth | [link](https://developers.openai.com/codex/cli) | No token stored by OmniRoute. The Codex CLI app-server manages its own ChatGPT sign-in (~/.codex/auth.json, auto-refreshed). Use “Sign in with ChatGPT” if the CLI is not yet authenticated. | — |
| `devin-cli-agentic` | `dva` | Devin CLI Agentic Bridge | No-auth | [link](https://docs.devin.ai/work-with-devin/devin-cli) | Authentication is owned by the official Devin CLI in its isolated bridge volume. | emulated |
| `duckduckgo-web` | `ddgw` | DuckDuckGo AI Chat | No-auth | [link](https://duckduckgo.com/duckchat) | No credentials required — DuckDuckGo AI Chat is anonymous and free. | emulated |
-| `felo-web` | `felo` | Felo | No-auth | [link](https://felo.ai) | No credentials required — Felo is a free, no-signup chat/search aggregator. | — |
| `opencode` | `oc` | OpenCode Free | No-auth | [link](https://opencode.ai) | No API key required — uses OpenCode's public free endpoint. | — |
| `theoldllm` | `tllm` | The Old LLM (Free) | No-auth | [link](https://theoldllm.vercel.app) | No credentials required. The executor auto-generates access tokens via an embedded Playwright browser instance. | — |
| `uncloseai` | `unc` | UncloseAI | No-auth | [link](https://uncloseai.com) | No auth required. API accepts any non-empty string as key for identification. If older built-in models return 404, use Available Models → Import from /models or Auto-Sync; verified live model: solidrust/Hermes-3-Llama-3.1-8B-AWQ. | — |
diff --git a/docs/routing/STRICT_ZERO_COST.md b/docs/routing/STRICT_ZERO_COST.md
index 50f15778b6..ea9c4469f8 100644
--- a/docs/routing/STRICT_ZERO_COST.md
+++ b/docs/routing/STRICT_ZERO_COST.md
@@ -119,21 +119,18 @@ contractual reasons, or left in when this guard is off even with `freeAccessPoli
## What passes today
Run `npx tsx scripts/ad-hoc/dry-run-strict-zero-cost.ts` against a live instance's
-`GET /v1/auto-combo/{channel}/candidates` output for a real before/after — the script now reads
-each candidate's real `connectionId`, so it also proves the connection-safety fix live, not just
-in unit tests. As of 2026-08-20, only `freeType: "keyless"` candidates pass in practice (7 of 29
-live candidates on this instance: `opencode/big-pickle`, `opencode/deepseek-v4-flash-free`, and
-5 `felo-web` models — all confirmed arriving with the genuine no-auth `connectionId`, never a
-real connection) — no currently-catalogued `recurring-*` provider both has a usage adapter
-registered in `USAGE_FETCHER_PROVIDERS` **and** `hardStopGuaranteed: true` declared (e.g. `groq`
-has neither the adapter registered here nor is fetched offline in this dry run; `kiro` lacks
-`hardStopGuaranteed`). This is not a bug: it's the honest state of two independently-curated
-metadata sets that happen not to overlap yet, not a limitation of the filter itself.
+`GET /v1/auto-combo/{channel}/candidates` output for a real before/after — the script reads each
+candidate's real `connectionId`, so it also proves the connection-safety fix live, not just in
+unit tests. Keyless candidates must arrive with the synthetic no-auth `connectionId`, never a
+real connection. The current built-in keyless auto path is OpenCode Free; exact candidate counts
+still depend on live model discovery and should be measured on the target deployment instead of
+copied from an older run. A `recurring-*` candidate passes only when it has both a registered
+usage adapter and `hardStopGuaranteed: true`; incomplete metadata remains fail-closed.
-With `excludeTosAvoid: true` added on top of the same live pool, the count drops from 7 to 0 —
-every one of the 7 surviving candidates is curated `tos: "avoid"` today (`felo-web`, `opencode`).
-This is a real, expected trade-off of turning the ToS guard on, not a bug: the guard is
-`false` by default for exactly this reason (see "ToS guard" above).
+With `excludeTosAvoid: true`, every candidate curated as `tos: "avoid"` is removed. OpenCode Free
+currently carries that verdict, so enabling the guard can empty a deployment's remaining keyless
+pool. This is an expected trade-off of turning the ToS guard on, not a bug: the guard is `false`
+by default for exactly this reason (see "ToS guard" above).
## Enabling
diff --git a/docs/screenshots/free-tier-budget-card.svg b/docs/screenshots/free-tier-budget-card.svg
index 42bf89d20c..3477208b90 100644
--- a/docs/screenshots/free-tier-budget-card.svg
+++ b/docs/screenshots/free-tier-budget-card.svg
@@ -1,16 +1,16 @@
-