[codex] Remove external websocket session resets#23384
Merged
Merged
Conversation
aibrahim-oai
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Compaction now installs replacement history inside the session, but the turn and compaction callers were still reaching into
ModelClientSessionto reset websocket transport state after that install. That made a transport-level reset part of the compaction API even though websocket incremental request selection already checks whether the next request is a strict extension of the previous one and falls back to a fullresponse.createwhen it is not.What changed
reset_websocket_sessionfromcompact.rsandsession/turn.rs.CodexResult<()>instead of carrying a reset flag.ModelClientSession::reset_websocket_sessionprivate toclient.rs, leaving only the websocket timeout recovery path inside the client as a caller.Validation
cargo test -p codex-core --test all responses_websocket_creates_on_non_prefixcargo test -p codex-core --test all steered_user_input_waits_for_model_continuation_after_mid_turn_compactcargo test -p codex-core --test all pre_sampling_compact_runs_on_switch_to_smaller_context_model