From 6cfeadd4f0af78fa42a604d5d4da753ecd3c9c87 Mon Sep 17 00:00:00 2001 From: anais Date: Sun, 21 Jun 2026 11:46:59 -0700 Subject: [PATCH] preserve explicit and legacy thread names --- .../external_agent_session_import.rs | 4 ++-- codex-rs/thread-store/src/local/helpers.rs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/codex-rs/app-server/src/request_processors/external_agent_session_import.rs b/codex-rs/app-server/src/request_processors/external_agent_session_import.rs index d4abb155ec..dbffcd44e0 100644 --- a/codex-rs/app-server/src/request_processors/external_agent_session_import.rs +++ b/codex-rs/app-server/src/request_processors/external_agent_session_import.rs @@ -221,11 +221,11 @@ impl ExternalAgentSessionImporter { }, }; rollout_items.retain(is_persisted_rollout_item); - let title = title + let name = title .as_deref() .and_then(codex_core::util::normalize_thread_name); let metadata = ThreadMetadataPatch { - title, + name: name.map(Some), preview: first_user_message.clone(), model_provider: Some(model_provider), created_at: Some(now), diff --git a/codex-rs/thread-store/src/local/helpers.rs b/codex-rs/thread-store/src/local/helpers.rs index 971eee8d03..870bdb3250 100644 --- a/codex-rs/thread-store/src/local/helpers.rs +++ b/codex-rs/thread-store/src/local/helpers.rs @@ -177,12 +177,25 @@ pub(super) fn permission_profile_to_metadata_value( } pub(super) fn thread_metadata_name(metadata: &ThreadMetadata) -> Option { - metadata + let explicit_name = metadata .name .as_deref() .map(str::trim) .filter(|name| !name.is_empty()) - .map(str::to_string) + .map(str::to_string); + if explicit_name.is_some() { + return explicit_name; + } + + // Preserve display names from rows written before explicit names had their own column. + let legacy_title = metadata.title.trim(); + if legacy_title.is_empty() + || metadata.first_user_message.as_deref().map(str::trim) == Some(legacy_title) + { + None + } else { + Some(legacy_title.to_string()) + } } pub(super) fn set_thread_name_from_title(thread: &mut StoredThread, title: String) {