diff --git a/browse/test/cookie-import-browser.test.ts b/browse/test/cookie-import-browser.test.ts index 5e9a5b441..ccf8e88b1 100644 --- a/browse/test/cookie-import-browser.test.ts +++ b/browse/test/cookie-import-browser.test.ts @@ -31,8 +31,12 @@ const LINUX_V11_KEY = crypto.pbkdf2Sync(LINUX_V11_PASSWORD, 'saltysalt', 1, 16, const IV = Buffer.alloc(16, 0x20); const CHROMIUM_EPOCH_OFFSET = 11644473600000000n; -// Fixture DB path -const FIXTURE_DIR = path.join(import.meta.dir, 'fixtures'); +// Fixture DB path — a per-run temp dir, NEVER the tracked browse/test/fixtures/: +// these DBs are built in beforeAll and deleted in afterAll, so writing them +// into the source tree makes them flash as `??` in git status mid-run, which +// races any concurrent shard's tree-isolation porcelain snapshot (observed: +// gen-skill-docs-out-dir's before/after porcelain pin on Windows CI). +const FIXTURE_DIR = fs.mkdtempSync(path.join(os.tmpdir(), 'browse-cookie-fixtures-')); const FIXTURE_DB = path.join(FIXTURE_DIR, 'test-cookies.db'); const LINUX_FIXTURE_DB = path.join(FIXTURE_DIR, 'test-cookies-linux.db'); diff --git a/scripts/test-free-shards.ts b/scripts/test-free-shards.ts index 1762bbee3..d0bd8989e 100755 --- a/scripts/test-free-shards.ts +++ b/scripts/test-free-shards.ts @@ -407,6 +407,8 @@ export const TREE_MUTATING: Record = { 'golden tests read .agents/.factory artifacts produced by gen-skill-docs.test.ts, and its beforeAll generates them when missing (#2532) — must not race the parallel readers or run before the mutators window', 'test/catalog-trim.test.ts': 'imports scripts/gen-skill-docs.ts, whose top-level body regenerates the full claude host at import time (71 files; idempotent on a fresh tree, but a stale tree gets rewritten mid-window) — same hazard class as #2532', + 'test/gen-skill-docs-out-dir.test.ts': + 'PORCELAIN READER — its before/after git-status pin needs a quiet tree (a concurrent shard\'s transient fixture write raced it on Windows CI), and its spawned render rewrites llms.txt/agents-digest in place (idempotent on a fresh tree)', // Ratchet readers (measure the tree; need it quiet): 'test/parity-suite.test.ts': 'RATCHET READER — parity caps measure live SKILL.md/section bytes', 'test/skill-size-budget.test.ts': 'RATCHET READER — per-skill and corpus size budgets measure the live tree',