Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260826-1906-cross-project-handoffs-and-offline-catchup-confirmed

Changelog — cross-project handoffs filed, offline catch-up confirmed on the host it was built for

Host: rdmsm4x · Session window: 2026-08-26 18:58 → 19:07 EDT Continues: the 2026-08-25 13:32–16:16 EDT fleet agent-policy / config-reconciler thread.

Why this session existed

The prior thread shipped the policy consolidation and the config reconciler, but left two things undone: one claim proven only by proxy, and a set of findings that belonged to other projects and were sitting in a transcript rather than in those projects' punch lists.

1. The one unproven claim is now proven — jdmbair13m5 self-healed

It was unreachable for the entire 08-25 session and had never received v3.0 or v3.1. It was queued under offline_pending, and the contract was only ever demonstrated on rdmpw3275m as a stand-in.

Verified by direct check on the host, 19:00 EDT — no manual push at any point:

All six hosts now current. 24 hours of unattended reconciler operation, every run exit 0, hosts moving in and out of reach tracked without intervention.

2. Cross-project findings filed through the existing intake, not hand-written

The mechanism Rich asked for already existed: ~/dev/todo/items/<id>.md → scan_todo.zsh (LaunchAgent, hourly and on change) → append-only [todo:<id>] line in the owning project's ISSUES.md, which any agent reads on start. Using it beat inventing a second path. Three items filed; all three confirmed relayed in .state/relay-ledger.tsv and by grepping the tag in the target file — not by trusting scan.log, which reports RUN end … skipped=0 even when a run aborts early on the lock.

Item Went to
20260826-tyrell-anthropic-vendor-rows-dropped-silently apps/Tyrell
20260826-fleet-tailscale-duplicate-nodes fleet
20260826-policy-block-vendor-quota-text-stale ai/claude-ops

Two candidate contexts were deliberately not filed, because filing them would have been noise: the rooDB paused daemon is intentional and already documented in that project's PAUSED.md, and the MCP connector auth gap is covered by [todo:20260826-agent-authenticated-read-pattern].

3. The finding worth Rich's attention

The budget backstop is grading Anthropic on a local estimate while believing it is authoritative. usage_status returns no anthropic_vendor_* buckets at all and records no fault (vendor_read_detail: null, and quota_truth lacks the "vendor read unavailable" suffix) — even though ~/.tyrell/vendor-gate.json held a successful vendor read from three minutes earlier:

vendor  5h 11.0%   7d 90.0%     (authoritative, cached, 174s old)
local   5h 59.2%   7d 96.7%     (what actually produced advice=hold)

Honest bound: because grading takes the worst bucket, today's verdict is probably hold either way. The damage is that the authoritative reading is absent without notice, so nobody can tell which number produced the verdict. unknown would have been loud; this is silent. Filed with evidence and a hypothesis (rows dropped between fetch and emit, plausibly a staleness filter that doesn't route through vendor_reason) — not fixed here, because it is Tyrell's code.

Consequence for the policy text: the block deployed to all six Macs and all three harnesses still tells every agent that percentages are "provisional … not vendor quota". False on three counts now. Filed to ai/claude-ops, along with the fact that the block's only pointer to the full policy is a Claude-skill reference — unreadable by the Codex and agy harnesses the block is addressed to. Fix is cheap: the file exists at a real path, present on the peers.

4. Records updated

5. Verification

Unlike the 08-25 session, the published page was verified as served, not just as a file, via the supported no-credential path: origin 127.0.0.1:8787 → 200, tailnet mirror rdmsm4x-1.kangaroo-kitefin.ts.net → 200, content string present in the served bytes. Public dev.dataroo.net → 401, by design — that is the access control working, not a blocker, and it no longer needs a credential to work around.

Spend

usage_status read advice: hold at 18:59 EDT. Honored: zero subagents, zero codex, zero agy. Entire session inline.