Two cross-file isolation hardenings for the sequential E2E runner:
1. Terminate stale Postgres connections before each file. Without this,
idle connections from the prior bun process's pool race with the
next file's setupDB() TRUNCATE CASCADE, producing 'fixture pages
disappear mid-test' failures. The terminate call is idempotent +
~50ms; first iteration is a no-op.
2. Hard outer timeout (180s per file) via gtimeout / timeout. bun's
--timeout=60000 is per-test; if a PGLite WASM call hangs in
beforeAll/afterAll (e.g. ingestion-roundtrip.test.ts wedging
30+ minutes on macOS), --timeout never fires and the entire suite
wedges. Outer SIGKILL lets the suite advance and the file is
recorded as failed for triage. Falls through to bare bun if neither
gtimeout nor timeout is on PATH.
Surfaced during fix-wave: warm-narwhal — 3 of 5 cross-file flakes
caught by the connection flush; ingestion-roundtrip 30-min wedge
caught by the outer timeout.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>