Defer managed worktree transitions to fresh TUI loop iterations - #43298
Merged
copyberry[bot] merged 1 commit intoSep 6, 2026
Conversation
## Why Managed worktree transitions run through the event handler into the large synchronous `ChatWidget` constructor. Split this work so each stage runs on a fresh event-loop stack. ## What changed - Queue worktree setup, checkout completion and configuration loading, session transition, and widget attachment as separate stages with boxed futures. - Recheck the source session before transitioning and report retained checkout cleanup instructions when the transition cannot proceed. - Keep the old configuration paired with the old widget until attachment, and protect input during the handoff. ## Testing Update worktree lifecycle and submission tests to drain the deferred stages explicitly and assert that checkout creation starts before completion. GitOrigin-RevId: 0435f56d08bf3a6392d35b5c1cfdcc0f1fe02753
Contributor
|
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
copyberry
Bot
force-pushed
the
copyberry/codex-internal-to-codex-oss/0435f56d08bf3a6392d35b5c1cfdcc0f1fe02753
branch
from
September 6, 2026 22:35
402b91f to
52e12e0
Compare
copyberry
Bot
deleted the
copyberry/codex-internal-to-codex-oss/0435f56d08bf3a6392d35b5c1cfdcc0f1fe02753
branch
September 6, 2026 22:36
StreamVi
temporarily deployed
to
issue-triage
September 6, 2026 23:08 — with
GitHub Actions
Inactive
StreamVi
temporarily deployed
to
issue-triage
September 6, 2026 23:08 — with
GitHub Actions
Inactive
StreamVi
temporarily deployed
to
issue-triage
September 6, 2026 23:08 — with
GitHub Actions
Inactive
StevenVincentOne
temporarily deployed
to
issue-triage
September 6, 2026 23:09 — with
GitHub Actions
Inactive
StevenVincentOne
temporarily deployed
to
issue-triage
September 6, 2026 23:09 — with
GitHub Actions
Inactive
StevenVincentOne
temporarily deployed
to
issue-triage
September 6, 2026 23:09 — with
GitHub Actions
Inactive
StevenVincentOne
temporarily deployed
to
issue-triage
September 6, 2026 23:10 — with
GitHub Actions
Inactive
miguelcandela
temporarily deployed
to
issue-triage
September 6, 2026 23:40 — with
GitHub Actions
Inactive
miguelcandela
temporarily deployed
to
issue-triage
September 6, 2026 23:40 — with
GitHub Actions
Inactive
miguelcandela
temporarily deployed
to
issue-triage
September 6, 2026 23:40 — with
GitHub Actions
Inactive
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.
Defer managed worktree transitions to fresh TUI loop iterations
Why
Managed worktree transitions run through the event handler into the large synchronous
ChatWidgetconstructor. Split this work so each stage runs on a fresh event-loop stack.What changed
Testing
Update worktree lifecycle and submission tests to drain the deferred stages explicitly and assert that checkout creation starts before completion.