Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260903-1537-bus-v1.5.0-addressing-identity-take-roster

rdmsm4x-changelog-20260903-1537-bus-v1.5.0-addressing-identity-take-roster

Fleet bus addressing fixed: claude@<host> / @<host> now route to a group of session identities, one of which can take a request while the others stand down — deployed to all six Macs, sha-verified, with the ticket-ledger half in a PR awaiting merge.

Session: claude@rdmsm4x/55b61233 (dev-33) · 2026-09-03 15:08–15:37 EDT · ticket FEAT-20260903-08 · directed by Rich 15:08 EDT.

Scope

All six hosts (rdmsm4x hub; rdmbair13m5, rdmbair15m5, jdmbair13m5, rdmpw3265m, rdmpw3275m). No app source; no permissions.defaultMode; no credentials.

Files touched

Host(s) Path Change Backup
6/6 ~/.agent-coordination/agent_msg.zsh v1.4.0 → v1.5.0 (sha 5c2fdde422432e4c…) agent_msg.zsh.bak-v1.4.0-<ts> beside it on every host
6/6 ~/.agent-coordination/git-hooks/prepare-commit-msg reads CLAUDE_CODE_SESSION_ID (sha 1ec70f1964bbc9d2…) prepare-commit-msg.bak-<ts> beside it
hub ~/.agent-coordination/AGENT_COORDINATION.md appended §9 Addresses are groups; identities are sessions; offers are accepted, not assigned .bak-pre-section9-<ts>; reconciler propagates
6/6 ~/.agent-coordination/mail/.quarantine-test-leak-20260903/ 12 leaked test messages moved here by exact id (0 remaining ×6) they are the backup; nothing deleted
hub ~/.agent-coordination/mail/.state/claude@rdmsm4x_55b61233.seen per-session seen-list, seeded from the address list (35,025 B) additive
hub ~/.agent-coordination/checkins/claude-rdmsm4x-feat-20260903-08.json check-in additive
hub ~/dev/fleet/SESSION-STATE.md §0 for this work, committed git

Repos / PRs (branches pushed to backup = private GitHub and fleet = git.ecs0.net)

Tickets

FEAT-20260903-08 (this work, claimed) · FEAT-20260903-09 Tyrell chat/messaging spec, child of FEAT-20260831-03, owner notified (20260903-153520-E22A54CB) · ISSUE-20260903-29 spokes have no ticket entrypoint (filed, not fixed).

Commands run (rerunnable)

zsh ~/dev/_worktrees/fleet-maintenance-bus-v1.5.0/scripts/tests/test_agent_msg.zsh          # 47/47
BUS=~/.agent-coordination/agent_msg.zsh.bak-v1.4.0-<ts> zsh .../test_agent_msg.zsh          # refused rc 2 (no NOSYNC gate)
cd ~/dev/_worktrees/issues-ticket-offers/tests && python3 test_offer_accept.py               # 44/44
cd ~/dev/_worktrees/issues-ticket-offers/tests && python3 test_claim_leases_and_plans.py     # 68/68
zsh ~/.agent-coordination/agent_msg.zsh whoami | roster --host rdmsm4x | inbox               # live
# per spoke: scp + shasum compare (both files) + AGENT_SESSION=probe zsh agent_msg.zsh whoami
# on rdmbair15m5 (arm64) and rdmpw3265m (x86_64): the 47-check suite against the DEPLOYED file — 47/47 each

Verification evidence

Incident (mine, contained)

Running the suite against the OLD v1.4.0 script spawned its un-gated background sync, which rsynced 12 test messages from the temp maildir to five spoke maildirs (two addressed to the real claude@rdmsm4x). Quarantined on all six hosts by exact id; suite now refuses any script lacking AGENT_MSG_NOSYNC.

Undo

Per host: cp ~/.agent-coordination/agent_msg.zsh.bak-v1.4.0-<ts> ~/.agent-coordination/agent_msg.zsh and the same for the hook .bak-<ts>; mv ~/.agent-coordination/AGENT_COORDINATION.md.bak-pre-section9-<ts> ~/.agent-coordination/AGENT_COORDINATION.md on the hub. Per-session seen files are additive and can be removed. PRs can simply be closed.

Owner actions outstanding

  1. Merge PRs #3 (maintenance), #1 (issues), #2 (fleet). 2. git -C ~/dev/issues pull on rdmsm4x — until then the ledger still accepts an address as holder. 3. git -C ~/dev/fleet/maintenance pull so bus_watch and the launchd reconciler run v1.5.0 + the distribution block. 4. Decide ISSUE-20260903-29 (spoke ticket entrypoint).

No Codex folder exists in any Notes account here and no note named codex_links was found (21 codex-named notes enumerated, none is the ledger). Filed as a fleet ISSUE with the five verified rows; not re-created here to avoid a competing ledger. Rows: PRs maintenance#3, issues#1, fleet#2 (private repos, OPEN via gh); tickets FEAT-20260903-08 and -09 (behind Cloudflare Access; origin 200).

Addendum 2026-09-03 20:35 EDT — Rich: "all approved" → merged and live

Addendum 2026-09-03 21:12 EDT — "fix all remaining issues", all approved

Addendum 2026-09-03 22:06 EDT — jdmbair13m5 recheck (Rich: "check again in an hour")