os.kill(pid, 0) succeeds on a zombie, and a killed orphan stays a zombie until reaped — which never happens inside a CI container with no init. The test read that as "still alive" and failed there while passing locally. It now reads the process state from /proc, with a control assertion so a broken liveness check cannot pass silently. The group kill itself was correct. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nisse-dev
The Dev Agent: plans and implements software projects, produces Gitea PRs for human
review, and reacts to review comments and commits. A thin application over the
shared nisse-core library.
Part B of the specification at ../docs/Architecture-Build-Spec.md
covers this agent; Part A covers the library it sits on.