From 6ab2696399770c45c9c0373b4154fa1dcf081de6 Mon Sep 17 00:00:00 2001 From: exlier <290591388+exlier@users.noreply.github.com> Date: Tue, 11 Aug 2026 09:38:45 +0530 Subject: [PATCH 1/2] Add portable-pty dependency for PTY-backed jobs --- Cargo.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index a830b4d..6272949 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,3 +18,6 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" wasmtime = "11" wat = "1.0" + +# PTY-backed job support +portable-pty = "0.10" From 31bec865a084d2b8d0ddc08ec724e080181a30fd Mon Sep 17 00:00:00 2001 From: exlier <290591388+exlier@users.noreply.github.com> Date: Tue, 11 Aug 2026 09:41:56 +0530 Subject: [PATCH 2/2] Introduce PTY-backed jobs (portable-pty) with fallback --- src/job_control.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/job_control.rs b/src/job_control.rs index 1ee9327..e001e63 100644 --- a/src/job_control.rs +++ b/src/job_control.rs @@ -2,7 +2,12 @@ use once_cell::sync::Lazy; use std::process::Command; use std::sync::atomic::{AtomicI32, Ordering}; use std::thread; +use std::io::{self, Read, Write}; +use std::time::Duration; + +#[cfg(unix)] use std::os::unix::process::CommandExt; + use libc; static FG_PGID: Lazy = Lazy::new(|| AtomicI32::new(0));