Fleet changelogs · dev.ecs0.net
rdmpw3265m-changelog-20260825-1535-tombstone-attribution-rootcause

Tombstone attribution defect — ROOT CAUSE FOUND, corrected fleet-wide

Written: 2026-08-25 15:35 EDT · rdmpw3265m · Claude Code Follows: rdmpw3265m-claude-20260825-1440-consolidation-status.md §2, which flagged "two of your tombstones describe other hosts' removals" as cosmetic. That assessment was wrong in scope. It is nine files, and the cause is not a worker error.


1. ROOT CAUSE — ~/Documents is fleet-synced by Tyrell

Sources/TyrellCore/TyrellConfig.swift, defaultRoots:

public static let defaultRoots: [String] = [
    "~/dev", "~/dev.<hostname>", "~/Documents/Development",
    "~/.claude", "~/.codex", "~/Documents/Codex", "~/Documents/Claude",
    "~/.gemini", "~/.agent-coordination",
]

~/Documents/Codex and ~/Documents/Development are ONE shared namespace across the fleet, not six per-host directories. Every host wrote its own correct tombstone at the same relative path on 2026-08-24; Tyrell synced them; last-writer-wins collapsed them to a single surviving version on every machine. rdmbair13m5's codex-scratch record and rdmpw3275m's seven Projects/ records are what survived. Nobody misfiled anything.

This also explains why the numbers in them were correct while the host names were wrong: those hosts held genuinely identical trees, so the measurements transferred even though the attribution did not.

Demonstrated, not inferred. At 15:29 EDT I wrote a per-host correction on rdmpw3265m. By 15:32 it was on rdmpw3275m and rdmbair13m5, byte-identical — SHA-256 e743e0f5630c6302, mtime 15:29:59 on all three. My fix reproduced the exact defect it was fixing, now asserting "THIS host — rdmpw3265m" on two machines that are not rdmpw3265m. I replaced it (§2).


2. What I did

Nine tombstones rewritten host-neutrally. A shared path cannot carry per-host text, so each file now describes the removal as one fleet-wide event with a per-host staged-copy table, and carries an explicit "do not reintroduce per-host wording here" warning with the reason.

RTTy-app.MOVED.md was left alone — it names only rdmsm4x and carries no per-host claim.

Originals preserved two ways: verbatim inside each rewritten file, and as untouched copies at ~/.agent-coordination/tombstone-correction-20260825/originals/. Fully reversible.

Verified propagated correctly: case-pet.RETIRED.md is now SHA-256 13cf056bc8e0, mtime 15:32:53, on rdmpw3265m, rdmpw3275m and rdmbair13m5 alike.

Every figure in the rewrites was measured today against fleet-ingest/ on rdmsm4x. Claims I could not re-verify (GitHub ancestry, SHA-256 sampling against canonical, fsck states) are quarantined under an explicit "inherited, NOT re-verified" heading rather than restated as fact.


3. THREE THINGS FOR THE TYRELL OWNER AND THE CONSOLIDATION OWNER

a) Does Tyrell propagate DELETIONS? I did not test this — testing it is destructive. But if it does, the consolidation's model at these paths is unsafe: a sub-agent deleting on host A would delete on all hosts, and the per-host tombstones would record N independent verified removals when only one removal actually occurred. This is the highest-value open question in this report. If deletes do propagate, re-examine whether each host's ingest was independently verified before its delete, or whether later hosts verified a tree that had already been emptied out from under them.

b) ~/.agent-coordination is in defaultRoots. Checkins, mail, and BUDGET-HOLD are therefore fleet-shared by Tyrell in addition to agent_msg.zsh sync's own rsync. Two independent replication paths over one directory. Worth confirming that is intended — BUDGET-HOLD in particular is described in CLAUDE.md as Rich's per-decision override, and it now has non-obvious propagation semantics.

c) Per-host records need per-host paths. Anything host-specific under a synced root should carry the hostname in the filename (<project>.RETIRED.<hostname>.md), or live outside the synced roots entirely. I did not rename these files — that is a fleet-wide convention change and belongs to whoever owns the consolidation, not to one host's session.


4. Corrections to my own earlier report

5. Spend

Inline, Opus 5 lead. 0 subagents, 0 codex, 0 agy. Artifacts: 9 corrected tombstones, 9 preserved originals, this checkin.