codex - 💡(How to fix) Fix codex resume --all still filters by the current model provider [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openai/codex#19318Fetched 2026-04-25 06:11:51
View on GitHub
Comments
1
Participants
2
Timeline
8
Reactions
0
Author
Timeline (top)
labeled ×4commented ×1cross-referenced ×1marked_as_duplicate ×1

codex resume --all does not show sessions created under other model_providers when running against the embedded local app-server.

In practice, --all currently means "all CWDs, but still only the current provider", which is surprising and hides valid local history.

Root Cause

There are two places in the TUI path that keep applying the default provider filter even when --all is set:

  • codex-rs/tui/src/resume_picker.rs
  • codex-rs/tui/src/lib.rs

In both places, the code drops the CWD filter for show_all, but it still keeps the current-provider filter unless the app-server is remote.

Code Example

codex resume --all
RAW_BUFFERClick to expand / collapse

Summary

codex resume --all does not show sessions created under other model_providers when running against the embedded local app-server.

In practice, --all currently means "all CWDs, but still only the current provider", which is surprising and hides valid local history.

Reproduction

  1. Create some local interactive sessions with one provider, for example model_provider = "cch".
  2. Switch the current config to another provider, for example model_provider = "custom".
  3. Run:
codex resume --all

Expected

The picker should show all local interactive sessions regardless of which provider recorded them.

Actual

Only sessions for the currently active provider are shown.

Notes

I verified the underlying thread/list behavior directly through the app-server:

  • Omitting modelProviders returns only the current provider in this path.
  • Passing modelProviders: [] returns sessions from all providers, including the missing ones.

Example from a mixed local history:

  • default thread/list result: only custom
  • thread/list with modelProviders: []: custom + other

Root cause

There are two places in the TUI path that keep applying the default provider filter even when --all is set:

  • codex-rs/tui/src/resume_picker.rs
  • codex-rs/tui/src/lib.rs

In both places, the code drops the CWD filter for show_all, but it still keeps the current-provider filter unless the app-server is remote.

Proposed fix

Treat show_all as "all providers" too:

  • use ProviderFilter::Any in the resume picker when show_all is true
  • set model_providers = None for resume --last --all too

That matches the app-server contract and fixes both picker and --last behavior.

extent analysis

TL;DR

To fix the issue, update the codex-rs/tui code to treat --all as "all providers" by using ProviderFilter::Any and setting model_providers = None when show_all is true.

Guidance

  • Review the codex-rs/tui/src/resume_picker.rs and codex-rs/tui/src/lib.rs files to ensure the default provider filter is removed when --all is set.
  • Verify that the thread/list behavior returns sessions from all providers by passing modelProviders: [] to the app-server.
  • Test the codex resume --all command with different providers to ensure all local interactive sessions are shown.
  • Consider updating the documentation to reflect the new behavior of --all to avoid user confusion.

Example

// In codex-rs/tui/src/resume_picker.rs
if show_all {
    // Use ProviderFilter::Any to include all providers
    let provider_filter = ProviderFilter::Any;
    // ...
}

// In codex-rs/tui/src/lib.rs
if show_all {
    // Set model_providers to None to include all providers
    let model_providers = None;
    // ...
}

Notes

The proposed fix assumes that the ProviderFilter::Any and model_providers = None changes will correctly implement the desired behavior. Additional testing and verification may be necessary to ensure the fix works as expected.

Recommendation

Apply the proposed workaround by updating the codex-rs/tui code to use ProviderFilter::Any and set model_providers = None when show_all is true, as this will fix the issue and provide the expected behavior.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix codex resume --all still filters by the current model provider [1 comments, 2 participants]