diff --git a/crates/op-host-services/src/chat_subprocess.rs b/crates/op-host-services/src/chat_subprocess.rs index 083b33347..5019ce263 100644 --- a/crates/op-host-services/src/chat_subprocess.rs +++ b/crates/op-host-services/src/chat_subprocess.rs @@ -270,7 +270,10 @@ impl SubprocessProvider { /// Point a known-CLI provider at a stand-in binary so the exit / /// stderr / stdout handling can be exercised without the real CLI. - #[cfg(test)] + /// Its only callers are the unix-gated exit tests (the stand-ins are + /// `/bin/sh` scripts), so it carries the same gate to stay live-code + /// on Windows. + #[cfg(all(test, unix))] pub(crate) fn with_test_binary(mut self, binary: impl Into) -> Self { self.binary = binary.into(); self diff --git a/crates/op-host-services/src/web_canvas_server/online_run_loop.rs b/crates/op-host-services/src/web_canvas_server/online_run_loop.rs index eba38f875..af4026f6a 100644 --- a/crates/op-host-services/src/web_canvas_server/online_run_loop.rs +++ b/crates/op-host-services/src/web_canvas_server/online_run_loop.rs @@ -324,7 +324,9 @@ pub(super) fn check_persistence_configured( /// Raised by the signal handler. A `static` because that is all a handler may /// safely touch: it runs on an arbitrary thread with almost nothing allowed, /// so it sets one atomic and returns, and the watcher thread below does the -/// rest. +/// rest. Unix-only — the handler and its watcher are the only readers, and +/// Windows keeps the supervisor-driven shutdown it has always had. +#[cfg(unix)] static SIGNAL_RECEIVED: AtomicBool = AtomicBool::new(false); /// Route SIGTERM and SIGINT into the daemon's existing shutdown path.