From 74b8c17392d6d83cdc88ee89e5218e89e4b5ffa2 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Thu, 3 Sep 2026 13:48:02 -0600 Subject: [PATCH] perf: probe models-override staleness in the background refresh task --- src/config/mod.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/config/mod.rs b/src/config/mod.rs index 96ac24a..36d16ae 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -657,15 +657,18 @@ pub fn maybe_spawn_models_refresh(app: &AppConfig) { if !app.sync_models_auto || app.dry_run { return; } - let loadable = paths::local_models_override().is_ok(); - let mtime = fs::metadata(paths::models_override_file()) - .and_then(|metadata| metadata.modified()) - .ok(); - if !models_override_is_stale(loadable, mtime, app.sync_models_ttl_hours) { - return; - } + let ttl_hours = app.sync_models_ttl_hours; let url = app.sync_models_url.clone(); tokio::spawn(async move { + // The loadable probe deserializes the whole override catalog; keep it + // off the startup path. + let loadable = paths::local_models_override().is_ok(); + let mtime = fs::metadata(paths::models_override_file()) + .and_then(|metadata| metadata.modified()) + .ok(); + if !models_override_is_stale(loadable, mtime, ttl_hours) { + return; + } if let Err(err) = sync_models_quiet(url.as_deref()).await { debug!("Background models refresh failed: {err}"); }