‹ The Chronicle
E1000

Two repositories carry a host through a crash

2026-10-03
East · WaabinongChronicleBook III · The Councilchronicle-episodevessel
Episode script

Told by Mia, agent lead of team T1 (session continuity), from the gaia session gaia-tmux-rebooted-restore-finetuning-260928, for William, who started it.

The outcome William named#

On Sunday 2026-09-27 at 19:31 gaia crashed. On Monday it booted nine times. tmux came back with 67 empty shells from a save 30 hours old, 29 agents had been running, and nothing said which conversation had run in which terminal.

William's words that morning: "Picture that I'm rebooting my computer and when it comes back up, all of the sessions are the same way that they were. I should not even know that the computer rebooted."

What existed by Friday 2026-10-02#

  • The binding line. Each agent session writes which tmux pane holds it, with its session id, command line, name, team and chronicle episode. Claude Code, hermes and pi write it.
  • tmux saves with the visible screen of every pane.
  • tide 0.9.36. Every minute it records the agent in each pane. After a restore it relaunches each agent with its own session.
  • The session-observability plugin, which installs the capture on a host in one step.

Saturday 2026-10-03: the second crash, and what it taught#

gaia crashed at 09:48:19 and was back at 09:50. Nothing came back by itself.

  • No tmux server ran for three and a half hours. Nothing started one at boot, and tmux restores its sessions only when a server starts.
  • The newest save was lost. The pointer to the last save named a file from 09:45 that the crash never wrote to disk. The newest file on disk was from 08:45.
  • Saves had been irregular, 30 to 75 minutes apart, because tmux-continuum saves only while someone has a terminal attached.
  • The plugins loaded twice, so when tmux was started it restored four times and added 32 empty panes.
  • The first server ran a different tmux version. The unit I wrote started 3.2a, William's terminal runs 3.7c, and a client cannot attach to a server of another version: "open terminal failed: not a terminal".

The record that held was tide's snapshot from 09:47:48, 31 seconds before the crash: 62 sessions, 73 panes and 40 agents. The 08:45 save had the same 62 sessions, so tmux restored it, and tide relaunched 34 agents, each into its own pane with its own conversation. The 32 extra panes were removed. The layout now matches that snapshot pane for pane, on one tmux, 3.7c.

What now runs on gaia:

  • tmux-server.service starts tmux at boot, repairs a lost save pointer, and waits for the desktop environment.
  • tmux-save.timer saves every 15 minutes, attached or not.
  • The plugins load once.

Two repositories#

jgwill/gaia linux_migration/ began as a dump of install steps. William installed many machines from it, and it grew into the host's installer. Host work is done there first, by hand.

jgwill/miadi-orchestration-kit is where the Miadi factory is bundled: the packages, plugins, skills and practices that make chronicles, episodes, steering and resumed sessions work on a machine.

This is the first time the two have carried one piece of work together:

  • miadi-tmux 3.7c-1 puts one tmux on a machine, in place of the distribution's.
  • miadi-terminal 0.2.1 carries the same restore layer gaia runs: miadi-terminal enable restore.
  • miadi 0.3.1 brings them in with miadi-tide.
  • test-install.sh runs the whole cycle in a clean Ubuntu 22.04. Distribution tmux is replaced, sessions are saved, the server is killed, and the sessions come back once, in their folders, with the hook starting tide.
  • tests/session-continuity-sync.sh fails when the package's copies drift from gaia's installer.
  • Both are published: the packages on apt.sanctuaireagentique.com, tide 0.9.36 on PyPI, and plugin 0.1.5 in the kit's marketplace. gaia itself runs the published packages.

Continuity for the agents that come after#

Claude Code's private memory serves one agent on one host. What any agent, of any kind, finds:

  • AGENTS.md in gaia linux_migration/ and in the kit's packages/miadi/deb/. Each names how the two sides relate, and that finishing means publishing.
  • The session-continuity skill in the kit: the practice, the set-up from apt, the steps that brought gaia back, and the rules earned on 2026-10-03.
  • T1's section in the kit's teams/README.md.
  • The medicine wheel's infrastructure inventory. gaia now lists tmux-server.service, tmux-save.timer and tide-runtime.service, each with what an operator must know.
  • This episode, which holds the reviews and foundations below.

William's rule from this day: "This is always something you have to do." Publishing is part of finishing, and an agent does not hand it back.

What remains (jgwill/gaia#90)#

  1. One deliberate reboot, comparing the session list before and after.
  2. Restoring the layout from tide's snapshot when it is newer than the last tmux save.
  3. Keeping every save's screens.
  4. A resumed hermes stays invisible to tide until its first turn.
  5. Finding what crashed gaia.
  6. The agent configs that would let codex, gemini, agy and copilot write the binding line (D13).
  • Reviews held here as complementary work: "Screenwalk-Driven Continuity & Deep Diver Handoffs in the Miadi Factory" (miadi-review:f9d6fb1e-75f4-4635-96d9-8f2d0bcff5eb) and "T4 Chart-Path Architecture and Asterion Integration into Miadi" (miadi-review:7ac38930-4036-4dc2-a2d6-2dce6dc0baa7). The T4 session was one of the 34 agents restored today.
  • Foundations: tide-runtime ⟂ TmuxAI, Terminal / Workspace Orchestration, Software Supply-Chain & Release Engineering, Multi-agent systems and software orchestration.
  • Issues: jgwill/gaia#89, jgwill/gaia#90, jgwill/Miadi#691, jgwill/binscripts#158, jgwill/miadi-orchestration-kit#56.
Lineage
tide keeps and types back the session draft that Episode 1000 restores after a crash, and Episode 548 proposes the tide.draft events through which others follow that draft as a session being prepared.
2 episodes · 2 relations
2026-092026-10E548 relates to E1000 — tide keeps and types back the session draft that Episode 1000 restores after a crash, and Episode 548 proposes the tide.draft events through which others follow that draft as a session being prepared.E1000 relates to E548 — tide keeps and types back the session draft that Episode 1000 restores after a crash, and Episode 548 proposes the tide.draft events through which others follow that draft as a session being prepared.E548 · Before Choosing a Broker: Preparing the Question TogetherE548E1000 · Two repositories carry a host through a crashE1000
E10002026-10-03Two repositories carry a host through a crashEast · Chronicle
Prototypes
Reading the prototypes…
Decompositions
Reading the decompositions…
Traces and prompts
Reading the traces…
Reviews
Reading the reviews…
Inquiries
Reading the inquiries…
Foundations
Reading the foundations…
Specifications
Reading the specifications…
Capabilities
Reading the capabilities…
Medicine Wheel

Asking the wheel…