fix: Rfc3339 casting (#10386)

This commit is contained in:
jif-oai
2026-02-02 14:33:28 +01:00
committed by GitHub
parent e9a774e7ae
commit 4f1cfaf892

View File

@@ -243,9 +243,7 @@ impl serde::Serialize for Cursor {
{ {
let ts_str = self let ts_str = self
.ts .ts
.format(&format_description!( .format(&Rfc3339)
"[year]-[month]-[day]T[hour]-[minute]-[second]"
))
.map_err(|e| serde::ser::Error::custom(format!("format error: {e}")))?; .map_err(|e| serde::ser::Error::custom(format!("format error: {e}")))?;
serializer.serialize_str(&format!("{ts_str}|{}", self.id)) serializer.serialize_str(&format!("{ts_str}|{}", self.id))
} }
@@ -628,9 +626,13 @@ pub fn parse_cursor(token: &str) -> Option<Cursor> {
return None; return None;
}; };
let ts = OffsetDateTime::parse(file_ts, &Rfc3339).ok().or_else(|| {
let format: &[FormatItem] = let format: &[FormatItem] =
format_description!("[year]-[month]-[day]T[hour]-[minute]-[second]"); format_description!("[year]-[month]-[day]T[hour]-[minute]-[second]");
let ts = PrimitiveDateTime::parse(file_ts, format).ok()?.assume_utc(); PrimitiveDateTime::parse(file_ts, format)
.ok()
.map(PrimitiveDateTime::assume_utc)
})?;
Some(Cursor::new(ts, uuid)) Some(Cursor::new(ts, uuid))
} }
@@ -967,10 +969,7 @@ async fn read_head_summary(path: &Path, head_limit: usize) -> io::Result<HeadTai
RolloutItem::SessionMeta(session_meta_line) => { RolloutItem::SessionMeta(session_meta_line) => {
summary.source = Some(session_meta_line.meta.source.clone()); summary.source = Some(session_meta_line.meta.source.clone());
summary.model_provider = session_meta_line.meta.model_provider.clone(); summary.model_provider = session_meta_line.meta.model_provider.clone();
summary.created_at = summary summary.created_at = Some(session_meta_line.meta.timestamp.clone());
.created_at
.clone()
.or_else(|| Some(rollout_line.timestamp.clone()));
summary.saw_session_meta = true; summary.saw_session_meta = true;
if summary.head.len() < head_limit if summary.head.len() < head_limit
&& let Ok(val) = serde_json::to_value(session_meta_line) && let Ok(val) = serde_json::to_value(session_meta_line)