summaryrefslogtreecommitdiff
path: root/src/api/wait.rs
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-07-16 19:43:25 +0300
committerGitHub <noreply@github.com>2026-07-16 19:43:25 +0300
commit8915f01c6577b5507d1dd1a7851ec3ecb9154189 (patch)
treed7e5f28662e62ef531051750b2aa5096a80c7748 /src/api/wait.rs
parent6e4768a7ccb172b96c30eabe745747fbde31f777 (diff)
fix: stop agent wait when pane closes (#1488)
Diffstat (limited to 'src/api/wait.rs')
-rw-r--r--src/api/wait.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/api/wait.rs b/src/api/wait.rs
index 17ffb992..d556fa96 100644
--- a/src/api/wait.rs
+++ b/src/api/wait.rs
@@ -153,8 +153,16 @@ pub(super) fn wait_for_event(
return Ok(None);
}
- if let Some(event) = active.poll(api_tx, event_hub) {
- return Ok(Some(wait_matched_response(&request_id, event)));
+ match active.poll_for_wait(api_tx, event_hub) {
+ Ok(Some(event)) => return Ok(Some(wait_matched_response(&request_id, event))),
+ Ok(None) => {}
+ Err(mut response) if response.error.code == "pane_not_found" => {
+ response.id = request_id;
+ return serde_json::to_string(&response)
+ .map(Some)
+ .map_err(std::io::Error::other);
+ }
+ Err(_) => {}
}
if deadline.is_some_and(|deadline| std::time::Instant::now() >= deadline) {