Part of #131. Follows #146 and PR #147 as Unit 6B of the App Builder feature-branch chain.
Problem
Unit 6A completes the successful installed public CLI proof, but failure and interruption process-tree cleanup remain intentionally unproven. A direct child may close while a TERM-resistant descendant survives if the delayed process-group SIGKILL is canceled.
Scope
- Prove a real generated Nx verification failure through the installed public CLI boundary.
- Prove real generated Nx/Vitest interruption after explicit readiness evidence.
- Run a descendant that ignores SIGTERM in the same POSIX process group.
- Retain the process-group identity (PGID) independently of the direct-child lifecycle.
- Send SIGTERM to the process group, poll for group disappearance within a bounded interval, escalate to group SIGKILL, and await confirmed disappearance.
- Assert observable escalation and stopped-process evidence.
- Clean up the isolated workspace, package store, and all spawned processes while preserving repository-root Nx isolation on macOS and Linux.
Acceptance criteria
- The behavior-first test
generated Nx verification failure cleans the complete process group passes against a real generated Nx verification failure.
- The behavior-first test
generated Nx/Vitest interruption escalates and removes a TERM-resistant descendant after readiness passes against a real generated interruption after readiness evidence.
- macOS and Linux CI provide the failure, interruption, escalation, stopped-process, cleanup, and root-isolation evidence.
- No test substitutes a synthetic
process.exit(1) failure or timer-based interruption proxy for the generated Nx/Vitest behavior.
- The delivery stays within 400 changed lines (
additions + deletions).
- Rollback removes only Unit 6B and leaves Unit 6A intact.
Non-goals
Chain context
- Delivery base:
feat/app-builder-public-cli-success-proof at dc97f7a09effc1159cc3bcdc92801723a2b78112.
- Chain:
#143 (+ #145) → #147 Unit 6A → 📍 Unit 6B → Unit 7 → frozen #130.
Part of #131. This issue does not close #131 or #146.
Part of #131. Follows #146 and PR #147 as Unit 6B of the App Builder feature-branch chain.
Problem
Unit 6A completes the successful installed public CLI proof, but failure and interruption process-tree cleanup remain intentionally unproven. A direct child may close while a TERM-resistant descendant survives if the delayed process-group SIGKILL is canceled.
Scope
Acceptance criteria
generated Nx verification failure cleans the complete process grouppasses against a real generated Nx verification failure.generated Nx/Vitest interruption escalates and removes a TERM-resistant descendant after readinesspasses against a real generated interruption after readiness evidence.process.exit(1)failure or timer-based interruption proxy for the generated Nx/Vitest behavior.additions + deletions).Non-goals
Chain context
feat/app-builder-public-cli-success-proofatdc97f7a09effc1159cc3bcdc92801723a2b78112.#143 (+ #145) → #147 Unit 6A → 📍 Unit 6B → Unit 7 → frozen #130.Part of #131. This issue does not close #131 or #146.