preserve explicit and legacy thread names

This commit is contained in:
anais
2026-06-21 11:46:59 -07:00
parent 40d5b16ebb
commit 6cfeadd4f0
2 changed files with 17 additions and 4 deletions

View File

@@ -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),

View File

@@ -177,12 +177,25 @@ pub(super) fn permission_profile_to_metadata_value(
}
pub(super) fn thread_metadata_name(metadata: &ThreadMetadata) -> Option<String> {
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) {