Skip to content

fix: remove stale Codex resume helper call - #12659

Merged
lawrencecchen merged 3 commits into
mainfrom
feat-fix-codex-resume-helper
Sep 15, 2026
Merged

lawrencecchen merged 3 commits into
mainfrom
feat-fix-codex-resume-helper

Conversation

@austinywang

@austinywang austinywang commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

codex --yolo prints cmux_codex_resume_session_id: command not found on cmux 0.64.23 because an obsolete resume startup block was restored without its deleted helper. Remove the block so Codex's injected hooks remain the source of session identity.

The regression test rejects startup stderr and synthetic session-start calls. The test and fix remain separate commits. The branch is updated with current main, which contains the correction for the unrelated PendingRemoteRename access-level compilation error.

Validation:

  • The installed 0.64.23 wrapper reproduces the error with --yolo; this fix preserves the argument and injected hooks with empty stderr.
  • The regression test catches the installed bug across all 12 fresh/resume and socket-state combinations. The complete resume-hook suite passes with the fix.
  • env -i PATH="$PATH" TMPDIR="$TMPDIR" python3 tests/test_codex_wrapper_computer_use_mcp.py passes.
  • bash -n Resources/bin/cmux-codex-wrapper and git diff --check pass.
  • Tagged macOS build succeeds for the refreshed source. Its bundled wrapper matches the PR.
  • Real in-app check: codex --yolo opens Codex 0.154.0 without the missing-function error in tag cdx650, workspace:1/surface:2, through /tmp/cmux-debug-cdx650.sock. Screenshot captured and inspected.
  • Localization audit: no user-facing strings added or changed.

Dogfood: open tag cdx650 and run codex --yolo in its terminal. Codex should start without the missing-function message.

Closes #12650

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 71d9dd5a-74d1-441d-9199-40407ee7db40

📥 Commits

Reviewing files that changed from the base of the PR and between 211b8bb and 2c32185.

📒 Files selected for processing (2)
  • Resources/bin/cmux-codex-wrapper
  • tests/test_codex_wrapper_resume_hooks.py
💤 Files with no reviewable changes (1)
  • Resources/bin/cmux-codex-wrapper

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The Codex wrapper no longer emits a synthetic session-start event when resuming a session. Shared tests now require empty stderr and no session-start entries in the cmux log.

Changes

Codex resume hook behavior

Layer / File(s) Summary
Remove synthetic session-start emission
Resources/bin/cmux-codex-wrapper, tests/test_codex_wrapper_resume_hooks.py
The wrapper no longer queues a resume session-start payload. The shared test helper checks for empty stderr and no session-start entries in the cmux log.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 2c321

The wrapper now relies on injected hook arguments and removes the stale resume helper without an identified regression.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed The custom check is not applicable. The reviewed diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py; it contains no production Swift files or Swift dec…
Cmux Swift Blocking Runtime ✅ Passed PASS: The reviewed range changes only Resources/bin/cmux-codex-wrapper (shell, 31 lines removed) and tests/test_codex_wrapper_resume_hooks.py (Python, 3 assertions added). It contains no changed S…
Cmux Browser Automation Off-Main ✅ Passed PASS. The pull request changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. The patch contains no browser commands, WebKit/AppKit waits, socket-worker routin…
Cmux Expensive Synchronous Load ✅ Passed PASS. The authoritative pull-request diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It contains no Swift files or production Swift code, so it can…
Cmux Cache Substitution Correctness ✅ Passed PASS: The authoritative PR diff changes only Resources/bin/cmux-codex-wrapper (shell) and tests/test_codex_wrapper_resume_hooks.py (Python). It contains no production Swift, TypeScript, or JavaScr…
Cmux No Hacky Sleeps ✅ Passed The PR does not introduce or worsen a hacky sleep or fixed wait. The production wrapper diff only removes the resume-session enqueue block, including its 1-second CLI timeout. The test change adds std…
Cmux Algorithmic Complexity ✅ Passed PASS. The authoritative diff removes 31 lines from the production shell wrapper and adds only two test assertions. It introduces no collection scan, sorting, filtering, join, or slower algorithm. The …
Cmux Swift Concurrency ✅ Passed The pull request changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. The review-range diff contains no Swift files or Swift code. Therefore it introduces no…
Cmux Swift @Concurrent ✅ Passed PASS: The reviewed range changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. No Swift files or Swift concurrency annotations changed, so the @concurrent c…
Cmux Swift Package Boundaries ✅ Passed The authoritative diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It contains no production Swift files, Package.swift, or Swift package target c…
Cmux Swiftpm Lockfiles ✅ Passed PASS. The review-scoped diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It changes no Package.swift, Package.resolved, Xcode project/workspace,…
Cmux Swift Logging ✅ Passed PASS: The pull request changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py; the authoritative diff contains no Swift files or production Swift code. The cust…
Cmux User-Facing Error Privacy ✅ Passed PASS: The production diff only deletes a resume helper call, its synthetic session-start enqueue, and related developer comments. It adds no user-facing error, alert, command output, recovery copy, …
Cmux Full Internationalization ✅ Passed The PR changes only a shell wrapper and its test. The production diff removes resume-hook logic and developer comments; it does not add or change user-facing text. The test additions are explicitly al…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. No SwiftUI, Swift, Xcode project, or view files changed. The SwiftUI state and la…
Cmux Architecture Rethink ✅ Passed PASS. The authoritative diff changes only a Bash wrapper and a Python test. It removes the wrapper-side resume session-start enqueue and adds assertions for empty stderr and no synthetic `session-st…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The authoritative pull-request diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It contains no Swift changes and adds or changes no cmux-owned…
Cmux Source Artifacts ✅ Passed The PR changes only two tracked, hand-written source paths: Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. The wrapper change removes code, and the test change adds…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS. The authoritative pull-request diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It changes no Swift file under a production Sources/ path, s…
Cmux No Ambient Global State ✅ Passed PASS. The authoritative pull-request diff changes only Resources/bin/cmux-codex-wrapper and tests/test_codex_wrapper_resume_hooks.py. It contains no production Swift changes and therefore does not…
Title check ✅ Passed The title clearly identifies the main change: removing the stale Codex resume helper call. It is concise and specific.
Description check ✅ Passed The description clearly explains the cause, fix, testing, regression coverage, and manual verification. It is mostly complete, although it omits the template's explicit Demo Video, Review Trigger, and…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-fix-codex-resume-helper

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lawrencecchen
lawrencecchen merged commit 8bde8e2 into main Sep 15, 2026
17 of 18 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 15, 2026
922394a Allow switching accounts on CLI authorization (manaflow-ai#12679)
8bde8e2 fix: remove stale Codex resume helper call (manaflow-ai#12659)
@austinywang austinywang mentioned this pull request Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v0.64.23: cmux-codex-wrapper calls undefined cmux_codex_resume_session_id

2 participants