fix(engine): use fork pool for engine-core Vitest gate (#1764)

## Summary
- Switches the engine-core Vitest project from thread workers to fork
workers to avoid the Node 24/macOS libuv kqueue SIGABRT while preserving
real failure semantics.
- Adds a small policy regression test covering the gate pool, warning
behavior, and engine-core allow-list expectations.

## Test Plan
- node --test scripts/__tests__/engine-vitest-gate-policy.test.mjs
- corepack pnpm --filter @fusion/engine test:core

<!-- stage-review-badge-begin -->

---

<a href="https://stagereview.app/Runfusion/Fusion/pull/1764">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg"
alt="Open in Stage">
  </picture>
</a>

<!-- stage-review-badge-end -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved reliability of the engine’s Vitest test execution on newer
macOS/Node setups by scoping a safer worker strategy to the core
merge-gate suite.
* Prevented configuration and gate-script changes that could otherwise
break consistent test behavior.
* **Tests**
* Added automated “gate policy” checks to validate Vitest configuration
constraints and ensure core/test-gate scripts run with the expected
command and allow-listed test patterns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
gsxdsm
2026-06-25 12:23:53 -07:00
committed by GitHub
2 changed files with 90 additions and 0 deletions

View File

@@ -19,6 +19,8 @@ export default defineConfig({
resolve(__dirname, "../core/src/__test-utils__/vitest-setup.ts"),
],
globalSetup: [resolve(__dirname, "../core/src/__test-utils__/vitest-teardown.ts")],
// Keep the broad engine lanes on worker threads; engine-core overrides this
// below because only the curated merge gate has hit the Node/macOS abort.
pool: "threads",
maxWorkers,
minWorkers: 1,
@@ -52,6 +54,11 @@ export default defineConfig({
extends: true,
test: {
name: "engine-core",
/*
FNXC:EngineTests 2026-06-25-11:11:
The curated engine-core merge gate hits a Node 24.15.0/macOS libuv kqueue SIGABRT when Vitest thread workers close unmanaged file descriptors. Scope fork workers to this gate so the broad default engine suite keeps its explicit worker-thread behavior.
*/
pool: "forks",
// The curated merge-gate suite (see docs/testing.md "Merge gate").
// Membership is an explicit allow-list, NOT a glob: tests earn their
// way in with evidence of value, and a flaky gate test is evicted by