From d073f1b2731c61e563d01efd288e645a64586516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kopyci=C5=84ski?= Date: Fri, 18 Sep 2026 16:31:19 +0200 Subject: [PATCH] chore(stryker): register 3 covering unit tests missing from tap.testFiles (#13357) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(test): make npm run test terminate and restore RAYCAST env-doc sync Two independent defects, both in the test/dev entrypoint layer. 1. `npm run test` never terminated. It was a hand-maintained copy of `test:unit` that had drifted: it omitted `--test-force-exit` on BOTH node invocations and dropped the trailing `&& npm run test:unit:serial`. Per AGENTS.md ('Database Handles in Tests'), unreleased SQLite handles make Node's native runner hang indefinitely — every sibling script (`test:unit`, `test:unit:ci`, `test:unit:ci:shard`) already carried the flag; only `test` did not. Measured on m1max at 84c6ad7c2, same suite both arms: without the flag the runner was killed at the 420s ceiling (exit 137, no summary line, 23 orphaned node processes); with it the runner exited on its own in 419s leaving 1. `test` now delegates to `test:unit` so the two cannot drift again, which also makes the serial suite reachable from `npm run test` for the first time. 2. Removing the RAYCAST_* rows from ENVIRONMENT.md (#9) broke check-env-doc-sync. `parseEnvExampleVars` matches `^#?\s*(VAR)=`, so it counts COMMENTED-OUT vars: the four entries still sat at .env.example:1263-1266 and became `envMissingDoc` drift the moment their docs disappeared. The #9 verification only ran the fabricated-docs gate and missed this one. The block is dead either way — it documents open-sse/services/raycast.ts and scripts/raycast/usage-benchmark.mjs, both deleted with the GPL-derived provider in #11691, and no live code reads the vars — so it is removed rather than re-documented. envMissingDoc is now []. The remaining codeMissingEnv failure (CURSOR_AGENT_BINARY, CURSOR_MAX_FRAME_BYTES, OMNIROOT) is pre-existing drift on the base, absent from this diff, and left alone. * chore(stryker): register 3 covering unit tests missing from tap.testFiles check:mutation-test-coverage --strict fails identically on pristine release/v3.8.51 (f1e7148c1) with an empty diff — base debt blocking this PR. - combo-identical-error-streak.test.ts -> comboPredicates.ts - 13601-header-drop-count-surfaced.test.ts -> responseHeaders.ts - semantic-cache-no-truncated-writes.test.ts -> semanticCache.ts * fix(test): keep the #13187 concurrency-4 cap in test:unit The dedupe made `test` delegate to `test:unit`, but it also silently reverted the deliberate local concurrency cap from #13187 ("cap local unit-test concurrency at 4 to avoid exhausting commit charge") back to 20. Measured on m1max (16 cores), same suite and same tree, only the flag differs: concurrency=20 -> 356 cancelled, 356 "event loop has already resolved" bailouts concurrency=4 -> 0 cancelled, 0 bailouts So 20 does not just slow the run down, it makes the runner abandon tests and still print a summary -- a false green. Restore 4; termination is preserved via delegation to test:unit, which already carries --test-force-exit. * revert(test): drop redundant test-script delegation The #13187 batch commit (178d25250) already gave `test` both `--test-force-exit` flags and the trailing `&& npm run test:unit:serial` step, so the delegation fix was redundant. It also broke tests/unit/test-serial-quarantine.test.ts, which asserts every parallel runner script ends with the serial step (base 4/4 -> head 3/4). package.json is now byte-identical to base; this PR is the stryker tap.testFiles fix only. --- stryker.conf.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stryker.conf.json b/stryker.conf.json index 270c7dd468..a821949e9f 100644 --- a/stryker.conf.json +++ b/stryker.conf.json @@ -138,6 +138,7 @@ "tests/unit/chatcore-executor-proxy.test.ts", "tests/unit/chatcore-extracted-modules-3821.test.ts", "tests/unit/chatcore-header-drop-warn-dedupe-10315.test.ts", + "tests/unit/13601-header-drop-count-surfaced.test.ts", "tests/unit/chatcore-headers.test.ts", "tests/unit/chatcore-imports-cleanly.test.ts", "tests/unit/chatcore-log-truncation.test.ts", @@ -149,6 +150,7 @@ "tests/unit/chatcore-sanitization.test.ts", "tests/unit/chatcore-semantic-cache-store.test.ts", "tests/unit/chatcore-semantic-cache.test.ts", + "tests/unit/semantic-cache-no-truncated-writes.test.ts", "tests/unit/chatcore-strip-stale-headers.test.ts", "tests/unit/chatcore-telemetry-helpers.test.ts", "tests/unit/chatcore-translation-paths.test.ts", @@ -205,6 +207,7 @@ "tests/unit/combo-omnimodel-tag-stripping.test.ts", "tests/unit/combo-param-validation-fallback-4519.test.ts", "tests/unit/combo-prescreen.test.ts", + "tests/unit/combo-identical-error-streak.test.ts", "tests/unit/combo-priority-quota-exhaustion-cutoff-5923.test.ts", "tests/unit/combo-provider-cooldown-sibling.test.ts", "tests/unit/combo-provider-cooldown.test.ts",