Skip to content

A hub is a declared host service; a working checkout's server stays a client's child

A hub is a declared host service; a working checkout's server stays a client's child

majordomus://adr/adr-0199proposed 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.

199. A hub is a declared host service; a working checkout's server stays a client's child

Context

ADR 0003 (accepted) refuses a daemon or system service; README says Majordomus is 'not a daemon'. Yet the lundra hub runs as a systemd user unit with --idle 0 (docs/MESH.md), ADR 0161 and I2722 restart hubs under their service manager, and the owner asked for a host-level resident (10-12) and an OS-supervised watchdog (10-17). The 10-07 audit warned that the tool had already grown daemon-like parts its own EXTRACTION_REPORT refused.

Decision

A machine the mesh declaration names as a hub may run one user-scoped service per repository (systemd user unit or launchd agent written by one typed capability) that ignores the idle exit; every other server remains a client's child under ADR 0003. A host-level resident, if ever built, is the same executable in a declared role with a minimal dependency closure and user-only IPC, never a second server, registry, discovery or update system.

Alternatives rejected

  • A separate general-purpose host server
  • A daemon per repository on every machine
  • Root or system-wide services
  • Keeping the hub's unit hand-made outside the model

Consequences

ADR 0003 is narrowed, not reversed; README's 'not a daemon' gains its exception; I3186, I3193 and the OS half of supervision wait for this decision.

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:c240#2
  • chatgpt-majordomus:c118#3
  • chatgpt-majordomus:c193#0

Where this comes from

canonical file
.ai/repo/adrs/0199-a-hub-is-a-declared-host-service-a-working-checkout-s-server-sta.md
identity
adr-0199
also served as
MCP resource majordomus://adr/adr-0199 · majordomus entity show adr/adr-0199 · GET /api/v1/entity?uri=majordomus://adr/adr-0199
in the Cockpit
/cockpit/objects/adr/adr-0199

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.