feat: update digest and system plugins to return PluginResponse

Co-authored-by: aider (openai/andrew/openrouter/mistralai/mistral-medium-3.1) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-26 15:37:00 -03:00
parent 7b43827926
commit 128d98c4e3
2 changed files with 28 additions and 12 deletions

View File

@@ -58,25 +58,34 @@ impl MetaPlugin for DigestSha256MetaPlugin {
true true
} }
fn initialize(&mut self, _conn: &Connection, item_id: i64) -> Result<()> { fn initialize(&mut self, item_id: i64) -> Result<PluginResponse> {
self.item_id = Some(item_id); self.item_id = Some(item_id);
Ok(()) Ok(PluginResponse::default())
} }
fn finalize(&mut self, conn: &Connection) -> Result<()> { fn finalize(&mut self) -> Result<PluginResponse> {
let mut metadata = Vec::new();
if let Some(item_id) = self.item_id { if let Some(item_id) = self.item_id {
// Finalize the hash // Finalize the hash
let hash_result = self.hasher.finalize_reset(); let hash_result = self.hasher.finalize_reset();
let hex_string = format!("{:x}", hash_result); let hex_string = format!("{:x}", hash_result);
// Save the hash as metadata using central output handler // Create metadata to be stored
let _ = self.save_meta(conn, item_id, "digest_sha256", hex_string); 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<PluginResponse> {
self.hasher.update(data); self.hasher.update(data);
Ok(PluginResponse::default())
} }
fn meta_name(&self) -> String { fn meta_name(&self) -> String {

View File

@@ -174,11 +174,18 @@ impl MetaPlugin for UidMetaPlugin {
self.meta_name.clone() self.meta_name.clone()
} }
fn initialize(&mut self, conn: &Connection, item_id: i64) -> Result<()> { fn initialize(&mut self, item_id: i64) -> Result<PluginResponse> {
let mut metadata = Vec::new();
let uid = get_current_uid().to_string(); let uid = get_current_uid().to_string();
self.save_meta(conn, item_id, "uid", uid)?;
self.is_saved = true; if let Some(meta) = self.create_meta(item_id, "uid", uid) {
Ok(()) metadata.push(meta);
}
Ok(PluginResponse {
metadata: Some(metadata),
is_finalized: true,
})
} }
fn outputs(&self) -> &std::collections::HashMap<String, serde_yaml::Value> { fn outputs(&self) -> &std::collections::HashMap<String, serde_yaml::Value> {