diff --git a/src/db/libsql/mod.rs b/src/db/libsql/mod.rs index d089252f..bc2ea1e0 100644 --- a/src/db/libsql/mod.rs +++ b/src/db/libsql/mod.rs @@ -333,8 +333,14 @@ impl Database for LibSqlBackend { tracing::debug!("libSQL replicator flushed at frame {}", frame_no); Ok(()) } - Ok(None) => Ok(()), - Err(libsql::Error::SyncNotSupported(_)) => Ok(()), + Ok(None) => { + tracing::debug!("No libSQL replicator to flush, skipping shutdown sync"); + Ok(()) + } + Err(libsql::Error::SyncNotSupported(_)) => { + tracing::debug!("libSQL sync not supported, skipping flush on shutdown"); + Ok(()) + } Err(error) => Err(DatabaseError::from(error)), } } diff --git a/src/main.rs b/src/main.rs index 12a8caf6..2adb476c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -672,6 +672,8 @@ async fn async_main() -> anyhow::Result<()> { .as_ref() .map(|db| Arc::clone(db) as Arc); + let db_for_shutdown = components.db.clone(); + let deps = AgentDeps { store: components.db, llm: components.llm, @@ -930,6 +932,12 @@ async fn async_main() -> anyhow::Result<()> { } } + if let Some(db) = db_for_shutdown { + if let Err(e) = db.shutdown().await { + tracing::warn!("Failed to shutdown database cleanly: {}", e); + } + } + tracing::debug!("Agent shutdown complete"); Ok(())