mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-28 13:31:12 +00:00
* fix(scripts): bound release CI summary GitHub lookups The release CI summary helper performs multiple sequential gh API reads during full release validation. Each read used execFileSync without a timeout, so one stalled GitHub request could block the surrounding workflow job until it expires. Route the default gh runner through a caller-owned execFileSync with a 60-second timeout and SIGKILL, and apply the same bound to artifact zip downloads. The runner accepts an execFileSyncImpl injection so the timeout contract can be tested without a slow timer-based test. * test(scripts): add real behavior proof for release CI summary timeout Add two live subprocess tests alongside the existing mocked tests: - A 1 ms timeout against a real gh subprocess proves the SIGKILL + timeout surface works on actual child processes (not only mocks). - A fast node -e 0 subprocess with the production 60-second bound proves the timeout does not false-positive on healthy completions. The runReleaseCiGh runner now accepts an optional timeoutMs parameter so tests can exercise a shorter timeout without changing the production default. * refactor(scripts): share bounded release GitHub runner * test(scripts): keep release runner assertions type-safe --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>