From b4d40f01e8e6e313437aa15f59bdfcf0e5bb6a23 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 19 Aug 2025 13:46:13 -0300 Subject: [PATCH] fix: initialize meta plugins with defaults before configuration Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) --- src/modes/save.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/modes/save.rs b/src/modes/save.rs index 31937e6..65ca71b 100644 --- a/src/modes/save.rs +++ b/src/modes/save.rs @@ -47,13 +47,23 @@ fn setup_compression_and_plugins( for meta_plugin in meta_plugins.iter_mut() { let plugin_name = meta_plugin.meta_name(); if let Some(config) = meta_plugin_configs.iter().find(|c| c.name == plugin_name) { - // Configure outputs first - if let Err(e) = meta_plugin.configure_outputs(&config.outputs.iter().map(|(k, v)| (k.clone(), serde_yaml::Value::String(v.clone()))).collect()) { + // Start with default outputs and options, then apply configuration on top + let mut configured_outputs = meta_plugin.outputs().clone(); + for (key, value) in &config.outputs { + configured_outputs.insert(key.clone(), serde_yaml::Value::String(value.clone())); + } + + let mut configured_options = meta_plugin.default_options(); + for (key, value) in &config.options { + configured_options.insert(key.clone(), value.clone()); + } + + // Apply the combined configuration + if let Err(e) = meta_plugin.configure_outputs(&configured_outputs) { eprintln!("Warning: Failed to configure outputs for meta plugin '{}': {}", plugin_name, e); } - // Then configure with options - if let Err(e) = meta_plugin.configure_options(&config.options) { + if let Err(e) = meta_plugin.configure_options(&configured_options) { eprintln!("Warning: Failed to configure options for meta plugin '{}': {}", plugin_name, e); } }