From 128d98c4e3d2c3d4fa655c88055fe9fc62e9284d Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 26 Aug 2025 15:37:00 -0300 Subject: [PATCH] feat: update digest and system plugins to return PluginResponse Co-authored-by: aider (openai/andrew/openrouter/mistralai/mistral-medium-3.1) --- src/meta_plugin/digest.rs | 25 +++++++++++++++++-------- src/meta_plugin/system.rs | 15 +++++++++++---- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/meta_plugin/digest.rs b/src/meta_plugin/digest.rs index 2b746a4..1c7704c 100644 --- a/src/meta_plugin/digest.rs +++ b/src/meta_plugin/digest.rs @@ -58,25 +58,34 @@ impl MetaPlugin for DigestSha256MetaPlugin { true } - fn initialize(&mut self, _conn: &Connection, item_id: i64) -> Result<()> { + fn initialize(&mut self, item_id: i64) -> Result { self.item_id = Some(item_id); - Ok(()) + Ok(PluginResponse::default()) } - fn finalize(&mut self, conn: &Connection) -> Result<()> { + fn finalize(&mut self) -> Result { + let mut metadata = Vec::new(); + if let Some(item_id) = self.item_id { // Finalize the hash let hash_result = self.hasher.finalize_reset(); let hex_string = format!("{:x}", hash_result); - - // Save the hash as metadata using central output handler - let _ = self.save_meta(conn, item_id, "digest_sha256", hex_string); + + // Create metadata to be stored + if let Some(meta) = self.create_meta(item_id, "digest_sha256", hex_string) { + metadata.push(meta); + } } - Ok(()) + + Ok(PluginResponse { + metadata: Some(metadata), + is_finalized: true, + }) } - fn update(&mut self, data: &[u8], _conn: &Connection) { + fn update(&mut self, data: &[u8]) -> Result { self.hasher.update(data); + Ok(PluginResponse::default()) } fn meta_name(&self) -> String { diff --git a/src/meta_plugin/system.rs b/src/meta_plugin/system.rs index 64ff932..e7ab5c3 100644 --- a/src/meta_plugin/system.rs +++ b/src/meta_plugin/system.rs @@ -174,11 +174,18 @@ impl MetaPlugin for UidMetaPlugin { self.meta_name.clone() } - fn initialize(&mut self, conn: &Connection, item_id: i64) -> Result<()> { + fn initialize(&mut self, item_id: i64) -> Result { + let mut metadata = Vec::new(); let uid = get_current_uid().to_string(); - self.save_meta(conn, item_id, "uid", uid)?; - self.is_saved = true; - Ok(()) + + if let Some(meta) = self.create_meta(item_id, "uid", uid) { + metadata.push(meta); + } + + Ok(PluginResponse { + metadata: Some(metadata), + is_finalized: true, + }) } fn outputs(&self) -> &std::collections::HashMap {