Skip to content
ClearedStack

Platform · J.2 What it runs on

Operating it: status views, failures and backups

Design

The fixed rules that decide what a status page shows first, what happens when a worker fails, and how the three stores of data are backed up and tested.

J.2.37 min readLast revised November 2026

Status: Design. A specification. It describes how the component is meant to work, not something you can use on this site today. What the labels mean.

On this page
  1. What a status view shows first
  2. Six states, never disguised
  3. The building blocks
  4. When a worker fails
  5. Backups
  6. A restore drill every month

A platform that one person runs has to say plainly when something is wrong, stay quiet when nothing is, and recover without heroics. This page covers the three parts of the design that deal with that: the rules for the status views, the path a failure takes, and backups.

What a status view shows first#

A dashboard is useless if healthy background noise hides a real failure. In this design, what appears at the top of a status page is decided by five fixed rules, not by a person arranging charts and not by a model guessing what looks important. The same state of the cluster always produces the same page.

PriorityNameWhat triggers itHow it is shown
P0CriticalA pod crashes, a health check fails, or an item cannot be processed at allAt the top, in red, with the error code and a rollback control for the owner
P1StalledA worker is paused waiting for a rule, a queue is backed up, or the feed of updates has been silent for more than 15 secondsBeside P0, in amber, with the error code and the repository that owns the fix
P2Needs a personCandidates are waiting for a decision, or proposals are waiting for approvalListed with how long the oldest has waited
P3WorkingWorkers are processing items with no errorsIn green, with counts
P4QuietA healthy worker has nothing to doFolded into one muted line

Six states, never disguised#

Every component on a status page is in exactly one of six states. An idle worker is never painted red, and missing data is never shown as healthy.

StateLooks likeMeans
healthyGreenRunning, passing its checks, and reporting on time
idleMuted greyHealthy and ready, with nothing to do
erroringRed, with a codeAn active failure. Shows a code such as E_TIMEOUT, never a stack trace or an address
recoveringAmberRetrying after an error, or waiting for a missing rule
staleDashed outlineNo update for more than 15 seconds. The view is paused, not live
emptyMuted placeholderNothing has been collected yet

Numbers that do not flicker. Three guards keep a live page readable. A status has to hold for about two minutes before its color changes, so one brief spike does not flip a label back and forth. Updates are sent in small batches every few seconds instead of one at a time. And every figure carries the time it was produced, so a number that has stopped updating is shown as stale instead of sitting there looking current.

The building blocks#

Status pages are assembled from six parts, so that every page reads the same way.

PartWhat it is for
PulseStripOne bar at the top that says whether the platform as a whole is healthy
AttentionCardA card for anything at P0, P1 or P2, with its state, its code and who owns the fix
TrailRowOne line for one item’s progress, or for a quiet worker
MetricCellOne number with its unit and the time it was produced
WhyDrawerA panel that explains, on request, why a rule or a state exists
EditTriggerThe Edit button described in Public edits

Design preview · sample values, not live data

EmptyNothing has been collected yet
Sample values
Urgent lane
0items
Normal lane
0items
Backfill lane
0items
Waiting for a rule
0paused
P1A worker is waiting for a ruleE_NEEDS_SUBTOOL
Recovering

Sample card. A worker met a page layout it has no rule for, paused that one item and asked for a sub-tool. Everything else in the queue carries on.

Owner repo: sextant
PA-0000Sample itemOne line for one item, showing its lane and its state.
normalEmptysample
Lane order
urgent → normal → backfill
AI calls at run time
0by design
Images kept for rollback
5for each component

When a worker fails#

Because no worker guesses, a failure is a predictable sequence instead of a mystery.

  1. 1Noticed and cleanedShipkeeper sees the failing pod, removes anything that names a machine or an address, and reports a public error code.
  2. 2ShownThe failure appears at the top of the status view as P0 or P1.
  3. 3Work is keptThe item stays in the queue. A result the worker had finished waits on its own disk.
  4. 4Stopped or rolled backThe owner can pause the worker, or return it to an earlier image.
  5. 5One task, not hundredsBellbuoy opens a single task for the pattern in the repository that owns the fix.
Figure The path of a failure, from the pod to a fix

The three error codes.

CodeIn plain termsWhat happens next
E_TIMEOUTSomething took too long: an outside site, a download, an internal stepThe item stays in the queue and can be tried again without losing earlier progress
E_PARSEThe data was broken: malformed, or a damaged fileThe worker refuses to guess, records the failure and stops work on that item
E_NEEDS_SUBTOOLThe data was fine but unfamiliar, such as a table laid out in a new wayThe item is paused until a rule is written, then run again. See Sub-tools

Two switches for the owner.

ActionWhat it doesWhen to use it
PauseStops the worker without deleting its queue or its settingsAn outside site is down, or you want retries to stop while you look
RollbackReturns the worker to one of the last five images kept inside the clusterA new version made things worse and you want the last good one back

A rollback needs nothing from outside the cluster, so it works when the outside network does not.

Backups#

Most of the platform holds no data of its own. If the website, the build runner or a worker stops, a fresh copy is started and nothing is lost. Everything that cannot be recreated lives in three places.

StoreHoldsWhy it cannot simply be rebuilt
The databaseThe queue, each item’s history, the scores, the decisions and the proposalsIt is the record of everything that has been decided
PlainforgeEvery repository, including each app’s manifestIt is the primary copy. GitHub has the code, not necessarily the latest commit
LazaretteThe signed imagesImages are not on GitHub. Without them nothing can roll back until everything is rebuilt

Every night, a job takes a consistent copy of all three and sends it off the machine.

StageWhat happensWhy
Consistent copyThe database is dumped at a single moment, and the two volumes are archivedA database copied while it is being written to can be unusable
Encrypted before it leavesThe archives are encrypted on the machineA leaked backup is unreadable without the key, which is kept somewhere else
Sent elsewhereThe encrypted bundles go to storage off the machineLosing the machine does not lose the backups too
Old copies removedOlder backups are dropped on a fixed scheduleStorage stays predictable

A restore drill every month#

A backup that has never been restored is a hope. Backups fail quietly: a key is changed and no longer matches, a table changes shape and breaks an old script, a disk fills halfway through an archive. The usual time to find out is the worst one.

So once a month the design restores everything for real, into a temporary space separate from the running system. It fetches the latest backups, decrypts them, restores all three stores from scratch, checks them and then removes the temporary space.

CheckWhat it verifiesWhat a pass proves
Decrypt and unpackThe archive downloads and opens with the current keyThe backup is readable and the key has not drifted
DatabaseIt loads without errors and its tables pass integrity checksThe queue, the items and the decisions are intact
PlainforgeThe repositories pass Git’s own consistency checkThe code and the manifests are whole
LazaretteThe image manifests and signatures resolveComponents can start and roll back without the internet

The result of each drill is meant to be published: when it ran, whether it passed, and the outcome of each of the four checks. A broken backup should show up as a visible warning, not as a surprise during an outage.

Found a mistake, or something that has gone out of date? Open an issue or write to [email protected]. This page is a text file you can read and correct: Source of this page.