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,
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user