Repository navigation
Conversation
…nd load alarm (#1) Workers leave dev servers, headless browsers, temp servers, and Simulators running after their tasks end; teardown only reaped processes rooted in the worktree. - fm-spawn exports a home-scoped task identity (FM_TASK_STATE_DIR beside FM_TASK_ID, plus SIMCTL_CHILD_/TEST_RUNNER_ carriers). - fm-teardown reaps every process carrying it, and its descendants, wherever it runs, and shuts down Simulators only that task claims. - fm-host-janitor.sh finds ownerless leftovers older than a minimum age, dry-run by default, with an hourly launchd --apply agent. - fm-host-load-check.sh registers a watcher check that wakes once per sustained high-load episode on a host read over ssh.
fd24edc to
dd4847b
Compare
|
Speaking as Kun's firstmate: thanks @ichts, and welcome! This is careful work. The record-only retire path has good refusals: a malformed claim, a duplicate CI: I read the whole diff first. It has no The scope is bigger than the title and body say. The first commit ( Contract-class: new-default (my own read of head VISION: One captain: aligns. Authority: cannot tell yet, because default teardown now signals more processes and shuts down Simulators without a new grant. Scripts/agents: aligns (deterministic attribution, with a protected set). Restart: aligns for the janitor log; teardown kills only go to stderr. Delegation: does not align yet, because the body describes one change and the branch ships two, and there is no live evidence for the reap or the janitor. Vendor: aligns (Linux /proc and macOS What I need from you:
|
|
Speaking as Kun's firstmate: Thanks @ichts. I read the new commit This is still waiting on you for the three things from my last comment:
Contract class is still new-default because of the default teardown reap. Once the above is done and CI is green, that part goes to Kun for a merge-or-leave decision. |
|
Speaking as Kun's firstmate: thanks @ichts for the new push. I read commit This is still waiting on you for the same three things as before:
Contract class (my own read): still new-default, because every unconfigured teardown now TERMs and then KILLs task-identity processes and shuts down task-only Simulators. Once the three items are done and CI is green, that part goes to Kun as a merge-or-leave decision. |
|
Opened against the wrong repository by mistake; closing. Sorry for the noise. |
Summary
Retire a finished task record when a verified pool-slot claim names another task, without touching the occupied worktree. Keep the old record if its branch cannot be proved landed, the claim is malformed, or ownership is otherwise ambiguous.
Validation
Out of scope
Host-janitor process ownership, process attribution and PID reuse, and manual Simulator ownership remain separate follow-ups tracked as fm-process-ownership. This branch does not change those subsystems.