herdr resume — service handover completed, TCC cost measured, jdmbair13m5 disk-full root cause
Session: claude@rdmbair15m5 · 2026-09-06 14:00:24 → 14:20 EDT (~20 min) · resume of the 2026-09-05 rollout
Headline
The launchd handover predicted on 09-05 completed by itself, and it had a real cost that only became measurable once it did.
- herdr is now launchd-owned on rdmbair15m5: PID
1107, ppid=1,
brew services=started. HERDR-20260905-07 → RESOLVED, no intervention. - Fleet state: 6/6 herdr 0.8.2 · 5/5 remote services
started· config sha26c720d1d2a5byte-identical on 6/6 ·reload-config=appliedon all. - Cost of the handover: the TCC probe that read all five OK on 09-05 under Terminal.app reads all five MISS today under launchd — and in the Claude context, not just herdr's own.
| context on rdmbair15m5 | 09-05 Terminal-parented | 09-06 launchd-parented |
|---|---|---|
| Claude-spawned bash in a pane | all 5 OK | all 5 MISS |
direct herdr pane run child |
(not measured) | all 5 MISS |
That the Claude result changed proves claude is
not its own responsible process here — so making herdr a service
stripped Screen Recording / FDA / Accessibility from every agent
running inside herdr. Granting the herdr binary should restore
it for all panes (inference, untested).
Verified mitigation for the FDA half:
ssh localhost '<cmd>' — sshd holds FDA fleet-wide.
Direct read DENIED, via ssh localhost OK. Also found: this
Mac cannot ssh to itself by hostname (times out) — corroborates
HERDR-20260905-08.
Cannot be automated (circular): computer-use MCP needs Accessibility + Screen Recording to drive System Settings — the very grants that are missing. MDM PPPC also needs approval on a non-enrolled Mac. Needs Rich at a keyboard.
jdmbair13m5 — socket bind failure was a FULL DISK (HERDR-20260906-17)
fleet_herdr_attach.zsh failed there with
remote port forwarding failed for listen path. Ruled out in
order: not the stale-socket trap (a fresh path failed, and so did
/tmp); not sshd config (byte-identical to a working host).
Actual cause — ssh -R cannot bind a socket it cannot
create:
/dev/disk3s5 926Gi 901Gi 100Mi 100% /System/Volumes/Data
touch ~/.config/herdr/writetest -> No space left on device
No APFS snapshots (count 0). Real data: Pictures 332 GB, Documents
260 GB, Library 55 GB. Reclaimed to 1.4 GiB using
vendor-managed maintenance only (brew cleanup --prune=all =
756 MB, plus tool caches). No user data touched. Bind
then verified BIND-OK and the pane re-attached — causally
clean in both directions (fails at 100 MiB, succeeds at 1.4 GiB).
jdmbair13m5 has a 926 GiB disk while every other fleet Mac has 3.6–7.3
TiB; 0.15% headroom will refill. Needs Rich.
Other findings
- HERDR-20260906-16 — Claude is NOT LOGGED IN on
rdmbair13m5 (
Not logged in · Run /login). The pane is decorative until an interactive OAuth.~/.claude/.credentials.jsonexists there, so the file alone is not proof of a usable session. Measurement trap recorded:security find-generic-passwordover ssh returns MISSING on all six hosts — an ssh session has no GUI context to unlock the login keychain, so that reading is an artifact, not evidence. - HERDR-20260906-15 — backticks in a heredoc COMMENT executed
hostnames — FIXED. The identity guard's comment contained bare
`rdmbair13m5`inside an unquoted heredoc, so both hostnames ran as commands at generation time and their empty output replaced the text, corrupting the comment in every generated launcher. Same class as the rc-through-a-pipe trap. - HERDR-20260905-06 corrected — the claude slow-start MIGRATES. rdmbair13m5 71–146s → 1s; jdmbair13m5 20s → 1s; rdmsm4x 1s → 45s. Transient host contention, not a property of the 13m5 Macs. The original title was too host-specific.
- Sidebar rebuilt. The 09-05 ssh panes died with the
old server;
--closeremoved exactly the five fleet workspaces by label inclusion and left Rich's four live local sessions untouched. Identity guard printed "verified by the far end" for rdmsm4x, rdmpw3265m, rdmpw3275m, jdmbair13m5. - Stale note corrected: SESSION-STATE said
config.toml was not pushed fleet-wide; a 15:34 push on 09-05 did push
it, all six match, each host kept one
config.toml.bak-fleetpush-*, and there is no theme drift (no explicit theme name in the deployed config).
Budget
usage_status returned advice=unknown —
usage.json 18 min stale AND the Anthropic vendor read is unavailable
("Claude credential has no access token"), which on a host with a
collector is itself a fault. Local measurement: Anthropic 7d
44.4%; OpenAI 100% until 2026-09-07.
No subagents spawned; all work inline.
Records
fleet/herdr/ISSUES.md (19 headings, was 16) ·
fleet/herdr/SESSION-STATE.md (245 lines) · both pushed to
canonical rdmsm4x. No secrets written.