Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260826-1905-tyrell-resume-and-cross-project-context-filing

rdmsm4x — Tyrell resume + cross-project context filing

Session: 86816e7d-d320-481d-be49-47c476a4bd72 ("tyrell.app build kickoff", cwd ~/dev/tyrell) Span: 2026-08-26 18:49 → 19:05 EDT · rdmsm4x · Claude Opus 5 Budget posture at start and throughout: usage_status = hold (Anthropic 7-day vendor-reported 89→90%). All work done inline — no subagents, no fan-out, no escalation, per the delegation policy's hold rule.

Rich's instruction: "resume/complete this work — first document all contexts for other efforts/threads, unrelated to the primary goal here, and document/file/store them with their corresponding projects for reference/handoff that is automatically picked up and intelligently ingested … by the corresponding project/thread/task on its next run."


Part 1 — cross-project contexts filed (done first, as directed)

Used the existing ~/dev/todo intake system rather than inventing a parallel mechanism: one Markdown item per context with project: frontmatter, and the hourly LaunchAgent com.eastcoastscience.todoscan relays each into the owning project's ISSUES.md as an append-only [todo:<id>] line. That is the auto-pickup path Rich described — every project's agents already read ISSUES.md on start.

Four items written; all four verified relayed (three by the scanner firing on its own mid-write, the fourth by a manual scan_todo.zsh run):

Item Relayed to What it carries
20260826-dataroo-basic-auth-credential-rotation sites/dev.dataroo.net Rotate the wiki Basic-auth password for user richh — pasted into chat 2026-08-26 ~18:25, now permanent cleartext in transcript JSONL and every backup of ~/.claude. Value deliberately not recorded anywhere.
20260826-agent-authenticated-read-pattern ai/claude-ops Standing rule: never accept a pasted credential, never build an auth bypass; three supported paths (local docroot ~/dataroo.net/wiki/, tailnet no-auth mirror, ~/.netrc by reference). A dataroo 401 is the site working, not a blocker.
20260826-rdworkbench-superseded-harvest-plan apps/rdWORKBENCH Records the 2026-08-24 "fresh + harvest later" ruling in rdWORKBENCH itself — previously only in Tyrell's punch-list, so anyone opening rdWORKBENCH would have started repairing a superseded app. Lists what is still worth harvesting (themes) and what Tyrell has since rebuilt (menu bar, MCP).
20260826-fleet-host-daemon-findings-from-tyrell fleet/maintenance Two host-health findings Tyrell surfaced but does not own: ChatGPT.app/codex vnode-lock contention wedging rdmpw3275m (spindump-proven, proxy originates from rdmsm4x, 19 GB ~/.codex), and the chronod leak on macOS 27 beta. Aimed at the two live fleet-performance sessions.

Filed directly where no ISSUES.md exists for the scanner to target:

Part 2 — Tyrell work completed

Found on resume: three files dirty from a prior session (Anthropic vendor-quota collector, an informational-bucket filter in the MCP, relayed todos). Verified: build green, 58 tests pass, collector runs clean, live vendor data correct. A concurrent session committed the collector work as b73854e mid-session.

Defect found and fixed — 4df3345: the informational-bucket rule had shipped in tyrell-mcp only. StatusFeed.pollUsageOnce graded any bucket carrying a used_pct, so an unrecognised Anthropic window (nimbus_quill, live today) reading high would light a red LLM BUDGET chip in the menu bar while usage_status, reading the same usage.json, said proceed — two verdicts from one document. The /usage detail panel was already correct (it lists every bucket with its caveat).

Root cause was duplication: four sites reduce the usage document, and the fix landed in one. Moved the rule to TyrellCore.UsageGrading (shared by both verdict surfaces) and pinned it with 5 new tests covering both failure directions — inventing headroom from a missing percentage, inventing exhaustion from an ungradable one. 63 tests green.

Sources/tyrell-mcp/MCPMain.swift was left uncommitted on purpose: a concurrent session is editing it and it carries their unfinished improvements. Behaviour is identical either way. Coordinated via fleet bus 20260826-190044-E1302CAC asking them to keep the UsageGrading call.

Shipped: universal signed bundle built, deploy_app_fleet.zsh installed + signature-verified on rdmbair15m5, rdmpw3275m, rdmbair13m5, jdmbair13m5. rdmpw3265m unreachable (already known offline; catches up next deploy). Local bundle synced and tyrellbar restarted — it had been running an 18-hour-old binary since 01:21, so without the restart the fix would have been "shipped" everywhere except the Mac Rich actually looks at.

Not done, deliberately

Rich's open decisions touched by this session

  1. Rotate the dev.dataroo.net Basic-auth credential (filed to sites/dev.dataroo.net). The agent's refusal to use it does not undo the exposure.
  2. ISSUES #21 still needs your call: quit ChatGPT.app on rdmpw3275m (may not stick — the proxy re-establishes from rdmsm4x) vs. scoping a ~/.codex runtime exclusion.
  3. Fleet weekly Anthropic reads ~120% of the configured ceiling — the vendor endpoint now supersedes that estimate for grading, so this is less urgent than it was, but ~/.tyrell/usage-limits.json is still calibrated against one host.