fix(process): verify Windows PTY descendant cleanup - #75113
Conversation
|
Thanks for the focused Windows PTY cleanup work. I found no blocking issue in this sweep.
Automated hermes-sweeper review. |
GottZ
left a comment
There was a problem hiding this comment.
This was generated by AI during triage.
Summary
Five PRs are associated with this complex, but only #75113 addresses the reported Windows PTY descendant-cleanup failure: it captures attributable process identities before PTY teardown, terminates that tree, and verifies cleanup. The four closed, retracted PRs modify unrelated governance, image-ingest, or Discord behavior and do not address the process-registry cause.
Related pull requests
- #25160 [closed]
related— (+611/-0) — unrelated, retracted: This added an opt-in GitHub governance preflight around mutating tools, not Windows PTY ownership or descendant cleanup; although closed, it remains relevant here only to establish that it is not a competing fix. - #26104 [closed]
related— (+278/-0) — unrelated, retracted: This reported successful image generation to an agent-ops ingest endpoint and did not touch process cleanup; although closed, it remains relevant only as an out-of-scope association. - #37676 [closed]
related— (+185/-3) — unrelated, retracted: This converted Discord Markdown tables into aligned fenced text and has no overlap with the Windows PTY failure; although closed, it remains relevant only to exclude it from consolidation. - #37696 [closed]
related— (+117/-3) — unrelated, retracted: This routed Discord streaming edits through thread metadata rather than the parent channel, without changing process ownership or termination; although closed, it remains relevant only to confirm that it is not a duplicate. - #75113
related— (+399/-21) — keep open with a salvage path: The diff directly addresses the cause by snapshotting the Windows PTY-owned PID/start-time tree before parentage is lost, making taskkill failures explicit, and withholding PTY teardown until captured identities are verified gone. This agrees with the keep_open maintainer-bot review, which identifies the salvageable core at tools/process_registry.py:548-606, tools/process_registry.py:665-696, and tools/process_registry.py:1693-1741 against current main behavior at tools/process_registry.py:1607-1613.
Suggested consolidation
Keep #75113 open with the concrete salvage path of retaining its attributable PID/start-time snapshot, explicit taskkill error handling, survivor verification, and delayed PTY-handle teardown. The maintainer-bot verdict reports no blocking issue and a current-main base, while #25160, #26104, #37676, and #37696 are already closed, retracted, and technically unrelated rather than duplicates; no merge recommendation is supported by the recorded lane evidence.
Cross-PR triage: Reviewed 5 pull requests and 0 issues in this complex. Diffs were read for 4 of 5 PRs (rest unavailable); Assessment working set: 50 kB of PR diffs, 1 kB of issue/PR text, 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch.
Summary
killedtaskkill, or surviving descendants while preserving idempotent cleanup and existing browser cleanup callersVerification
10 passed17 passed43 passed(four exact pre-existing Windows-red tests excluded and reproduced against the base)already_exited; simulatedtaskkillfailure returned an error without PTY teardowngit diff --check: passScope and limits
This PR repairs Hermes core PTY ownership and cleanup semantics. It does not use global image-name termination, add Job Objects, modify provider behavior, or claim live Claude/Remote Control certification. The unfiltered repository suite and remote CI remain to be evaluated by this PR.