import os, subprocess, time, pathlib, psutil
TIP = r"C:\Users\decid\Documents\projects\spt-core\.worktrees\ws272-w2\target\debug\spt.exe"
HOME = r"C:\Users\decid\spt-rig-a"
TRIO = ("OWL_SESSION_ID","SPT_AGENT_ID","SPT_ENDPOINT_ID","SPT_SESSION_NAME","SPT_ADAPTER","SPT_HOST_PID","SPT_INJECT_VERIFY_ECHO","SPT_POOL_UNCHECKED","CARGO_TARGET_DIR","SPT_DOCS_PORT")
env = dict(os.environ)
for k in TRIO: env.pop(k, None)
env["SPT_HOME"] = HOME; env["SPT_TEST_EPHEMERAL_ADVISORY_PORTS"] = "1"
log = open(pathlib.Path(HOME) / "field-start.log", "ab")
flags = subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS
child = subprocess.Popen([TIP, "daemon", "run", "--detached"], env=env, stdout=log, stderr=subprocess.STDOUT, stdin=subprocess.DEVNULL, creationflags=flags, close_fds=True, cwd=HOME)
print(f"launcher pid={child.pid}")
time.sleep(8)
pid = int((pathlib.Path(HOME) / "daemon.pid").read_text().strip() or 0)
alive = psutil.pid_exists(pid)
print(f"daemon.pid={pid} alive={alive}")
if alive:
    p = psutil.Process(pid); e = p.environ()
    print(f"exe={p.exe()} SPT_HOME={e.get('SPT_HOME')} leaked={[k for k in TRIO if k in e]}")
