Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0123

ADR-0123: Every host service is registered in the runtime view with its purpose and architecture component, or it is retired

field value
Status Proposed
Date 2026-10-22
Register factory (docs/adr, 4-digit ids)
Source docs/adr/0123-every-host-service-is-registered-in-the-runtime-view-or-retired.md — recorded on branch fix/ship-sanctioned-gate-pytest at 8c7031c9a, not yet on master
Wiki register entry ADR-0123 (wiki status: Proposed)

← ADR-0122 · ADR-0124 →

The record

Status: Proposed · Date: 2026-10-22

Context

On 2026-10-22, ten systemd user units ran (or were scheduled) out of /opt/orchestrata: six long-running services (miniircd, orchestrata-bot, orchestrata-kernel, orchestrata-gateway, orchestrata-ast-live-sync, orchestrata-conversation-consumer) and four timer-driven oneshots (orchgraph-backup, orchestrata-kg-retention, orchestrata-history-mining, orchestrata-infra-drift). Nobody could say what turning them off would break.

Decision (proposed)

  1. The wiki page projects/orchestrata-ultimate/runtime-services.md is the register of host services. A unit may be installed on a host only if it has a row there naming its purpose, its architecture component (or "infrastructure layer"), what uses it, and its default state (enabled, or on demand).
  2. Enablement and running state belong to the operator. A deploy installs unit files and restarts only units that were already running. It never enables or starts a unit. Each unit's default state is set by its disposition below.
  3. A unit without a purpose and an architecture home is retired: its unit file is removed from deploy/systemd/, and so is anything whose only job is to start it.
  4. Dispositions, one ruling per unit (recommendations; Mohamed rules each):
Unit Evidence (runtime view section) Recommended disposition
orchgraph-backup the only backup of orchkg; ran 03:00 today, success; produced nothing 2026-07-26 to 2026-10-05 (8b2038b92) keep, enabled
orchestrata-kg-retention weekly; the audit exhaust was ~72% of orchkg; 4.2 s CPU per run keep, enabled
orchestrata-history-mining quarterly ruling-drift report; the 2026-10-05 run left no report and no journal lines keep, enabled; separately, find why that run left nothing
orchestrata-conversation-consumer the only standing drainer of the SPEC-021 turn queue; ~0% CPU, ~102 MB; 51 turns drained today keep, enabled at boot
orchestrata-infra-drift ADR-0077 item 4; hourly tofu plan; it failed a prod promote today on drift unrelated to the deploy keep the check; redesign the trigger in its own ADR (a deploy-time pre-flight, or a notifier). The timer stays disabled until then.
orchestrata-kernel the agent runtime (CXP); the test suite uses the test fleet's kernel, not this one keep the unit, on demand (disabled by default; started when the agent runtime is used)
orchestrata-gateway the WS control plane; the MCP server and VizInt are its clients; the MCP path also needs GATEWAY_TOKEN, which is not set today keep the unit, on demand, started with the kernel. Fixing GATEWAY_TOKEN is a separate task.
orchestrata-ast-live-sync file save -> orchkg in under 5 s; the PostToolUse hook already syncs Claude's own src/ edits keep the unit, on demand; its deploy lane is left to ADR-0118 §5
miniircd the IRC server for #agents; the session-start hook starts it, and a listener retry-loops when it is down; kimi-session and agent-mail are the agents' channels ("both off IRC") retire with the IRC bus (the unit, the session-start IRC hook, the listener), unless IRC is still in use
orchestrata-bot keeps #orchestrata populated; no consumer found; no recorded rationale retire

Alternatives rejected

Consequences

Provenance

Rulings cited

None.

Specs cited