diff --git a/crates/weft-appd/src/ipc.rs b/crates/weft-appd/src/ipc.rs index b892841..b22b42e 100644 --- a/crates/weft-appd/src/ipc.rs +++ b/crates/weft-appd/src/ipc.rs @@ -21,6 +21,7 @@ pub struct SessionInfo { pub enum Response { LaunchAck { session_id: u64, + app_id: String, }, AppReady { session_id: u64, @@ -98,11 +99,17 @@ mod tests { #[test] fn response_msgpack_roundtrip() { - let resp = Response::LaunchAck { session_id: 7 }; + let resp = Response::LaunchAck { + session_id: 7, + app_id: "com.example.app".into(), + }; let bytes = rmp_serde::to_vec(&resp).unwrap(); let decoded: Response = rmp_serde::from_slice(&bytes).unwrap(); match decoded { - Response::LaunchAck { session_id } => assert_eq!(session_id, 7), + Response::LaunchAck { session_id, app_id } => { + assert_eq!(session_id, 7); + assert_eq!(app_id, "com.example.app"); + } _ => panic!("wrong variant"), } } diff --git a/crates/weft-appd/src/main.rs b/crates/weft-appd/src/main.rs index eb0ed4f..6df35cd 100644 --- a/crates/weft-appd/src/main.rs +++ b/crates/weft-appd/src/main.rs @@ -215,7 +215,7 @@ pub(crate) async fn dispatch(req: Request, registry: &Registry) -> Response { tracing::warn!(session_id, error = %e, "runtime supervisor error"); } }); - Response::LaunchAck { session_id } + Response::LaunchAck { session_id, app_id } } Request::TerminateApp { session_id } => { let found = registry.lock().await.terminate(session_id); @@ -274,7 +274,13 @@ mod tests { ) .await; match resp { - Response::LaunchAck { session_id } => assert!(session_id > 0), + Response::LaunchAck { + session_id, + ref app_id, + } => { + assert!(session_id > 0); + assert_eq!(app_id, "com.test.app"); + } _ => panic!("expected LaunchAck"), } } @@ -291,7 +297,7 @@ mod tests { ) .await; let session_id = match ack { - Response::LaunchAck { session_id } => session_id, + Response::LaunchAck { session_id, .. } => session_id, _ => panic!("expected LaunchAck"), }; let resp = dispatch(Request::TerminateApp { session_id }, ®).await; @@ -354,7 +360,7 @@ mod tests { ) .await; let session_id = match ack { - Response::LaunchAck { session_id } => session_id, + Response::LaunchAck { session_id, .. } => session_id, _ => panic!(), }; let resp = dispatch(Request::QueryAppState { session_id }, ®).await;