Skip to content

Supervision repairs only what is idempotent, owned and verified, and never restarts blindly

Supervision repairs only what is idempotent, owned and verified, and never restarts blindly

majordomus://adr/adr-0200proposed mesh-runtimechatgpt-project

it references

referenced by

Nothing in the layer names it. Backlinks are derived, so an empty list is an answer rather than an omission.

200. Supervision repairs only what is idempotent, owned and verified, and never restarts blindly

Context

Owner 2026-10-17 asked for a watchdog that keeps the mesh up, drains tasks and kills zombies. serve ensure exits idle servers by design, claims expire on heartbeat, some processes hold leases, and a zombie is reaped only by its parent.

Decision

Supervision is observe, classify, decide, recover, verify inside the existing runtime. Automatic repair is limited to idempotent safe actions; resuming executions or requeueing work is verified first; live sessions, name-based kills, taking valid leases, deleting worktrees, bypassing trust and retrying uncertain merges are never automatic. Each repair has a reason, one owner, an idempotent action, a verification and a circuit breaker.

Alternatives rejected

  • A new autonomous daemon that restarts everything
  • Restart=always for every process
  • Forcing nodes to cooperate

Consequences

I3182 then I3183; extends ADR 0039's liveness rules from advice to a read capability.

Sources

Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner has not accepted it; it is proposed for the owner's decision.

  • chatgpt-majordomus:c288#16

Where this comes from

canonical file
.ai/repo/adrs/0200-supervision-repairs-only-what-is-idempotent-owned-and-verified-a.md
identity
adr-0200
also served as
MCP resource majordomus://adr/adr-0200 · majordomus entity show adr/adr-0200 · GET /api/v1/entity?uri=majordomus://adr/adr-0200
in the Cockpit
/cockpit/objects/adr/adr-0200

This page is generated from the file above by scripts/generate-site-data; editing the page changes nothing, editing the file changes every surface. The relations above are edges of docs/generated/graph.json, which the executable writes from the same index.

Searches the titles and descriptions of every page this site publishes.