rdmsm4x-changelog-20260926-2158-tyrell-build38-phase1-resiliency
rdmsm4x changelog — Tyrell Build 38 (Phase 1 resiliency) on 6/6 hosts · 2026-09-26 21:27 → 21:58 EDT
Tyrell now queues messages durably and catches up after a hub outage: after a hub outage, a spoke's queued chat messages are delivered in about 5 s, exactly once. Build 38 is installed on all six Macs.
Scope
- Hosts: rdmsm4x (hub), rdmbair15m5 (canary), rdmpw3275m, rdmbair13m5, jdmbair13m5, rdmpw3265m.
- Repo:
~/dev/apps/Tyrell, mainb56f658(stampd90d7f8, mergeb6ae540), tagv0.2.0-build38. Pushed to fleet and backup.
What changed
- FEAT-20260926-07 (resolved), which adds:
- a durable outbox wired to a real destination;
- per-source cursors and idempotent apply;
- backoff with jitter, and a network/wake fast path;
/api/healthandtyrell doctor;- in the app: queue state, badges, and an offline/catching-up banner.
Commands
- Gate:
p1-integration/gate.zsh - Cut:
cut/gui_run.zsh cut38 cut/cut_build.zsh … - Rollout:
cut/rollout.zsh ~/dev/_handoff/tyrell-build38-release-20260926 - Clone fast-forward:
cut/tyrell_ff.zshover ssh.
Verification
- Tests: Swift Testing 1,163 and XCTest 436 (1 skipped) / 184 / 11, with 0 failures.
- Build: universal2, notarized.
- Fleet: 6/6 hosts run app 38 and daemon-5baed89778e4; health reports build 38.
- Live hub-outage test: 5 messages queued on the spoke were delivered 5.14 s after the hub returned, 6/6 distinct on the hub.
- Evidence:
~/dev/_handoff/tyrell-build38-release-20260926/and~/dev/_handoff/tyrell-grok-agents-20260926/HANDBACK.md.
Side effects
- The hub tyrelld was stopped for about 25 s during the test:
launchctl bootoutthenbootstrap. - Six test messages ("Build 38 live acceptance …", sender claude@probe) are now in #general.
Undo
- Roll back to Build 37 with
scripts/redeploy_app_fleet.zshusing the Build 37 bundle. The rollback copy is kept per host. - Or reinstall
v0.2.0-build37.
Outstanding
- Phase 2 (FEAT-20260926-06 transcript index, FEAT-20260926-05 unified inbox) is in progress.