• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / HyperNeo / 31859028342
79%

Build:
DEFAULT BRANCH: dev
Ran 15 Aug 2026 02:23AM UTC
Jobs 0
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
  cancel
31859028342

push

github

web-flow
fix(daemon): clean-slate kill orphaned SDK processes before startup-timeout retry (#2491)

* fix(daemon): clean-slate kill orphaned SDK processes before startup-timeout retry

A startup-timeout spawn can leave an orphaned SDK subprocess (spawned but
never fed, or hung past cooperative close()) that collides with the retry's
fresh spawn — producing repeated 0-message timeouts. The retry paths only
called queryObject.close() and waited, which does not kill a hung child.

Force-terminate the session's tracked subprocess group (SIGTERM + scheduled
SIGKILL, the same primitive QueryLifecycleManager.stop() uses) before
recursing in both the startup-timeout and message-not-found auto-retry paths.
Also apply the guard in ensureQueryStarted()'s stale-running recovery, which
previously restarted without killing a surviving orphan holding the workspace
lock. Adds unit coverage for all three sites.

* fix(daemon): only clear orphan exit tracking, never a replacement query's

Codex P1 (PR #2491): during the stale-running recovery's bounded wait for
the orphaned process to exit, a concurrent ensureQueryStarted() can start
the replacement query, whose trackAgentProcess() installs a NEW
processExitedPromise. The unconditional resetProcessExitedPromise() then
cleared the replacement's exit tracking, so a later stop/restart would not
await that subprocess — recreating the workspace-lock collision the guard
exists to close.

Clear only when the tracked promise is still the captured orphan
(identity check), applied to the lifecycle-manager recovery and all three
query-runner retry paths that share the wait-then-reset shape. Adds a
regression test.

* fix(daemon): terminate no-PID tracked SDK handles, not just PID entries

Codex P2 (PR #2491): spawns without a numeric PID (VM/container/remote
execution via custom spawnClaudeCodeProcess) were stored only as exit
promises — terminateTrackedAgentProcesses() iterated the PID map, so a
hung no-PID handle survived termination an... (continued)
Source Files on build 31859028342
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #31859028342
  • cb042c2d on github
  • Prev Build on dev (#31856157513)
  • Next Build on dev (#31859100473)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc