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.
~/Documents/Codex/codex-scratch.RETIRED.md~/Documents/Development/_llm-wiki_project.RETIRED.md~/Documents/Codex/Projects/{app-icon-gallery, case-pet, codex-pets, dev-fleet-reconciliation, PROJECTS.md, RTTy-app, rtty-logtty-app-fleet}.RETIRED.md
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
- §2 of the 14:40 checkin called this "cosmetic" and scoped it at two files. Both wrong — nine files, and it exposes a namespace-model problem, not a typo.
- That same §2 said "either the stub text was templated across hosts, or these were placed by the wrong worker." Neither. They were correct when written and were overwritten by sync.
- §5 of that checkin still stands unchanged, as does the connectivity finding in §4.
5. Spend
Inline, Opus 5 lead. 0 subagents, 0 codex, 0 agy. Artifacts: 9 corrected tombstones, 9 preserved originals, this checkin.