Track Codex app-server turn state - #235
Closed
myobie wants to merge 2 commits into
Closed
Conversation
This was referenced Aug 10, 2026
Contributor
Author
|
Folded into the reviewable implementation replacement #241 at exact head |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Review order
This is the next Codex implementation slice after #234. Read the native-delivery set in this order:
#232 is the separate Claude contract. It remains parked on provider organization policy.
Summary
thread/resumeresumeandforkselections instead of constraining them to an older saved bindingThis PR is task 11 only. It does not select inbox messages, call
turn/startorturn/steer, or record a delivery receipt.Safety boundary
Only the latest unmatched
turn/startedevent supplies an active turn ID. Review, compaction, conflicting turns, active-without-ID,notLoaded, andsystemErrorare explicit hold states. An exactturn/completedevent or a later idle thread status clears safe state to idle.A new blank thread may report
no rollout foundwhen the control connection first callsthread/resume. The watcher treats only that exact response as deferred. It does not claim subscription success, and it retries after a later bound status change. Other protocol errors fail closed.Verification
Green on exact head
0d98a6071961e5abb3dbaa1439156231c38ca869:cargo check --lockedcargo test --locked --lib codex_app_server --no-fail-fast— 11/11cargo test --locked --test codex_app_server --no-fail-fast— 3/3cargo clippy --all-targets --locked— no new warnings; existing repository warnings remainrustfmt --check --edition 2024 src/codex_app_server.rsgit diff --checkThe repository-wide test command is not green in this checkout. It reports failures in
catalog_diff,eval_up,native_only, andnomad_survival. This PR changes onlysrc/codex_app_server.rs; hosted Nix remains the required full gate.Live Codex receipt
The exact committed binary ran Codex CLI 0.145.0 through one private Unix socket. The control connection bound and subscribed to thread
019fecca-8538-7302-b13e-461d986bb6bdin runtime incarnationaa1c2bc10e718238a9d1bcb480a3ffeb. It persisted idle, then active with exact turn019feccc-7559-7f12-9d4c-e5afbcfa277c, then idle after the TUI returnedWATCH_ACTIVE_DONE.The owned session exited 0. Its owner lock was free, no private socket remained, and the private proof root was removed after shutdown.