Reduce stack pressure in session startup and config rebuilds#25844
Merged
Conversation
Collaborator
Author
|
@codex review |
Contributor
|
Codex Review: Didn't find any major issues. Keep it up! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Collaborator
Author
|
@codex review |
Collaborator
Author
|
@codex review |
Contributor
|
Codex Review: Didn't find any major issues. Keep them coming! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Collaborator
Author
|
CI failures are unrelated and due to plugin test issues |
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
/clearstarts a fresh thread withInitialHistory::Cleared, which re-enters the thread/session startup path. That path now builds large async futures throughThreadManagerState::spawn_thread_with_source,Codex::spawn, andSession::new. Separately, TUI config rebuilds for cwd and permission-profile changes build a similarly heavyConfigBuilder::build()future inside the app task. In debug and Bazel runs, those call chains can put enough state on the caller stack to abort before startup or config refresh completes.This change keeps the behavior the same while moving the heaviest future frames off the caller stack.
What changed
Codex::spawn(...)incodex-rs/core/src/thread_manager.rsbefore awaiting it fromspawn_thread_with_source.Session::new(...)incodex-rs/core/src/session/mod.rsbefore awaiting it fromCodex::spawn_internal.ConfigBuilder::build()through a smalltokio::spawnhelper incodex-rs/tui/src/app/config_persistence.rsso cwd and permission-profile config rebuilds run on a runtime worker stack while preserving error context.Verification
CI is running on the PR.
No new targeted tests were added. This is a mechanical stack-pressure reduction that keeps the existing behavior and error propagation intact.