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:
@@ -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<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() {
|
||||
if let Err(e) = meta_plugin.initialize(conn, item_id) {
|
||||
eprintln!("Warning: Failed to initialize meta plugin: {}", e);
|
||||
|
||||
Reference in New Issue
Block a user