diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 21:52:19 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 21:53:50 +0300 |
| commit | 427c2606d8f62558e3949d2f44173175e96bed49 (patch) | |
| tree | 0d351c30c3132037beb75ea20c378d75e6b34c80 /src/app/api.rs | |
| parent | 31e973502af205666cb4a48e3f9e10328f65cd4e (diff) | |
fix: deliver agent status subscriptions from event hub
Diffstat (limited to 'src/app/api.rs')
| -rw-r--r-- | src/app/api.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/app/api.rs b/src/app/api.rs index 6319bdb6..a69dccec 100644 --- a/src/app/api.rs +++ b/src/app/api.rs @@ -227,16 +227,18 @@ impl App { }); } - if update.previous_state != update.state + let previous_agent_status = pane_agent_status(update.previous_state, update.previous_seen); + let agent_status = self + .state + .workspaces + .get(update.ws_idx) + .and_then(|ws| ws.pane_state(update.pane_id)) + .map(|pane| pane_agent_status(update.state, pane.seen)) + .unwrap_or_else(|| pane_agent_status(update.state, update.seen)); + + if previous_agent_status != agent_status || update.previous_presentation != update.presentation { - let agent_status = self - .state - .workspaces - .get(update.ws_idx) - .and_then(|ws| ws.pane_state(update.pane_id)) - .map(|pane| pane_agent_status(update.state, pane.seen)) - .unwrap_or_else(|| pane_agent_status(update.state, true)); let presentation = update.presentation.clone(); self.emit_event(crate::api::schema::EventEnvelope { event: crate::api::schema::EventKind::PaneAgentStatusChanged, @@ -244,6 +246,7 @@ impl App { pane_id, workspace_id, agent_status, + agent: update.agent_label.clone(), title: presentation.title, display_agent: presentation.display_agent, custom_status: presentation.custom_status, |
