fix(cli): close daemon stdin to release terminal on shell exit (#5228)

The host daemon inherited stdin from the spawning shell, holding an open
fd to the pseudo-terminal (/dev/pts/N). Even with start_new_session=True,
the shell blocks on exit until all processes with that fd close it — so
users running 'isaac omni codex' in arca were forced to manually kill the
daemon before they could exit.

Passing stdin=subprocess.DEVNULL redirects the daemon's stdin to /dev/null
at spawn time, releasing the terminal fd immediately.

Fixes OMNI-3274.

Signed-off-by: Tomu Hirata <tomu.hirata@gmail.com>
This commit is contained in:
Tomu Hirata
2026-08-22 07:23:32 +09:00
committed by GitHub
parent 203eb3e589
commit f443086bd6
+1
View File
@@ -2980,6 +2980,7 @@ def _spawn_host_daemon_process(
proc = subprocess.Popen(
args,
env=env,
stdin=subprocess.DEVNULL,
stdout=log_fh,
stderr=log_fh,
**_proc.spawn_kwargs(),