feat: add duplicate output name check for meta plugins

Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-26 08:57:56 -03:00
parent a92c22b58c
commit 6b06b23686

View File

@@ -80,6 +80,27 @@ impl MetaService {
conn: &Connection, conn: &Connection,
item_id: i64, item_id: i64,
) { ) {
// Check for duplicate output names before initializing plugins
let mut output_names: std::collections::HashMap<String, Vec<String>> = 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() { for meta_plugin in plugins.iter_mut() {
if let Err(e) = meta_plugin.initialize(conn, item_id) { if let Err(e) = meta_plugin.initialize(conn, item_id) {
eprintln!("Warning: Failed to initialize meta plugin: {}", e); eprintln!("Warning: Failed to initialize meta plugin: {}", e);