Skip to content

Fix v3 CI process cleanup on macOS - #380

Merged
etr merged 5 commits into
v3from
task/FEATURE-ci-process-cleanup
Oct 16, 2026
Merged

etr merged 5 commits into
v3from
task/FEATURE-ci-process-cleanup

Conversation

@etr

@etr etr commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Reproduce the macOS cleanup failure through the unchanged command helper and observe owned live versus zombie-only process groups. The bounded diagnostic uses read-only permissions and retains state observations as an artifact.

This draft is part of the authorized v3 CI repair. The source fix and regression verification follow after native cause confirmation; no release or tag is created.

etr added 5 commits October 15, 2026 18:35
…IX group signals

Accept Darwin zombie-only EPERM only after bounded process discovery and ownership checks prove the group has no live members. Retain stable retirement, the shared cleanup budget, final leader reap, and original command receipts and failures.

Add real-process permission regressions and prepare source-bound native macOS contract and semantic-probe verification. Local installed-consumer contracts pass (45 tests), as do 120 retained affinity-controlled Linux overflow/socket trials. Native proof awaits publication.
…ve parser evidence

Trim valid trailing state-column padding before appending fixture modifiers, and assert owned-zombie EPERM reach independently for each receipt case. The real padded fixture reproduced its malformed-snapshot failure twice before this fix and passes afterward.

Retain bounded native snapshot failures and structured results from the complete actual CommandsTest class. Require the three named Linux-only Darwin skips exactly. Local 22 command contracts and 45 installed-consumer contracts pass; helper and Linux affinity fixture bytes are unchanged. Attempt 1 native proof remains incomplete pending fresh execution and raw-row diagnosis.
…ical snapshot errors

Execute only the actual owned-zombie receipt contract for up to 30 iterations in a 60-second start window, with failfast and existing bounded command cleanup. Retain offending raw ps rows, source binding, and structured per-iteration results. Preserve the already verified full native contract proof by enforcing its exact helper/test hashes.

Local diagnostic-runner verification passed 30 iterations (180 command cases) in 15.022s. The two historical unmodified native snapshot errors remain unexplained; this probe provides bounded evidence for review rather than a speculative parser fix.
…thout claiming retirement

Actual native capture showed a complete numeric ps row with state ?< in an unrelated group. Recognize Darwin's unknown Mach state while retaining its membership and conservative non-Z semantics. Strict malformed input and owned leader checks remain unchanged.

Full captured stdout failed twice through the actual parser before the minimal whitelist repair and now preserves all 412 rows. Add captured-row, unknown owned-group denial, malformed input, and ownership regressions. Local 26 command/49 installed-consumer contracts and 120 affinity trials pass. Restore temporary full native verification for the new source; prior uncaptured parser errors remain only corroborated same-cause inference.
@etr
etr merged commit ab3a7fa into v3 Oct 16, 2026
1 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant