You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement one execution-layer OwnedProcessGroup lifecycle object for subprocesses that AutoSkillit directly creates as fresh POSIX process-group leaders. Managed runners and PTY cook create a new session; direct-TTY cook deliberately creates only a new process group so it can remain in the parent's terminal session. Ownership is a live capability in both cases: it exists only while the spawning controller retains the waitable, unreaped direct child and verifies pgid == pid; a stored PID/PGID or a previously checked process identity never authorizes killpg().
Requirements
REQ-OWN-001: The system must positively establish that a process group is owned before sending group-wide signals.
REQ-OWN-002: The ownership mechanism must prevent stale or reused process-group identities from authorizing cleanup.
REQ-EVD-001: Cleanup evidence must distinguish expected process disappearance from permission failures.
REQ-EVD-002: Cleanup results must not identify an inaccessible PID as a group member without evidence establishing membership.
REQ-EVD-003:ProcessCleanupResult.complete and access_denied_pids must have documented, tested semantics for incomplete or inaccessible observations.
REQ-CLN-001: The implementation must define whether cleanup guarantees termination of the verified owned group or reports only observed process termination.
REQ-TST-001: Tests must cover exited roots, partial enumeration, permission failures, stale or reused group identities, and group-wide signaling safeguards.
Audit reconciliation: REQ-SCOPE-001 is a stale-base false positive
I investigated the sole blocking finding and did not revert the package
version, because doing so would create a real out-of-scope version change in
this PR. The audit used stale local develop at cb2f3cef7; the fetched PR
base and merge-base are 02327064e, which already contains 0.10.965.
Reproducible evidence:
Before remediation, local develop was cb2f3cef7, while origin/develop was 02327064e.
Both origin/develop and HEAD contain version = "0.10.965" in pyproject.toml and "version": "0.10.965" in plugin.json.
The audit's reported 62 files, +4,365/-1,522 are exactly reproduced by the
incorrect git diff develop...HEAD while local develop was stale. I
fast-forwarded the clean local develop checkout to 02327064e. The same
comparison now reports the correct 52-file, +2,028/-1,057 PR diff, with no
version-file changes.
Independent verification by a separate worker reached the same disposition: 02327064e belongs to origin/develop, not PR #4569, and REQ-SCOPE-001 should
be COVERED when audited against the PR base.
Verification after correcting the audit base:
git rebase origin/develop: already up to date
pre-commit run --all-files: PASS (including version consistency and uv lock --check)
Trecek
deleted the
impl-define-owned-process-group-cleanup-plan-20260812-130507
branch
August 13, 2026 03:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implement one execution-layer
OwnedProcessGrouplifecycle object for subprocesses that AutoSkillit directly creates as fresh POSIX process-group leaders. Managed runners and PTY cook create a new session; direct-TTY cook deliberately creates only a new process group so it can remain in the parent's terminal session. Ownership is a live capability in both cases: it exists only while the spawning controller retains the waitable, unreaped direct child and verifiespgid == pid; a stored PID/PGID or a previously checked process identity never authorizeskillpg().Requirements
REQ-OWN-001: The system must positively establish that a process group is owned before sending group-wide signals.
REQ-OWN-002: The ownership mechanism must prevent stale or reused process-group identities from authorizing cleanup.
REQ-EVD-001: Cleanup evidence must distinguish expected process disappearance from permission failures.
REQ-EVD-002: Cleanup results must not identify an inaccessible PID as a group member without evidence establishing membership.
REQ-EVD-003:
ProcessCleanupResult.completeandaccess_denied_pidsmust have documented, tested semantics for incomplete or inaccessible observations.REQ-CLN-001: The implementation must define whether cleanup guarantees termination of the verified owned group or reports only observed process termination.
REQ-TST-001: Tests must cover exited roots, partial enumeration, permission failures, stale or reused group identities, and group-wide signaling safeguards.
Closes #4550
Implementation Plan
Plan file:
/home/talon/projects/generic_automation_mcp/.autoskillit/temp/make-plan/define_owned_process_group_cleanup_plan_2026-08-12_101818.md🤖 Generated with Claude Code via AutoSkillit