v1.87.5.0 perf: remove idle waits from tests and CI planning (#2897)

* v1.87.5.0 perf: remove idle waits from tests and CI planning

* fix: settle split PTY redraws before routing input

* docs: record final burst-safe test benchmarks

* fix: keep cold-setup snapshot metadata dependency-free

* fix: avoid early-reader pipe races in artifact URL parsing

* fix: preserve safety matches for multiline command payloads

* fix: recognize concurrent CSO publication removal

* test: preload the UI design-review target before invocation

* docs: record validation blocker fixes

* fix: bind plan observer rejection to the invoked command

* fix: count only native design decisions in the UI gate

* docs: clarify UI-positive eval evidence requirements

* test: recognize native UI decisions without weakening finding counts

* test: decouple native UI evidence from question punctuation

* test: recognize concrete native UI decisions independently of prose format

* fix: retain failed eval logs under the hidden CI cache

* test: await telemetry completion instead of racing disk writes
This commit is contained in:
Garry Tan
2026-09-21 12:27:25 -04:00
committed by GitHub
parent a6b3a57512
commit 35dd014c58
42 changed files with 1583 additions and 284 deletions
+17 -1
View File
@@ -11,7 +11,7 @@
* they're kept in a separate file to keep the in-process suite fast.
*/
import { afterEach, beforeEach, describe, expect, test } from "bun:test";
import { afterEach, beforeEach, describe, expect, spyOn, test } from "bun:test";
import { spawn } from "child_process";
import fs from "fs";
import os from "os";
@@ -95,6 +95,22 @@ describe("daemon-state helpers", () => {
test("verifyIdentity returns false for dead pids", async () => {
expect(verifyIdentity(999_999_999, CMDLINE_MARKER)).toBe(false);
});
test.each(["SIGTERM", "SIGKILL"] as const)("fixture cleanup does not signal an already-exited %s child", async (signal) => {
const d = await spawn1();
const exited = new Promise<void>((resolve) => d.proc.once("exit", () => resolve()));
d.proc.kill(signal);
await exited;
expect(isProcessAlive(d.proc.pid!)).toBe(false);
const kill = spyOn(d.proc, "kill");
try {
await d.stop();
expect(kill).not.toHaveBeenCalled();
} finally {
kill.mockRestore();
}
});
});
// ─── ensureDaemon ────────────────────────────────────────────────
+8 -5
View File
@@ -115,9 +115,14 @@ export async function spawnDaemonForTest(
port,
stateFile,
stop: async () => {
proc.kill("SIGTERM");
if (proc.exitCode !== null || proc.signalCode !== null) return;
await new Promise<void>((r) => {
const onExit = () => {
clearTimeout(t);
r();
};
const t = setTimeout(() => {
proc.removeListener("exit", onExit);
try {
proc.kill("SIGKILL");
} catch {
@@ -125,10 +130,8 @@ export async function spawnDaemonForTest(
}
r();
}, 2000);
proc.on("exit", () => {
clearTimeout(t);
r();
});
proc.once("exit", onExit);
proc.kill("SIGTERM");
});
},
};