diff --git a/codex-rs/rollout/src/recorder.rs b/codex-rs/rollout/src/recorder.rs index e87908db3f..31e6b579ff 100644 --- a/codex-rs/rollout/src/recorder.rs +++ b/codex-rs/rollout/src/recorder.rs @@ -1814,14 +1814,17 @@ fn thread_item_from_state_list_item(item: codex_state::ThreadListItem) -> Thread let source = serde_json::from_str(item.source.as_str()) .or_else(|_| serde_json::from_value(Value::String(item.source))) .unwrap_or(SessionSource::Unknown); - let name = item - .name - .filter(|name| !name.trim().is_empty()) - .or_else(|| { + let name = match item.name { + Some(name) => { + let name = name.trim(); + (!name.is_empty()).then(|| name.to_string()) + } + None => { let title = item.title.trim(); (!title.is_empty() && item.first_user_message.as_deref().map(str::trim) != Some(title)) .then(|| item.title.clone()) - }); + } + }; ThreadItem { path: item.rollout_path, thread_id: Some(item.id), diff --git a/codex-rs/thread-store/src/local/helpers.rs b/codex-rs/thread-store/src/local/helpers.rs index 027d846940..81e32378b7 100644 --- a/codex-rs/thread-store/src/local/helpers.rs +++ b/codex-rs/thread-store/src/local/helpers.rs @@ -188,11 +188,17 @@ pub(super) fn stored_thread_from_state_list_item( let preview = preview .or_else(|| first_user_message.clone()) .unwrap_or_default(); - let name = name.filter(|name| !name.trim().is_empty()).or_else(|| { - let title = title.trim(); - (!title.is_empty() && first_user_message.as_deref().map(str::trim) != Some(title)) - .then(|| title.to_string()) - }); + let name = match name { + Some(name) => { + let name = name.trim(); + (!name.is_empty()).then(|| name.to_string()) + } + None => { + let title = title.trim(); + (!title.is_empty() && first_user_message.as_deref().map(str::trim) != Some(title)) + .then(|| title.to_string()) + } + }; let git_info = git_info_from_parts(git_sha, git_branch, git_origin_url); let rollout_path = codex_rollout::plain_rollout_path(rollout_path.as_path()); let model_provider = if model_provider.is_empty() {