Some OpenAI Responses-compatible gateways (e.g. Codex-protocol proxies)
reject the max_output_tokens parameter with a 400 BadRequest. The
openai-responses API always sent it when maxTokens was set, with no way
to opt out.
Add a supportsMaxOutputTokens compat flag (default: true) to
OpenAIResponsesCompat. When false, buildParams omits max_output_tokens
from the request body. Also register the flag in the coding-agent
model-config schema so custom providers can set it.
- follow up of missed commits for feat(coding-agent): adjust TUI selections in thinking-mode, models and scoped models #8900
* fix(coding-agent): keep fixed theme marker visible
- distinguish the saved theme from the preview cursor
- align the automatic option and update coverage
* fix(coding-agent): keep automatic theme marker visible
- mark configured light and dark themes during preview
- reuse shared theme formatting and update coverage
When tools are registered by an extension (e.g. Kimchi) the execute callback
receives an ExtensionContext with the real session cwd. Use ctx.cwd || cwd so
tools resolve paths against the current session cwd instead of the cwd captured
at tool creation time.
Applies to read, write, edit, grep, find, ls, bash, and powershell.
Co-authored-by: Kimchi <noreply@kimchi.dev>
* fix(coding-agent): keep selector status markers visible
- place status markers before labels
- strike unavailable scoped models and update tests
* fix(coding-agent): align scoped model toggle behavior
- show checks for the all-enabled state
- toggle individual models consistently and add coverage
* docs(coding-agent): add changelog entry
* fix(coding-agent): keep trust marker visible while browsing
- move the saved marker before the trust option
- update tests and changelog
* fix(coding-agent): mark per-model thinking overrides
- add the leading level marker
- update tests and changelog
Keep protocol payloads transport-opaque and validate service calls, state snapshots, updates, and errors at Chord boundaries. Ensure successful OpenAI Responses messages remain strict JSON so terminal Transcript updates reach clients.