/resume failure to load any sessions after update.
What version of Codex CLI is running?
codex-cli 0.125.0
What subscription do you have?
/resume failure to load any sessions after update.
Which model were you using?
gpt-5.5
What platform is your computer?
Linux 6.8.0-107-generic x86_64
What terminal emulator and version are you using (if applicable)?
_No response_
What issue are you seeing?
/resume can hide all sessions after update due cwd and first_user_message filters
Version: codex-cli 0.125.0 / rust-v0.125.0
After updating Codex, /resume can show no sessions or incorrect sessions,
even for recent/new conversations.
I found two likely regressions:
codex-rs/tui/src/resume_picker.rs
Local picker filtering uses std::env::current_dir() instead of the active
session Config.cwd.
If Codex was started with --cd, resumed from another cwd, or the process
cwd differs from the configured session cwd, valid rows are filtered out.
codex-rs/state/src/runtime/threads.rs
Thread listing requires threads.first_user_message <> ''.
Migration 0007_threads_first_user_message.sql only backfilled
first_user_message for rows with has_user_event = 1, so upgraded/title-
only rows can become invisible to /resume.
Suggested fix:
- Use
config.cwd.as_path()for local picker cwd filtering. - Only apply server-side cwd filtering for remote sessions with an explicit
remote cwd.
- Change state list filtering to allow `(first_user_message <> '' OR title <>
'')`.
- Add a migration:
UPDATE threads SET first_user_message = title WHERE first_user_message = ''
AND title <> '';
What steps can reproduce the bug?
update to v0.125.0.
What is the expected behavior?
never load any session after use /resume. only show "loading session" with blank screen.
Additional information
Title: /resume can hide all sessions after update due cwd and
first_user_message filters
Version: codex-cli 0.125.0 / rust-v0.125.0
After updating Codex, /resume can show no sessions or incorrect sessions,
even for recent/new conversations.
I found two likely regressions:
codex-rs/tui/src/resume_picker.rs
Local picker filtering uses std::env::current_dir() instead of the active
session Config.cwd.
If Codex was started with --cd, resumed from another cwd, or the process
cwd differs from the configured session cwd, valid rows are filtered out.
codex-rs/state/src/runtime/threads.rs
Thread listing requires threads.first_user_message <> ''.
Migration 0007_threads_first_user_message.sql only backfilled
first_user_message for rows with has_user_event = 1, so upgraded/title-
only rows can become invisible to /resume.
Suggested fix:
- Use
config.cwd.as_path()for local picker cwd filtering. - Only apply server-side cwd filtering for remote sessions with an explicit
remote cwd.
- Change state list filtering to allow `(first_user_message <> '' OR title <>
'')`.
- Add a migration:
UPDATE threads SET first_user_message = title WHERE first_user_message = ''
AND title <> '';
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗