From c4164e74250298cabc3887f18c117167a49c69df Mon Sep 17 00:00:00 2001 From: Rapi <283414902+agent-rapi@users.noreply.github.com> Date: Thu, 3 Sep 2026 12:49:12 +0000 Subject: [PATCH 1/4] docs: update model selection compatibility --- docs/antigravity.md | 25 +++++++++++++++++++++++++ docs/devin.md | 4 +++- docs/slash-commands.md | 4 +++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/docs/antigravity.md b/docs/antigravity.md index 225cd31f4..ff5095b12 100644 --- a/docs/antigravity.md +++ b/docs/antigravity.md @@ -75,3 +75,28 @@ agents: - **No streaming**: `agy -p` returns the full response at once; the adapter sends it as a single `agent_message_chunk` notification. - **Cancel is a no-op**: `agy -p` runs to completion; `session/cancel` acknowledges but cannot interrupt. + +## Model Selection + +The Discord `/models` dropdown is supported. `agy-acp` returns model +`configOptions` when a session is created or loaded. It fetches the available +models from `agy models` and caches a successful result. If the live fetch fails, +the adapter uses the cache and then falls back to this static list when no cache +is available: + +- Gemini 3.5 Flash (Medium) +- Gemini 3.5 Flash (High) +- Gemini 3.5 Flash (Low) +- Gemini 3.1 Pro (Low) +- Gemini 3.1 Pro (High) + +When a user selects a model with `/models`, OpenAB sends +`session/set_config_option`. `agy-acp` stores the selected model for that session +and adds `--model ` to subsequent `agy` invocations. + +To select a default model for every new session, set `default_config_options`: + +```toml +[pool] +default_config_options = { model = "Gemini 3.5 Flash (Medium)" } +``` diff --git a/docs/devin.md b/docs/devin.md index 899ba40db..6e688c167 100644 --- a/docs/devin.md +++ b/docs/devin.md @@ -105,7 +105,9 @@ default_config_options = { model = "swe-1-6" } Available model values include: `adaptive`, `swe-1-6`, `swe-1-6-fast`, `claude-opus-4-8-medium`, `glm-5-2`, `gpt-5-5-medium`, `kimi-k2-7`, and many more. The full list is reported by the -agent at session creation and visible via the Discord `/model` slash command. +agent as ACP `configOptions` at session creation, making it available in the Discord `/models` +dropdown once a session is active. This behavior is based on ACP client evidence; a live OpenAB +session capture is still pending. > **Note:** The `--model` flag and `DEVIN_MODEL` env var are **ignored** in ACP mode. > Use `default_config_options` instead. diff --git a/docs/slash-commands.md b/docs/slash-commands.md index 9638a9792..de7a5271a 100644 --- a/docs/slash-commands.md +++ b/docs/slash-commands.md @@ -40,7 +40,9 @@ When the user picks an option, OpenAB sends `session/set_config_option` to the A | kiro-cli | ✅ Returns available models via `models` fallback | ✅ Returns modes (`kiro_default`, `kiro_planner`) via `modes` fallback | | claude-code | ❌ No `configOptions` emitted | ❌ | | codex | ❌ | ❌ | -| gemini | ❌ | ❌ | +| antigravity | ✅ Returns available models via `configOptions`; `agy-acp` fetches them from `agy models`, with cache and static fallback | ❌ | +| opencode | ✅ Emits model `configOptions` at session creation in OpenCode 1.17.9 (source-confirmed; live OpenAB session capture pending) | ❌ | +| devin | ✅ Emits model `configOptions` at session creation (ACP client evidence; live OpenAB session capture pending) | ❌ | | cursor-agent | ❌ (tracking: #493) | ❌ | | copilot | ❌ (tracking: #496) | ❌ | From 27a843d207f82d6058ed52500cf03180a1613c31 Mon Sep 17 00:00:00 2001 From: Rapi <283414902+agent-rapi@users.noreply.github.com> Date: Fri, 4 Sep 2026 00:13:41 +0000 Subject: [PATCH 2/4] docs: address model compatibility review --- docs/gemini.md | 7 +++++++ docs/slack.md | 10 +++++++--- docs/slash-commands.md | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/gemini.md b/docs/gemini.md index 511b6b007..7aa8c9c1f 100644 --- a/docs/gemini.md +++ b/docs/gemini.md @@ -2,6 +2,13 @@ Gemini CLI supports ACP natively via the `--acp` flag — no adapter needed. +> **Migration notice:** Since June 18, 2026, Gemini CLI no longer serves Google AI +> Pro, Google AI Ultra, or free-tier individual accounts. Google recommends +> migrating those users to Antigravity CLI. Enterprise users with Gemini Code +> Assist licenses and API-key authentication remain supported. See Google's +> [transition announcement](https://github.com/google-gemini/gemini-cli/discussions/27274) +> and [June 18 update](https://github.com/google-gemini/gemini-cli/discussions/28017). + ## Docker Image ```bash diff --git a/docs/slack.md b/docs/slack.md index a18a17ee6..fcf84727c 100644 --- a/docs/slack.md +++ b/docs/slack.md @@ -114,15 +114,19 @@ The bot will reply in a thread. After that, just type in the thread — no @ment openab supports `/models`, `/agents`, and `/cancel` on **Discord**, but **not on Slack**. If you previously configured these commands in your Slack app's **Slash Commands** page, you can safely delete them — the Slack adapter ignores both `slash_commands` and `interactive` envelope types. -The root cause is a combination of three Slack-specific platform constraints, none of which is fixable from openab's side: +The root cause is a combination of two Slack-specific platform constraints, neither of which is fixable from openab's side: 1. **Slack blocks third-party slash commands inside threads.** Invoking `/models` from a thread's reply composer returns the Slack error `"/models is not supported in threads. Sorry!"`. This is enforced by the Slack client itself, not by any app setting — enabling Interactivity, Socket Mode, or reinstalling the app does not bypass it. Slack's built-in commands (`/remind`, `/shrug`, etc.) get special treatment that custom apps cannot. 2. **Channel-level slash command payloads have no thread context.** If the user types `/models` in the channel's main composer instead of a thread, Slack delivers the command but the payload carries no `thread_ts`. Since openab keys each ACP session by thread (`slack:` or `slack:`), the command cannot be routed to the right session. Sessions are never keyed by `channel_id` alone, so there's no workaround on the adapter side. -3. **Most ACP agents don't expose a model-switch surface.** Even when routing succeeded, `/models` reads the session's `configOptions` from the ACP `initialize` response. Only `kiro-cli` emits these in the expected format (via its `models`/`modes` fallback). `claude-code`, `codex`, `gemini`, `cursor-agent`, and `opencode` do not, so the menu would be empty for those backends — the user would see `"⚠️ No model options available"` with no recourse. +Backend model-selection support also varies; see the current +[slash-command compatibility table](slash-commands.md#models-and-agents). This +does not change Slack support: the two routing constraints above prevent the +menu from reaching the correct session even when a backend emits model +`configOptions`. -On Discord, none of these apply: slash commands work in thread-channels, the channel ID *is* the thread key, and users typically stay within a single agent per deployment anyway. +On Discord, neither constraint applies: slash commands work in thread-channels, the channel ID *is* the thread key, and users typically stay within a single agent per deployment anyway. ### If you need to switch models or agents with a Slack deployment diff --git a/docs/slash-commands.md b/docs/slash-commands.md index de7a5271a..8f05d4712 100644 --- a/docs/slash-commands.md +++ b/docs/slash-commands.md @@ -40,6 +40,7 @@ When the user picks an option, OpenAB sends `session/set_config_option` to the A | kiro-cli | ✅ Returns available models via `models` fallback | ✅ Returns modes (`kiro_default`, `kiro_planner`) via `modes` fallback | | claude-code | ❌ No `configOptions` emitted | ❌ | | codex | ❌ | ❌ | +| gemini (legacy) | ❌ No `configOptions` emitted; individual-account access ended June 18, 2026, while Enterprise and API-key access remain supported | ❌ | | antigravity | ✅ Returns available models via `configOptions`; `agy-acp` fetches them from `agy models`, with cache and static fallback | ❌ | | opencode | ✅ Emits model `configOptions` at session creation in OpenCode 1.17.9 (source-confirmed; live OpenAB session capture pending) | ❌ | | devin | ✅ Emits model `configOptions` at session creation (ACP client evidence; live OpenAB session capture pending) | ❌ | From 6a464e0c57c4b365fb1866d0a078d902964e8250 Mon Sep 17 00:00:00 2001 From: Rapi <283414902+agent-rapi@users.noreply.github.com> Date: Fri, 4 Sep 2026 00:41:49 +0000 Subject: [PATCH 3/4] docs(gemini): clarify supported authentication --- docs/gemini.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/gemini.md b/docs/gemini.md index 7aa8c9c1f..a6d297faa 100644 --- a/docs/gemini.md +++ b/docs/gemini.md @@ -65,7 +65,12 @@ env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } ## Authentication -Gemini supports Google OAuth or an API key: - -- **API key**: Set `GEMINI_API_KEY` environment variable -- **OAuth**: Run Google OAuth flow inside the pod +Gemini CLI authentication depends on the account type: + +- **API key**: Set the `GEMINI_API_KEY` environment variable. +- **Enterprise or Google Cloud OAuth**: Run the Google OAuth flow inside the pod + using an organizational account with supported Gemini Code Assist or Google + Cloud access. +- **Individual OAuth**: Google AI Pro, Google AI Ultra, and free-tier individual + accounts are no longer served by Gemini CLI. Migrate these users to + Antigravity CLI. From 5f69640ecda6ba39f379c9ed0b6a7e266178352c Mon Sep 17 00:00:00 2001 From: "chaodu-obk[bot]" <307341165+chaodu-obk[bot]@users.noreply.github.com> Date: Fri, 4 Sep 2026 03:41:11 +0000 Subject: [PATCH 4/4] docs: clarify Gemini compatibility status --- docs/slash-commands.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/slash-commands.md b/docs/slash-commands.md index 8f05d4712..637af45ae 100644 --- a/docs/slash-commands.md +++ b/docs/slash-commands.md @@ -40,7 +40,7 @@ When the user picks an option, OpenAB sends `session/set_config_option` to the A | kiro-cli | ✅ Returns available models via `models` fallback | ✅ Returns modes (`kiro_default`, `kiro_planner`) via `modes` fallback | | claude-code | ❌ No `configOptions` emitted | ❌ | | codex | ❌ | ❌ | -| gemini (legacy) | ❌ No `configOptions` emitted; individual-account access ended June 18, 2026, while Enterprise and API-key access remain supported | ❌ | +| gemini | ❌ No `configOptions` emitted; see [Gemini CLI account migration guidance](gemini.md) | ❌ | | antigravity | ✅ Returns available models via `configOptions`; `agy-acp` fetches them from `agy models`, with cache and static fallback | ❌ | | opencode | ✅ Emits model `configOptions` at session creation in OpenCode 1.17.9 (source-confirmed; live OpenAB session capture pending) | ❌ | | devin | ✅ Emits model `configOptions` at session creation (ACP client evidence; live OpenAB session capture pending) | ❌ |