diff --git a/crates/ocs_plugin_api/src/process.rs b/crates/ocs_plugin_api/src/process.rs index f219af00..9a26d958 100644 --- a/crates/ocs_plugin_api/src/process.rs +++ b/crates/ocs_plugin_api/src/process.rs @@ -675,6 +675,11 @@ impl PluginProcess { } } + /// Whether this plugin process speaks the V4 protocol. + pub fn is_v4(&self) -> bool { + self.v4.is_some() + } + /// Send a best-effort host-to-plugin notification. Requires V4; on V3 /// processes this returns an error. pub fn notify_plugin( diff --git a/crates/ocs_plugin_api/src/process/manager.rs b/crates/ocs_plugin_api/src/process/manager.rs index d3495d0a..d2fec1e4 100644 --- a/crates/ocs_plugin_api/src/process/manager.rs +++ b/crates/ocs_plugin_api/src/process/manager.rs @@ -91,6 +91,15 @@ impl PluginManager { if !p.process.is_alive() { continue; } + if !p.process.is_v4() { + if crate::process::verbose() { + eprintln!( + "[plugin] skipping notification for {} (not V4)", + p.process.id() + ); + } + continue; + } if let Err(e) = p.process.notify_plugin(command_id, notification.clone()) { eprintln!( "[plugin] broadcast_notification failed for {}: {e}",