kevin-liu-01/headroom의 2026-10-28 커밋(3c27f73)은 macOS 앱에 "남은 프로세스(leftovers)" 목록과 Kill 버튼을 추가했다. 이 앱은 Claude와 Codex 데스크톱 앱, 그 에이전트 세션, 세션이 띄운 프로세스가 메모리를 얼마나 쓰는지 모아 메뉴 막대에 표시한다. 커밋은 이 변경을 2.2로 표기한다.
대상은 세션이나 셸, 스크립트가 끝났는데 살아남은 프로세스다. macOS에서는 이런 프로세스의 부모가 launchd(pid 1)로 바뀌어 에이전트의 프로세스 트리에서 빠지고 다른 행에도 나타나지 않는다. Headroom은 커널이 보관하는 원래 부모의 pid 버전 정보(proc_pidinfo의 PROC_PIDUNIQIDENTIFIERINFO)를 읽어, launchd가 스스로 띄운 앱이 아니라 입양된 프로세스만 골라낸다. 같은 프로세스 그룹에서 2초 안에 시작된 것은 하나의 작업으로 묶여, 셸이 남긴 tail -F | grep 파이프라인이나 테스트 브라우저의 크래시 핸들러가 통째로 나온다. 창에는 종류, 명령어, 폴더, 복사 가능한 pid, 나이, 메모리, CPU 시간이 코어의 1퍼센트만큼 늘어난 마지막 샘플이 나란히 놓고, 메모리가 큰 순으로 묶음 제목("5 leftovers, 4.3 GB")과 함께 무거운 작업 아래에 둔다. CLI에는 headroom leftovers 표, --json, headroom status 개수 한 줄이 늘었고, 구현은 새 파일 Sources/HeadroomCore/Leftovers.swift와 테스트 파일 LeftoverTests.swift로 들어왔다.
종료는 사용자가 직접 한다. Kill 버튼은 5초 안에 한 번 더 눌러야 실행되고, 아직 같은 프로세스를 가리키는 pid 모두에 SIGTERM을 보낸 뒤 5초 뒤에도 남은 것에는 SIGKILL을 보낸다. Headroom이 스스로 죽이는 일은 없다. 나이 기준은 설정 항목이며 기본값은 30분이고, 설정 파일은 ~/Library/Application Support/Headroom/settings.json에 저장된다. 다만 판별은 홈 폴더, /opt/homebrew, /usr/local에서 실행되거나 테스트 브라우저, 검색, 셸인 경우로 한정돼 있어 다른 경로에서 남은 프로세스는 잡히지 않을 수 있다. macOS 전용이며, 커밋 메시지의 실행 사례는 저자가 만든 앱이 돌아간 맥의 개인 경험으로만 제시되고 별도의 벤치마크는 없다. 에이전트를 오래 붙잡고 있는 macOS 환경이라면 확인할 만한 변경이다.