From 21a204fda8f9418fb07816a7222456851dd7e512 Mon Sep 17 00:00:00 2001 From: anais Date: Mon, 15 Jun 2026 13:12:01 -0700 Subject: [PATCH] preserve resume updated at --- .../src/request_processors/thread_processor.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/codex-rs/app-server/src/request_processors/thread_processor.rs b/codex-rs/app-server/src/request_processors/thread_processor.rs index db82334ab0..49289e9213 100644 --- a/codex-rs/app-server/src/request_processors/thread_processor.rs +++ b/codex-rs/app-server/src/request_processors/thread_processor.rs @@ -3177,6 +3177,18 @@ impl ThreadRequestProcessor { InitialHistory::Resumed(resumed) => { let fallback_provider = config_snapshot.model_provider_id.as_str(); if let Some(mut stored_thread) = resume_source_thread { + if let Some(created_at) = resumed.history.iter().find_map(|item| match item { + RolloutItem::SessionMeta(session_meta) => { + chrono::DateTime::parse_from_rfc3339(&session_meta.meta.timestamp) + .ok() + .map(|timestamp| timestamp.with_timezone(&chrono::Utc)) + } + _ => None, + }) { + // Resume does not advance updated_at until the next turn starts. + stored_thread.created_at = created_at; + stored_thread.updated_at = created_at; + } if stored_thread.preview.is_empty() { stored_thread.preview = preview_from_rollout_items(&resumed.history); }