From 2a78e9d894133f08a896a23443cd7fdf49df404e Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Tue, 21 Jul 2026 09:59:30 +0800 Subject: [PATCH 1/7] fix(eval): restrict process termination to child-owned process tree --- scripts/run-eval-safe.mjs | 114 +++++------------------------- tests/eval-process-safety.test.ts | 72 +++++++++++++++++++ 2 files changed, 90 insertions(+), 96 deletions(-) create mode 100644 tests/eval-process-safety.test.ts diff --git a/scripts/run-eval-safe.mjs b/scripts/run-eval-safe.mjs index 69f3c810e..6166e2b27 100644 --- a/scripts/run-eval-safe.mjs +++ b/scripts/run-eval-safe.mjs @@ -4,22 +4,13 @@ import { spawn, spawnSync } from "node:child_process"; import { resolve, dirname } from "node:path"; import { fileURLToPath } from "node:url"; -const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); -const isWindows = process.platform === "win32"; +export const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +export const isWindows = process.platform === "win32"; const [targetScript, ...forwardArgs] = process.argv.slice(2); const offlineProviderRequested = forwardArgs.some( (token, index) => token === "--provider-mode" && forwardArgs[index + 1] === "offline", ); -if (!targetScript) { - console.error("Usage: node scripts/run-eval-safe.mjs