Renn F
0e9bbc15db
feat(grok): first-class xAI/Grok routing mode (UI + backend)
...
The Routing-mode toggle had Anthropic / Ollama / Self-Hosted / Mix but no way
to route the whole org to Grok. Add it end to end:
- backend: apply_mode("grok") + _apply_grok (GLOBAL default -> grok-build-0.1) +
derive_mode "grok" detection; ApplyModeRequest/ModeResponse accept "grok".
- panel: a "Grok" routing-mode card (between Anthropic and Ollama, gated on the
xAI key) + flipToGrok; a Grok group in the per-agent mix dropdown +
catalogGrokOnly + a grok ProviderBadge variant; the mix-save key check and
the AI-routing description now cover Grok.
- tests: integration derive_mode/apply_mode "grok" cases (+ grok provider row
in the fixture).
Gated: ruff + mypy clean; panel typecheck + lint clean.
2026-06-18 10:13:14 +02:00
..
2026-06-14 04:44:21 +02:00
2026-05-02 03:11:49 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-05-12 06:39:18 +02:00
2026-05-06 00:32:52 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 00:40:18 +02:00
2026-05-12 04:37:01 +02:00
2026-06-14 13:43:46 +02:00
2026-06-03 19:48:10 +02:00
2026-06-11 04:36:17 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-15 20:47:41 +02:00
2026-06-14 13:43:46 +02:00
2026-05-06 21:02:31 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-03 19:13:17 +02:00
2026-06-10 12:04:24 +02:00
2026-05-12 06:27:33 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-17 06:36:28 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 04:44:21 +02:00
2026-06-18 10:13:14 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-05-06 21:02:31 +02:00
2026-05-12 06:27:33 +02:00
2026-05-12 04:03:21 +02:00
2026-06-03 06:35:03 +02:00
2026-06-13 08:38:31 +02:00
2026-06-14 13:43:46 +02:00
2026-06-03 18:54:07 +02:00
2026-06-15 04:55:16 +02:00
2026-05-06 21:02:31 +02:00
2026-06-11 04:36:17 +02:00
2026-06-14 13:43:46 +02:00
2026-06-15 20:47:41 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-04 05:48:21 +02:00
2026-06-03 06:35:03 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-10 12:04:24 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-05-06 21:02:31 +02:00
2026-06-15 20:47:41 +02:00
2026-06-15 20:47:41 +02:00
2026-06-14 13:43:46 +02:00
2026-05-12 03:48:47 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-06-14 13:43:46 +02:00
2026-05-06 21:02:31 +02:00