From 818742d1a3e2896e6d5e3957ab8b26ccc51c255c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20H=C3=A9ritier?= Date: Sun, 14 Jun 2026 04:03:09 +0000 Subject: [PATCH 1/2] docs: fix Shift+Tab thinking-level cycle description for per-model capabilities (#3097) --- docs/guides/thinking/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/thinking/index.md b/docs/guides/thinking/index.md index f51d2534f..ae137ac4b 100644 --- a/docs/guides/thinking/index.md +++ b/docs/guides/thinking/index.md @@ -332,7 +332,7 @@ models: While running in the TUI, press **Shift+Tab** to cycle the thinking effort level for the current model without editing your YAML config: -- The level steps through the model's supported range (provider-specific), wrapping around — for example `none → minimal → low → medium → high → xhigh → none` on OpenAI. +- The level steps through the model's supported range (model-specific), wrapping around — for example `none → minimal → low → medium → high → none` on OpenAI gpt-5/o-series, `none → minimal → low → medium → high → xhigh → none` on gpt-5.2+, `none → low → medium → high → none` on Anthropic Sonnet, `none → low → medium → high → max → none` on Anthropic Opus 4.6, and `none → low → medium → high → xhigh → none` on Anthropic Opus 4.7+. - The current level is shown in the sidebar next to the model name (e.g. `openai/gpt-5 • high`). - This applies as a session override — it is **not** saved to the config file. The next session starts from the level defined in your YAML. - For models that don't support reasoning, and for remote runtimes, Shift+Tab is a no-op and an informational message is displayed. From 9df2d597032f7a09eb5831a050910850d2fa6505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20H=C3=A9ritier?= Date: Sun, 14 Jun 2026 04:09:42 +0000 Subject: [PATCH 2/2] docs: address review feedback on Shift+Tab cycle description (#3111) --- docs/guides/thinking/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/thinking/index.md b/docs/guides/thinking/index.md index ae137ac4b..c0cff0365 100644 --- a/docs/guides/thinking/index.md +++ b/docs/guides/thinking/index.md @@ -24,7 +24,7 @@ docker-agent exposes this through a single `thinking_budget` field on any named | Provider | Format | Values | Default | | ------------------- | ---------- | --------------------------------------------------------------------------------------- | ------------------ | -| OpenAI | string | `minimal`, `low`, `medium`, `high`, `xhigh`, `none` | `medium` (API default) | +| OpenAI | string | `minimal`, `low`, `medium`, `high`, `none`; `xhigh` on gpt-5.2+ only | `medium` (API default) | | Anthropic | int or str | 1024–32768 tokens, or `minimal`–`max`, `adaptive`, `adaptive/`, `none` | off | | Gemini 2.5 | int | `0` (off), `-1` (dynamic), or token count (max 24576 / 32768) | `-1` (dynamic) | | Gemini 3 | string | `minimal`, `low`, `medium`, `high` | API default (model-dependent) | @@ -37,7 +37,7 @@ String values are case-insensitive. The full set of accepted strings is `none`, ## OpenAI -OpenAI reasoning models (o-series, gpt-5, gpt-5-mini) use a string effort level that maps to their `reasoning_effort` API parameter. +OpenAI reasoning models (o-series, gpt-5, gpt-5-mini) use a string effort level that maps to their `reasoning_effort` API parameter. The `xhigh` level is only accepted by gpt-5.2 and later minor versions; o-series and earlier gpt-5 releases top out at `high`. ```yaml models: @@ -58,7 +58,7 @@ models: | `high` | More thorough; recommended for complex tasks. | | `xhigh` | Near-maximum effort; slower but most accurate. | -These five effort levels (`minimal`–`xhigh`) are the **only** values accepted for OpenAI. Token counts, `max`, `adaptive`, and `adaptive/` are rejected with a configuration error at request time. Older models (o1, o3-mini) only accept `low`/`medium`/`high` — sending an unsupported level returns an API error. +These effort levels (`minimal`–`xhigh`) are the **only** values accepted for OpenAI. Token counts, `max`, `adaptive`, and `adaptive/` are rejected with a configuration error at request time. The `xhigh` level is only supported by gpt-5.2 and later minor versions (e.g. gpt-5.2, gpt-5.4-mini); o-series and earlier gpt-5 releases top out at `high`. Older models (o1, o3-mini) only accept `low`/`medium`/`high` — sending an unsupported level returns an API error.
Tokens and max_tokens @@ -332,7 +332,7 @@ models: While running in the TUI, press **Shift+Tab** to cycle the thinking effort level for the current model without editing your YAML config: -- The level steps through the model's supported range (model-specific), wrapping around — for example `none → minimal → low → medium → high → none` on OpenAI gpt-5/o-series, `none → minimal → low → medium → high → xhigh → none` on gpt-5.2+, `none → low → medium → high → none` on Anthropic Sonnet, `none → low → medium → high → max → none` on Anthropic Opus 4.6, and `none → low → medium → high → xhigh → none` on Anthropic Opus 4.7+. +- The level steps through the model's supported range (model-specific), wrapping around — for example `none → minimal → low → medium → high → none` on OpenAI gpt-5/o-series, `none → minimal → low → medium → high → xhigh → none` on gpt-5.2+, `none → low → medium → high → none` on Anthropic Sonnet (levels are sent as adaptive effort strings and are only effective on Opus 4.6+; Sonnet 4.5 and earlier require an integer token budget set in YAML), `none → low → medium → high → max → none` on Anthropic Opus 4.6, and `none → low → medium → high → xhigh → none` on Anthropic Opus 4.7+. - The current level is shown in the sidebar next to the model name (e.g. `openai/gpt-5 • high`). - This applies as a session override — it is **not** saved to the config file. The next session starts from the level defined in your YAML. - For models that don't support reasoning, and for remote runtimes, Shift+Tab is a no-op and an informational message is displayed.