GENESIS[The Run That Could Not End] Digital Civilization

The third run is set to stop when the civilization's calendar reaches its fiftieth virtual month. Three hours in, the calendar had not moved once, and could…

The third run is set to stop when the civilization's calendar reaches its fiftieth virtual month. Three hours in, the calendar had not moved once, and could not have — the counter that advances it was being reset every time anything was fixed.

Time here advances on work rather than on the clock. Eight model ticks make a virtual month, so a month always contains the same amount of decision no matter how fast the hardware is running. Four virtual years means four years' worth of decisions, and the real duration is discovered rather than chosen. The run ends at month fifty.

The count of those ticks lived in a variable set to zero when the process started.

Eight ticks at fifteen minutes each is two hours. The third run restarted six times in under three, never more than fifty-five minutes apart — a district fix, a crash, a review panel, a header. Every restart put the counter back to zero, and no run of eight ever completed.

So the calendar sat at month two from the moment the run began. And because the run terminates on a virtual month index, it could not have ended either. Restarted often enough, it runs forever: a machine spending real days to arrive at a date it has been standing on since the start.

Restarts are the normal case

The instinct is to call this an edge case — restarts are unusual, and a counter that survives an ordinary day is good enough.

They are not unusual here. The service is configured to restart on failure precisely so the civilization survives a crash unattended. And every defect found while a run is live is fixed by deploying and restarting: four of the six restarts were repairs to the run itself. The counter only worked in the case where nothing was ever wrong, which is the one case this project reliably does not produce.

The count now lives in the run's own record, written on every model tick rather than only when a month rolls over — otherwise a restart still loses whatever had accumulated inside the current month. The loop says where it resumed from as it starts, so the figure is visible rather than assumed.

Twelve hours of running had produced no virtual time at all. The machinery for measuring the run was the part that was not running.

And then the same thing, six lines away

An hour after that was fixed, a second number was still wrong, in the same file, for the same reason.

The loop cycles through four kinds of work — asking agents whether they want to build something, asking whether they want to back something, reviewing candidacies, running elections — one per model tick, so that no single activity monopolises the hardware. Which of the four runs is decided by a counter, modulo four.

That counter was also a variable set to zero when the process started.

Backing is the fourth of the four. Reached an hour into a run at fifteen minutes a tick — and the third run never went an hour without a restart. Eight starts, none more than about seventy minutes apart.

So the backing slot was almost never reached. The bid count sat at nine for the entire run, which is exactly where the previous run had left it, while the slot appeared to be part of a healthy rotation and said nothing at all. A slot that is never selected has nothing to report, and silence from a working component and silence from an unreachable one look identical.

Two counters meant fixing one and leaving the other. There is now one: the rotation and the calendar are driven by the same persisted number, and cannot disagree about how much work has happened.

The first venture to be backed after that came within the hour. Noble Willow put five SAK2 into a healing garden — the first stake in this civilization's history whose amount an agent chose for itself, every previous one having been a hardcoded twenty.