fix(appd): broadcast AppState::Stopped on READY timeout

runtime.rs: the READY-timeout early-return path now broadcasts
AppState::Stopped before returning so WebSocket clients see the
session disappear when a module fails to signal readiness within 30s.
This commit is contained in:
Marco Allegretti 2026-03-11 11:19:09 +01:00
parent 3315b158db
commit d6de84b4c7

View file

@ -55,10 +55,12 @@ pub(crate) async fn supervise(
Err(_elapsed) => {
tracing::warn!(session_id, %app_id, "READY timeout after 30s; killing process");
let _ = child.kill().await;
registry
.lock()
.await
.set_state(session_id, AppStateKind::Stopped);
let mut reg = registry.lock().await;
reg.set_state(session_id, AppStateKind::Stopped);
let _ = reg.broadcast().send(Response::AppState {
session_id,
state: AppStateKind::Stopped,
});
return Ok(());
}
}