feat: add finalization state management for meta plugins
Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
@@ -126,22 +126,16 @@ impl MetaService {
|
|||||||
) {
|
) {
|
||||||
for meta_plugin in plugins.iter_mut() {
|
for meta_plugin in plugins.iter_mut() {
|
||||||
// Skip plugins that are already finalized
|
// Skip plugins that are already finalized
|
||||||
if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::<crate::meta_plugin::BinaryMetaPlugin>() {
|
if meta_plugin.is_finalized() {
|
||||||
if internal_plugin.is_finalized() {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Add similar checks for other internal plugin types as needed
|
|
||||||
|
|
||||||
let response = meta_plugin.update(chunk);
|
let response = meta_plugin.update(chunk);
|
||||||
self.process_plugin_response(conn, item_id, meta_plugin, response);
|
self.process_plugin_response(conn, item_id, meta_plugin, response);
|
||||||
|
|
||||||
// Set finalized flag if response indicates finalization
|
// Set finalized flag if response indicates finalization
|
||||||
if response.is_finalized {
|
if response.is_finalized {
|
||||||
if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::<crate::meta_plugin::BinaryMetaPlugin>() {
|
meta_plugin.set_finalized(true);
|
||||||
internal_plugin.set_finalized(true);
|
|
||||||
}
|
|
||||||
// Add similar checks for other internal plugin types as needed
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,22 +143,16 @@ impl MetaService {
|
|||||||
pub fn finalize_plugins(&self, plugins: &mut [Box<dyn MetaPlugin>], conn: &Connection, item_id: i64) {
|
pub fn finalize_plugins(&self, plugins: &mut [Box<dyn MetaPlugin>], conn: &Connection, item_id: i64) {
|
||||||
for meta_plugin in plugins.iter_mut() {
|
for meta_plugin in plugins.iter_mut() {
|
||||||
// Skip plugins that are already finalized
|
// Skip plugins that are already finalized
|
||||||
if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::<crate::meta_plugin::BinaryMetaPlugin>() {
|
if meta_plugin.is_finalized() {
|
||||||
if internal_plugin.is_finalized() {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Add similar checks for other internal plugin types as needed
|
|
||||||
|
|
||||||
let response = meta_plugin.finalize();
|
let response = meta_plugin.finalize();
|
||||||
self.process_plugin_response(conn, item_id, meta_plugin, response);
|
self.process_plugin_response(conn, item_id, meta_plugin, response);
|
||||||
|
|
||||||
// Set finalized flag if response indicates finalization
|
// Set finalized flag if response indicates finalization
|
||||||
if response.is_finalized {
|
if response.is_finalized {
|
||||||
if let Some(internal_plugin) = meta_plugin.as_any_mut().downcast_mut::<crate::meta_plugin::BinaryMetaPlugin>() {
|
meta_plugin.set_finalized(true);
|
||||||
internal_plugin.set_finalized(true);
|
|
||||||
}
|
|
||||||
// Add similar checks for other internal plugin types as needed
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user