[PR #233] [MERGED] fix(process): settle exited zombie groups #1883

Closed
opened 2026-10-16 21:12:09 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/233
Author: @N0zoM1z0
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @morluto

Base: main ← Head: agent/process-zombie-settlement


📝 Commits (3)

  • 4828326 fix(process): settle exited zombie groups
  • 614a119 fix(process): keep validation detail internal
  • 95a228f Merge branch 'main' into agent/process-zombie-settlement

📊 Changes

2 files changed (+143 additions, -21 deletions)

View changed files

📝 src/application/ProcessOwnership.ts (+43 -21)
📝 tests/processOwnership.test.ts (+100 -0)

📄 Description

Summary

  • retain POSIX process state while enumerating captured groups
  • exclude exited zombies from ownership validation and settlement
  • validate every live member before signaling and return bounded per-PID failure reasons
  • preserve fail-closed behavior for unreadable environments and run-token mismatches

Root cause

A defunct process can remain visible in ps even though it cannot execute and no longer exposes useful live ownership state. Treating that record as an active member made cleanup retry or fail on an unreadable environment. Returning on the first read failure also hid any additional token mismatch in the same group.

The ownership boundary now distinguishes live members from terminal zombie records, considers zombie-only groups settled, and checks all live members before deciding whether a signal is authorized.

Verification

  • npx vitest run --coverage=false tests/processOwnership.test.ts — 9 passed
  • npm run typecheck
  • focused oxlint
  • focused Prettier check
  • git diff --check

Related to #149.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/233 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 7/14/2026 **Status:** ✅ Merged **Merged:** 7/14/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `agent/process-zombie-settlement` --- ### 📝 Commits (3) - [`4828326`](https://github.com/morluto/rea/commit/482832607910a6e872bccc27c956eeaf55dd6056) fix(process): settle exited zombie groups - [`614a119`](https://github.com/morluto/rea/commit/614a1197f5b699b61c46d82a24e0564bf0d87829) fix(process): keep validation detail internal - [`95a228f`](https://github.com/morluto/rea/commit/95a228ffa73cbe7ce9b5b06b6e371c2954f3afb8) Merge branch 'main' into agent/process-zombie-settlement ### 📊 Changes **2 files changed** (+143 additions, -21 deletions) <details> <summary>View changed files</summary> 📝 `src/application/ProcessOwnership.ts` (+43 -21) 📝 `tests/processOwnership.test.ts` (+100 -0) </details> ### 📄 Description ## Summary - retain POSIX process state while enumerating captured groups - exclude exited zombies from ownership validation and settlement - validate every live member before signaling and return bounded per-PID failure reasons - preserve fail-closed behavior for unreadable environments and run-token mismatches ## Root cause A defunct process can remain visible in `ps` even though it cannot execute and no longer exposes useful live ownership state. Treating that record as an active member made cleanup retry or fail on an unreadable environment. Returning on the first read failure also hid any additional token mismatch in the same group. The ownership boundary now distinguishes live members from terminal zombie records, considers zombie-only groups settled, and checks all live members before deciding whether a signal is authorized. ## Verification - `npx vitest run --coverage=false tests/processOwnership.test.ts` — 9 passed - `npm run typecheck` - focused oxlint - focused Prettier check - `git diff --check` Related to #149. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:12:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1883
No description provided.