Review round 1 of PR #82:
- A running claude/grok row without a recorded id is refused by the
precheck (stop would fill it with a folder-wide guess the purge then
deletes); record-id never records a pre-assigned guess, and a target is
skipped (id_unverified) when the row's id after the normal stop is not
the one recorded before it.
- reset takes the update admission lock exclusively while it publishes
.mam/loop-guard-active and .mam/reset-in-progress; delegate submit
refuses on a live reset marker (mam_reset_admit). Before each target's
stop its open jobs are re-read (skipped as open_job, never cancelled),
and a row whose agent/server no longer matches the spec is skipped.
- read_spec validates every stored field (herdr_server required, never
defaulted) and rejects duplicate names.
- Signal tests wait 60 s for the kill-session gate (this Mac needs ~18 s).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>