feat(bin): add opt-in host-root supervision - #1238
Conversation
|
Automated reminder: thanks for the PR! This branch currently has a merge conflict with the base branch. When you get a chance, please rebase onto (or merge) the latest base branch, resolve the conflict, and push. After that, checks will re-run and the PR will get looked at again. Noted for firstmate#1238 at |
eb42af2 to
39e7244
Compare
|
Automated reminder: thanks for the PR! This branch currently has a merge conflict with the base branch. When you get a chance, please rebase onto (or merge) the latest base branch, resolve the conflict, and push. After that, checks will re-run and the PR will get looked at again. Noted for firstmate#1238 at |
|
Automated reminder: thanks for the PR! This branch currently has a merge conflict with the base branch. When you get a chance, please rebase onto (or merge) the latest base branch, resolve the conflict, and push. After that, checks will re-run and the PR will get looked at again. Noted for firstmate#1238 at |
baa5ef0 to
929cbb4
Compare
|
Rebased this PR onto current Validation at head The new upstream Actions runs are currently |
929cbb4 to
03c25bc
Compare
3fc65f4 to
7a05d4f
Compare
Keep the synthetic Claude process identity portable across Bash builds and ensure the host-root Herdr acceptance uses its compatible tasks-axi fixture for decision inventory.
3bec19f to
7c8d467
Compare
# Conflicts: # .pi/extensions/fm-primary-pi-watch.ts # tests/fm-pi-watch-extension.test.sh
# Conflicts: # .agents/skills/secondmate-provisioning/SKILL.md # .pi/extensions/fm-primary-pi-watch.ts # AGENTS.md # bin/backends/herdr.sh # bin/backends/zellij.sh # bin/fm-backend.sh # bin/fm-control.sh # bin/fm-decision-hold.sh # bin/fm-host-root-lib.sh # bin/fm-promote.sh # bin/fm-remote-secondmate-control.sh # bin/fm-send.sh # bin/fm-session-start.sh # bin/fm-spawn.sh # bin/fm-supervision-instructions.sh # bin/fm-teardown.sh # bin/fm-tmux-lib.sh # bin/fm-wake-lib.sh # docs/sessionstart-nudge.md # docs/verification/runtime-backends.md # tests/fm-backend-herdr-host-root-e2e.test.sh # tests/fm-backend-herdr.test.sh # tests/fm-backend.test.sh # tests/fm-calm-pi-extension.test.sh # tests/fm-control-relaunch.test.sh # tests/fm-control.test.sh # tests/fm-gotmp.test.sh # tests/fm-host-root-mode.test.sh # tests/fm-pi-primary-types.test.sh # tests/fm-secondmate-liveness.test.sh # tests/fm-teardown.test.sh # tests/fm-turnend-guard.test.sh # tests/fm-watcher-lock.test.sh
# Conflicts: # .agents/skills/secondmate-provisioning/SKILL.md # bin/fm-x-link.sh
Intent
Keep FirstMate operable from an opt-in external instruction root (
FM_HOST_ROOT) while preserving normal unset behavior, isolated target-worktree workers, native Windows Herdr support, endpoint identity, teardown safety, and SecondMate recovery.What Changed
FM_TARGET_WORKTREEcheckouts; primary Pi/OpenCode host plugins stay inert inside target workers.Safety Fixes Included
This update closes all confirmed review and audit blockers:
fm_tmux_cliuse for tmux foreground probes.fm-guard.shcan mutate supervision state.Risk Assessment
High-touch lifecycle change, mitigated. The code affects spawn, control, recovery, and cleanup boundaries, so regressions could otherwise target the wrong endpoint or return an in-use worktree. The implementation now fails closed on identity/authority mismatch and has behavioral regressions at each destructive boundary. No known implementation blocker remains from the completed reviews.
Validation
Validated at head
7c8d4675f5ea0577421944f09f641bcdb7c9c7c0, rebased ontoorigin/mainf1a4af426d7199c1781bc91ccd143b8e1f732d10:bash bin/fm-lint.shbash bin/fm-doc-audience-check.shbin/fm-test-run.sh --check-coveragegit diff --checktests/fm-secondmate-liveness.test.shtests/fm-decision-hold-lifecycle.test.shThe full local suite still encounters pre-existing MSYS/Windows fixture limitations also reproduced on the baseline (symlink handling, CRLF-sensitive Herdr output, process ancestry/
ps, date-sensitive fixtures, and the existingfm-test-runjobs-scheduling fixture). Hosted GitHub workflows are pending upstream maintainer approval.Merge
This PR has not been merged. Please approve and run the hosted workflows before merge.