From 4b66b094d50c5fef8f30b93c9a42aa0b5b1f7bfb Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 26 Aug 2025 18:23:17 -0300 Subject: [PATCH] feat: add finalization state management for meta plugins Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) --- src/services/meta_service.rs | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/services/meta_service.rs b/src/services/meta_service.rs index 417ac85..922f66f 100644 --- a/src/services/meta_service.rs +++ b/src/services/meta_service.rs @@ -126,22 +126,16 @@ impl MetaService { ) { for meta_plugin in plugins.iter_mut() { // Skip plugins that are already finalized - if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::() { - if internal_plugin.is_finalized() { - continue; - } + if meta_plugin.is_finalized() { + continue; } - // Add similar checks for other internal plugin types as needed let response = meta_plugin.update(chunk); self.process_plugin_response(conn, item_id, meta_plugin, response); // Set finalized flag if response indicates finalization if response.is_finalized { - if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::() { - internal_plugin.set_finalized(true); - } - // Add similar checks for other internal plugin types as needed + meta_plugin.set_finalized(true); } } } @@ -149,22 +143,16 @@ impl MetaService { pub fn finalize_plugins(&self, plugins: &mut [Box], conn: &Connection, item_id: i64) { for meta_plugin in plugins.iter_mut() { // Skip plugins that are already finalized - if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::() { - if internal_plugin.is_finalized() { - continue; - } + if meta_plugin.is_finalized() { + continue; } - // Add similar checks for other internal plugin types as needed let response = meta_plugin.finalize(); self.process_plugin_response(conn, item_id, meta_plugin, response); // Set finalized flag if response indicates finalization if response.is_finalized { - if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::() { - internal_plugin.set_finalized(true); - } - // Add similar checks for other internal plugin types as needed + meta_plugin.set_finalized(true); } } }