[0.155 hotfix] Restore none as the TUI reasoning summary default (#46467)

New local TUI sessions in 0.155 request detailed reasoning summaries by
default, which causes request rejection on providers that do not support
reasoning summaries. Restore `none` as the default while honoring
explicit `auto`, `concise`, and `detailed` settings and concurrent
delivery when summaries are explicitly enabled.

This focused backport targets `release/0.155`, based on the content
commit for `rust-v0.155.0`. It includes regression coverage for
new-thread settings and the outbound Responses request.

Validation:
- Patch applies cleanly to the 0.155 release source; `git diff --check`
passes.
- All 9 focused reasoning-default and reasoning-status tests passed,
including the outbound Responses request and existing snapshots.
- `just fmt` completed; the hotfix Rust files were unchanged. Unrelated
justfile rewrites from the locally installed formatter were discarded.
- All 4,589 non-ignored TUI tests passed across the rerun and a
follow-up of the remaining 196 tests after a runner disconnection. The
earlier cursor failures were caused by `NO_COLOR=1` / `TERM=dumb`; the
tests pass with normal terminal settings and no code or snapshot
changes.
- Release-build checks passed on Linux, macOS, and Windows.

CI currently reports failures in unchanged release-base files:
-
[Codespell](https://github.com/openai/codex/actions/runs/35380630185/job/105715678757)
flags the existing `OFlags::WRONLY` identifier.
- [Manifest
validation](https://github.com/openai/codex/actions/runs/35380630185/job/105715679235)
finds a stale feature exception for `codex-rs/code-mode/Cargo.toml`.
- [Dependency
audit](https://github.com/openai/codex/actions/runs/35380630185/job/105715679009)
reports RUSTSEC-2026-0285 for the existing `rustls 0.23.36` lockfile
entry.
- [cargo
shear](https://github.com/openai/codex/actions/runs/35380630185/job/105716110806)
reports an existing unlinked file,
`codex-rs/login/src/internal_identity.rs`.

Additional CI failures are also outside the changed TUI files: an unused
`body_json` import in `core/tests/suite/openai_file_mcp.rs` (Bazel
Clippy), a format-driver expectation in the Python SDK tests, and a
transient `Text file busy` error while spawning a code-mode test helper
(musl). These paths are unchanged from the release base.
This commit is contained in:
Celia Chen
2026-09-18 12:02:35 -07:00
committed by GitHub
parent a974fa8cea
commit 5e0d1ef83e
2 changed files with 22 additions and 5 deletions
+1 -1
View File
@@ -1913,7 +1913,7 @@ fn new_thread_reasoning_overrides(config: &Config) -> Option<HashMap<String, ser
let mut overrides = config_request_overrides_from_config(config).unwrap_or_default();
let summary = config
.model_reasoning_summary
.unwrap_or(codex_protocol::config_types::ReasoningSummary::Detailed);
.unwrap_or(codex_protocol::config_types::ReasoningSummary::None);
overrides.insert(
"model_reasoning_summary".to_string(),
serde_json::Value::String(summary.to_string()),
@@ -10,14 +10,24 @@ use serde_json::json;
#[tokio::test]
async fn embedded_reasoning_defaults_reach_responses() -> Result<()> {
for (settings, summary, stream_options) in [
("", json!("detailed"), json!(null)),
("", json!(null), json!(null)),
(
"[features]\nconcurrent_reasoning_summaries = false",
json!("detailed"),
json!(null),
json!(null),
),
(
"[features]\nconcurrent_reasoning_summaries = true",
json!(null),
json!(null),
),
(
"model_reasoning_summary = 'detailed'",
json!("detailed"),
json!(null),
),
(
"model_reasoning_summary = 'detailed'\n[features]\nconcurrent_reasoning_summaries = true",
json!("detailed"),
json!({"reasoning_summary_delivery": "sequential_cutoff"}),
),
@@ -102,12 +112,19 @@ stream_max_retries = 0
}
#[tokio::test]
async fn new_tui_threads_request_summaries_unless_explicitly_disabled() {
async fn new_tui_threads_disable_summaries_unless_explicitly_enabled() {
let temp_dir = tempfile::tempdir().expect("tempdir");
for (config_text, expected_summary, expected_concurrent) in [
("", "detailed", false),
("", "none", false),
(
"[features]\nconcurrent_reasoning_summaries = true",
"none",
false,
),
("model_reasoning_summary = 'auto'", "auto", false),
("model_reasoning_summary = 'detailed'", "detailed", false),
(
"model_reasoning_summary = 'detailed'\n[features]\nconcurrent_reasoning_summaries = true",
"detailed",
true,
),