fix: preserve runtime shutdown failures in foreground launcher #351

Open
karsten wants to merge 4 commits from fix/launcher-shutdown-exit into main
Owner

Part of retained durable update repair; source-only, no activation.

Root cause: runForeground returned stopCode after a signal, masking actual runtime child persistence failure exit 1 with launcher exit 143. Preserve child failures while retaining signal exit for successful child exits 0/143 and queued restart 75 (never restart during stop). Signal death fails closed as 1.

Regression tests use real wrapper/runtime subprocesses and delayed child cleanup for exits 0,75,143,1,3.

Validation on main a29dea2: 10 launcher tests pass; typecheck/build pass; full npm test 1932 tests,1931 passed,1 skipped,0 failed. LD_LIBRARY_PATH cleared and fixture umask022; no gates changed.

Review requested. Existing already-running legacy launcher remains unchanged and cannot retroactively provide direct-child persistence receipts. This fix alone is not bootstrap activation or persistence proof. Companion WIP host producer PR overlays#374 remains independently gated.

Part of retained durable update repair; source-only, no activation. Root cause: runForeground returned stopCode after a signal, masking actual runtime child persistence failure exit 1 with launcher exit 143. Preserve child failures while retaining signal exit for successful child exits 0/143 and queued restart 75 (never restart during stop). Signal death fails closed as 1. Regression tests use real wrapper/runtime subprocesses and delayed child cleanup for exits 0,75,143,1,3. Validation on main a29dea2: 10 launcher tests pass; typecheck/build pass; full npm test 1932 tests,1931 passed,1 skipped,0 failed. LD_LIBRARY_PATH cleared and fixture umask022; no gates changed. Review requested. Existing already-running legacy launcher remains unchanged and cannot retroactively provide direct-child persistence receipts. This fix alone is not bootstrap activation or persistence proof. Companion WIP host producer PR overlays#374 remains independently gated.
ci: validate foreground launcher changes in existing full suite
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 2m8s
10766a3def
fix: fence explicit message sends through host maintenance admission
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 2m4s
fb32771fbf
fix: await durable outbox removal before releasing delivery work
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 2m5s
e986b937f7
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 2m5s
This pull request has changes conflicting with the target branch.
  • .forgejo/workflows/decision-interface.yml
  • src/launcher.ts
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/launcher-shutdown-exit:fix/launcher-shutdown-exit
git switch fix/launcher-shutdown-exit
Sign in to join this conversation.
No reviewers
No labels
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
harness/core!351
No description provided.