Skip to content

feat(acp): expose graded reasoning-effort over session/set_config_option #1486

Description

@csillag

What feature would you like to see?

Expose graded reasoning-effort over the ACP session/set_config_option method

The ACP adapter exposes the thinking config option as a 2-entry boolean (on/off). A client that sends a graded value (low/medium/high/xhigh/max) over session/set_config_option has it collapsed to a boolean, and any non-on string reads as off. Yet the core already supports setting a graded effort live, mid-session, with no restart — the REST server and web UI both do exactly this (see #1344 for the web segmented control). The capability exists one layer below the adapter (resolveThinkingEffort, and the setThinking RPC that already accepts any effort string); the ACP adapter is the only surface that throws it away.

Ask: let an ACP client set and discover a graded reasoning effort live, matching the REST/web surface — so an editor like Zed can offer a reasoning-effort slider instead of a restart hack.

Suggested shape (backward compatible):

  1. Route the raw thinking value to the graded setter — off disables, on = model default, any level the model declares in support_efforts is applied live; keep on/off working for existing clients (an unadvertised value clamps to off, preserving the current footgun-guard).
  2. Advertise the model's ordered support_efforts (plus off, or just the levels for always_thinking models) as the config-option options, updating on model change — clients that only understand on/off still work.

Additional information

Builds directly on #1132 (thinking-config overhaul that made ThinkingEffort an open, model-driven string and centralized the always_thinking clamp — its own description flags the ACP adapter as a residual effort-collapse site) and #1344 (the analogous graded-effort UX shipped for the web client). This is the natural third client after TUI (#194) and web. No open or closed issue/PR currently asks for it. Happy to open a PR once maintainers greenlight — per the feature-request template I'm filing the issue first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions