Skip to content

Mac push: macOS reads process groups without cgo (from #2039) #2055

Closed

Description

@AbirAbbas

This draft was closed, unmerged, when the 2026-10-29 Mac stability and performance push was stopped early to save usage. Its branch is kept: reopen the PR or start from the branch, rebase onto the latest base, and finish the steps below.

PR: #2039 (processgroup: macOS reads process groups, so left-running services and the job bound work there)
Branch: feat/darwin-process-inspection

What it fixes. Release builds use CGO_ENABLED=0, so on macOS process-group inspection fell back to nothing: left-running services were not reported and the job bound could not see a subtree's CPU. The branch reads process groups, descendants, CPU, argv and listening ports through system calls without cgo.

Done. Implementation, the two R4 tests passing on a Mac, CGO_ENABLED=0 darwin builds.

Left. Rebase onto the latest app/v3; full Mac go test ./... vs base; CI comparison; a Codex round; a manual check in the app (a left-running service is reported with argv and port; a bounded CPU-heavy job shows subtree usage); the benchmark's ns/op.


🤖 Generated with Claude Code

Activity

  1. added
    area:sessionThe engine — turns, tasks, the toolbelt, checkpoints
    sev:seriousWrong or missing behaviour a person meets in ordinary use
    on Nov 1, 2026
  2. AbirAbbas commented on Nov 3, 2026

    @AbirAbbas
    CollaboratorAuthor

    Merged via #2039 (app/v3 2c7f108). On macOS 15.6 arm64 the darwinproc, executor, processgroup and session tests fail on the branch only where base fails too (9 failures, all among base's 11). With CGO_ENABLED=0, as release builds use, the branch passes executor's TestLocalRecordsAListeningServiceFully and TestAShellCallTellsTheObserverWhatItLeftRunning, which base fails. CGO_ENABLED=0 darwin builds, Linux and darwin/amd64 vet, and the Windows build are all clean. CI has nothing beyond the app/v3 baseline except flakes that pass on a rerun of the same SHA or also fail on unrelated branches. Codex's only finding, a PID-reuse race in the service description that Linux already had, is filed as #2260. Not done: the in-app manual check and the benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:sessionThe engine — turns, tasks, the toolbelt, checkpointsbugSomething the code does that it should notsev:seriousWrong or missing behaviour a person meets in ordinary use

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions