diff --git a/kinode/src/kernel/standard_host.rs b/kinode/src/kernel/standard_host.rs index 388539412..d11b09917 100644 --- a/kinode/src/kernel/standard_host.rs +++ b/kinode/src/kernel/standard_host.rs @@ -101,10 +101,16 @@ impl process::ProcessState { ) -> Result<(wit::Address, wit::Message), (wit::SendError, Option)> { let (mut km, context) = match incoming { Ok(mut km) => match km.message { - t::Message::Request(_) => { + t::Message::Request(t::Request { + ref expects_response, + .. + }) => { self.last_blob = km.lazy_load_blob; km.lazy_load_blob = None; - self.prompting_message = Some(km.clone()); + if expects_response.is_some() || km.rsvp.is_some() { + // update prompting_message iff there is someone to reply to + self.prompting_message = Some(km.clone()); + } (km, None) } t::Message::Response(_) => match self.contexts.remove(&km.id) { diff --git a/kinode/src/kernel/standard_host_v0.rs b/kinode/src/kernel/standard_host_v0.rs index 9ab407249..adbb462ee 100644 --- a/kinode/src/kernel/standard_host_v0.rs +++ b/kinode/src/kernel/standard_host_v0.rs @@ -101,10 +101,16 @@ impl process::ProcessState { ) -> Result<(wit::Address, wit::Message), (wit::SendError, Option)> { let (mut km, context) = match incoming { Ok(mut km) => match km.message { - t::Message::Request(_) => { + t::Message::Request(t::Request { + ref expects_response, + .. + }) => { self.last_blob = km.lazy_load_blob; km.lazy_load_blob = None; - self.prompting_message = Some(km.clone()); + if expects_response.is_some() || km.rsvp.is_some() { + // update prompting_message iff there is someone to reply to + self.prompting_message = Some(km.clone()); + } (km, None) } t::Message::Response(_) => match self.contexts.remove(&km.id) {