From 6b06b23686714afafd1608851b824d8288109e56 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 26 Aug 2025 08:57:56 -0300 Subject: [PATCH] feat: add duplicate output name check for meta plugins Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) --- src/services/meta_service.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/services/meta_service.rs b/src/services/meta_service.rs index a7562b0..e696276 100644 --- a/src/services/meta_service.rs +++ b/src/services/meta_service.rs @@ -80,6 +80,27 @@ impl MetaService { conn: &Connection, item_id: i64, ) { + // Check for duplicate output names before initializing plugins + let mut output_names: std::collections::HashMap> = std::collections::HashMap::new(); + + for plugin in plugins.iter() { + let plugin_name = plugin.meta_name(); + for output_name in plugin.outputs().keys() { + output_names.entry(output_name.clone()) + .or_insert_with(Vec::new) + .push(plugin_name.clone()); + } + } + + // Print warnings for duplicate output names + for (output_name, plugin_names) in &output_names { + if plugin_names.len() > 1 { + eprintln!("Warning: Output name '{}' is provided by multiple plugins: {}", + output_name, + plugin_names.join(", ")); + } + } + for meta_plugin in plugins.iter_mut() { if let Err(e) = meta_plugin.initialize(conn, item_id) { eprintln!("Warning: Failed to initialize meta plugin: {}", e);