From da72eb70a19e49cd25324730e8cf0a18b255f606 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 10 May 2026 12:30:43 +0000 Subject: [PATCH] fix: fall through to self-launch when peer forward fails After PipeClient::connect succeeds, write_all(...).ok() ignored failure and unconditionally exit(0). If the peer instance died between connect and write the user command was silently dropped and no shell launched. Treat a failed write as a reason to launch this process: only exit when the command was successfully forwarded (write + flush). Otherwise log the failure and fall through to the regular launch path. Closes #45 --- src/main.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index f4381e0..8111108 100644 --- a/src/main.rs +++ b/src/main.rs @@ -88,8 +88,15 @@ fn main() { commands_path.push_str(&username()); let socket_path = Path::new(&commands_path); if let Ok(mut stream) = PipeClient::connect(socket_path) { - stream.write_all(command.as_bytes()).ok(); - exit(0); + let forwarded = stream + .write_all(command.as_bytes()) + .and_then(|_| stream.flush()) + .is_ok(); + drop(stream); + if forwarded { + exit(0); + } + eprintln!("Failed to forward command to existing Stremio instance; launching new instance"); } // END IPC