From 8b850986b2e338f28ef377f5359009e46bfa6448 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Fri, 7 Aug 2026 13:29:33 -0700 Subject: [PATCH] fix(test): eval-list CLI spawns from neutral cwd so slug detection can't dodge the fixture store MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getProjectEvalDir() probes cwd-relative .claude/skills/gstack/bin/gstack-slug; with cwd=ROOT on a dev machine the self-symlink makes it succeed, routing reads to an empty project-scoped dir instead of the seeded legacy ~/.gstack-dev/evals. Neutral cwd + absolute script path fails both probes deterministically — same behavior as CI. Co-Authored-By: Claude Fable 5 --- test/eval-list-cli.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/eval-list-cli.test.ts b/test/eval-list-cli.test.ts index f742ec706..536e36617 100644 --- a/test/eval-list-cli.test.ts +++ b/test/eval-list-cli.test.ts @@ -51,8 +51,14 @@ function writeEvalRun(evalDir: string, filename: string, timestamp: string, turn } function runEvalList(...args: string[]): { stdout: string; stderr: string; status: number } { - const result = spawnSync('bun', ['run', 'scripts/eval-list.ts', ...args], { - cwd: ROOT, + // cwd is the temp HOME, NOT the repo root: getProjectEvalDir() probes the + // cwd-relative .claude/skills/gstack/bin/gstack-slug, and on dev machines + // with the self-symlink that probe succeeds, routing reads to an (empty) + // project-scoped dir instead of the legacy ~/.gstack-dev/evals this test + // seeds. A neutral cwd makes both slug probes fail deterministically, so + // the CLI always uses the seeded legacy dir — same behavior as CI. + const result = spawnSync('bun', ['run', path.join(ROOT, 'scripts', 'eval-list.ts'), ...args], { + cwd: tmpHome, env: { ...process.env, HOME: tmpHome,