Skip to content

[5 of 7] Replace OverrideTurnContext with ThreadSettings#22508

Merged
etraut-openai merged 2 commits into
mainfrom
etraut/next-turn-state-core
May 19, 2026
Merged

[5 of 7] Replace OverrideTurnContext with ThreadSettings#22508
etraut-openai merged 2 commits into
mainfrom
etraut/next-turn-state-core

Conversation

@etraut-openai
Copy link
Copy Markdown
Collaborator

@etraut-openai etraut-openai commented May 13, 2026

Stack position: [5 of 7]

Summary

This PR adds Op::ThreadSettings, a queued settings-only update mechanism for changing stored thread settings without starting a new turn. It also removes the legacy Op::OverrideTurnContext in the same layer, so reviewers can see the replacement and deletion together.

Changes

  • Add Op::ThreadSettings for settings-only queued updates.
  • Emit ThreadSettingsApplied with the effective thread settings snapshot after core applies an update.
  • Route settings-only updates through the same submission queue as user input.
  • Migrate remaining OverrideTurnContext tests and callers to the queued Op::ThreadSettings path.
  • Delete Op::OverrideTurnContext from the core protocol and submission loop.

This stack addresses #20656 and #22090.

Stack

  1. [1 of 7] Add thread settings to UserInput
  2. [2 of 7] Remove UserInputWithTurnContext
  3. [3 of 7] Remove UserTurn
  4. [4 of 7] Placeholder for OverrideTurnContext cleanup
  5. [5 of 7] Replace OverrideTurnContext with ThreadSettings (this PR)
  6. [6 of 7] Add app-server thread settings API
  7. [7 of 7] Sync TUI thread settings

Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 63a3a26013

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/core/src/codex_thread.rs Outdated
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b3105be32a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/protocol/src/protocol.rs
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a46e9baa4b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/protocol/src/protocol.rs Outdated
Comment thread codex-rs/protocol/src/protocol.rs Outdated
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 34263f13ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/core/src/codex_thread.rs Outdated
@etraut-openai etraut-openai changed the title [1 of 3] Add core next-turn state plumbing [2 of 4] Add queued core turn context op May 16, 2026
@etraut-openai etraut-openai changed the base branch from main to etraut/next-turn-state-input-op-consolidation May 16, 2026 20:29
@etraut-openai etraut-openai changed the title [2 of 4] Add queued core turn context op [4 of 6] Add queued core turn context op May 16, 2026
@etraut-openai etraut-openai force-pushed the etraut/next-turn-state-core branch from b2fa7ac to 9393c26 Compare May 16, 2026 22:50
@etraut-openai etraut-openai changed the title [4 of 6] Add queued core turn context op [5 of 7] Add queued core turn context op May 16, 2026
@etraut-openai etraut-openai changed the base branch from etraut/next-turn-state-input-op-consolidation to etraut/next-turn-state-remove-override-context May 16, 2026 22:51
Comment thread codex-rs/core/src/session/tests.rs Outdated
Comment thread codex-rs/core/src/session/handlers.rs Outdated
Comment thread codex-rs/core/src/session/handlers.rs Outdated
Comment thread codex-rs/core/src/session/handlers.rs Outdated
Comment thread codex-rs/core/src/codex_thread.rs Outdated
Comment thread codex-rs/core/src/session/handlers.rs
@etraut-openai etraut-openai changed the title [5 of 7] Add queued core turn context op [5 of 7] Add queued core thread settings op May 18, 2026
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: de38d2a98b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/rollout/src/policy.rs
@etraut-openai etraut-openai force-pushed the etraut/next-turn-state-remove-override-context branch from d6ae36f to 4939645 Compare May 18, 2026 23:43
@etraut-openai etraut-openai changed the title [5 of 7] Add queued core thread settings op [5 of 7] Replace OverrideTurnContext with ThreadSettings May 18, 2026
etraut-openai added a commit that referenced this pull request May 19, 2026
**Stack position:** [1 of 7]

## Summary

The first three PRs in this stack are a cleanup pass before the actual
thread settings API work.

Today, core has several overlapping "user input" ops: `UserInput`,
`UserInputWithTurnContext`, and `UserTurn`. They differ mostly in how
much next-turn state they carry, which makes the later queued thread
settings update harder to reason about and review.

This PR starts that cleanup by adding the shared
`ThreadSettingsOverrides` payload and allowing `Op::UserInput` to carry
it. Existing variants remain in place here, so this layer is mostly a
behavior-preserving API shape change plus mechanical constructor
updates.

## End State After PR3

By the end of PR3, `Op::UserInput` is the only "user input" core op. It
can carry optional thread settings overrides for callers that need to
update stored defaults with a turn, while callers without updates use
empty settings. `Op::UserInputWithTurnContext` and `Op::UserTurn` are
deleted.

## End State After PR5

By the end of PR5, core will have only two ops for this area:

- `Op::UserInput` for user-input-bearing submissions.
- `Op::ThreadSettings` for settings-only updates.

## Stack

1. [1 of 7] [Add thread settings to
UserInput](#23080) (this PR)
2. [2 of 7] [Remove
UserInputWithTurnContext](#23081)
3. [3 of 7] [Remove
UserTurn](#23075)
4. [4 of 7] [Placeholder for OverrideTurnContext
cleanup](#23087)
5. [5 of 7] [Replace OverrideTurnContext with
ThreadSettings](#22508)
6. [6 of 7] [Add app-server thread settings
API](#22509)
7. [7 of 7] [Sync TUI thread
settings](#22510)
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef2278bfdc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/core/src/session/handlers.rs
etraut-openai added a commit that referenced this pull request May 19, 2026
**Stack position:** [2 of 7]

## Summary

This PR removes the overlapping `Op::UserInputWithTurnContext` variant
now that `Op::UserInput` can carry thread settings overrides directly.

## Stack

1. [1 of 7] [Add thread settings to
UserInput](#23080)
2. [2 of 7] [Remove
UserInputWithTurnContext](#23081)
(this PR)
3. [3 of 7] [Remove
UserTurn](#23075)
4. [4 of 7] [Placeholder for OverrideTurnContext
cleanup](#23087)
5. [5 of 7] [Replace OverrideTurnContext with
ThreadSettings](#22508)
6. [6 of 7] [Add app-server thread settings
API](#22509)
7. [7 of 7] [Sync TUI thread
settings](#22510)
etraut-openai added a commit that referenced this pull request May 19, 2026
**Stack position:** [3 of 7]

## Summary

This PR finishes the input-op consolidation by moving the remaining
`Op::UserTurn` callers onto `Op::UserInput` and deleting `Op::UserTurn`.
This touches a lot of files, but it is a low-risk mechanical migration.

## Stack

1. [1 of 7] [Add thread settings to
UserInput](#23080)
2. [2 of 7] [Remove
UserInputWithTurnContext](#23081)
3. [3 of 7] [Remove
UserTurn](#23075) (this PR)
4. [4 of 7] [Placeholder for OverrideTurnContext
cleanup](#23087)
5. [5 of 7] [Replace OverrideTurnContext with
ThreadSettings](#22508)
6. [6 of 7] [Add app-server thread settings
API](#22509)
7. [7 of 7] [Sync TUI thread
settings](#22510)
@etraut-openai etraut-openai force-pushed the etraut/next-turn-state-core branch from 7a091b0 to 9d90b42 Compare May 19, 2026 03:08
@etraut-openai etraut-openai changed the base branch from etraut/next-turn-state-remove-override-context to main May 19, 2026 03:08
@etraut-openai etraut-openai merged commit a668379 into main May 19, 2026
31 checks passed
@etraut-openai etraut-openai deleted the etraut/next-turn-state-core branch May 19, 2026 04:03
@github-actions github-actions Bot locked and limited conversation to collaborators May 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants