diff options
| author | akbash <akbash@herdr.dev> | 2026-07-16 19:43:25 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-16 19:43:25 +0300 |
| commit | 8915f01c6577b5507d1dd1a7851ec3ecb9154189 (patch) | |
| tree | d7e5f28662e62ef531051750b2aa5096a80c7748 /src/api/wait.rs | |
| parent | 6e4768a7ccb172b96c30eabe745747fbde31f777 (diff) | |
fix: stop agent wait when pane closes (#1488)
Diffstat (limited to 'src/api/wait.rs')
| -rw-r--r-- | src/api/wait.rs | 12 |
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) { |
