From f79edd28f53f226e08c9eb4cdce7aab46a9c16fb Mon Sep 17 00:00:00 2001 From: garrytan Date: Tue, 3 Nov 2026 00:11:08 +0000 Subject: [PATCH] changelog: GST-1095 fragment Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- changelog.d/gst-1095-pregate-cpu-liveness.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changelog.d/gst-1095-pregate-cpu-liveness.md diff --git a/changelog.d/gst-1095-pregate-cpu-liveness.md b/changelog.d/gst-1095-pregate-cpu-liveness.md new file mode 100644 index 000000000..8a9a66528 --- /dev/null +++ b/changelog.d/gst-1095-pregate-cpu-liveness.md @@ -0,0 +1,4 @@ +**pregate no longer kills a quiet test suite that is busy working.** + +### Fixed +- **`lib/pregate/supervise.ts`**: the stall timeout now needs both no log output and an idle process group. Each second, supervise reads the group's CPU time (`/proc` on Linux, `ps -S` on macOS and BSDs). If it grew by at least a tenth of the wall time, the group counts as alive. Before, a parallel `check.sh` that printed nothing for 9 minutes while working ended `PREGATE_STALLED` at the 300 s default (Founderstar FOUN-63). A hang that waits on nothing still stalls. A hang that keeps using CPU now runs to `--timeout`, and either way the check is incomplete, never a pass. Windows reads no CPU time and keeps log growth alone. The `PREGATE_STALLED` detail, the guard line and the docs say what was measured. Both new tests fail on main. There a silent CPU-bound command ends `stalled` and a busy lane test ends `PREGATE_STALLED`.