The gateway can run its inference server, SSH tunnels, native relay, and desktop login setup under one user LaunchAgent. Provider CLIs and chat executors remain separate child processes. The GitHub Actions runner and other applications are outside this service.
The same ownership rule includes the Claude Desktop integration. Its separate
configuration and loopback listeners do not justify separate startup jobs.
Legacy com.edihasaj.claude-* adapters, private inference and SSH forwards must
be counted in a gateway audit, even though their labels do not say gateway.
Node executables and SSH processes remain children of the one signed app-owned
root, not additional LaunchAgents. See Claude Desktop
for the read-only preview and next-start migration. Never disable a generic
node Login Items row without identifying its registrations: it can contain
the live Claude bridge or unrelated applications.
Claude consolidation has a stricter admission rule than a socket-idle restart:
the pinned private runtime has no atomic request-drain protocol. A normal staged
receipt adopts only when every legacy Claude job is unloaded, including SSH
tunnels. It does not substitute an idle connection snapshot for that guarantee.
An operator who has approved a maintenance interruption can stage exactly one
receipt with gateway service claude-desktop --on-restart --force; that receipt
may retire only its still-matching owned jobs and can interrupt Claude work.
Once any Claude component is configured, automatic primary-service restarts and
upgrade activation remain pending even when no socket is currently busy. The
pinned runtimes have no atomic admission gate, so a new request could otherwise
arrive after an idle check. An explicit operator restart remains available for an
authorized maintenance window: gateway service restart --force (see below); a
plain gateway service restart refuses and names that reason. Adopted Claude SSH forwards retain their
processes across wake; their existing keepalives and confirmed-exit retries
recover connections instead of a forced wake restart or broad remote cleanup.
Restaging without --force removes that authorization. This never forces busy
Codex work to restart.
The TCP-only Claude activity probe tolerates one specific unrelated diagnostic:
lsof cannot stat a CoreDevice devicefs mount under
/Users/<account>/Library/Developer/CoreDevice/DeviceFS and falls back to the
mount table's device number. It requires that complete three-line diagnostic;
partial, changed, or additional diagnostics still refuse the probe. Darwin
lsof reads mount metadata
separately from its
libproc socket inspection,
so this filesystem warning does not hide established TCP connections. Socket
output, timeouts, unexpected exits, and unknown or reused process identities
remain refusals. This exception does not enable automatic restarts with Claude
components configured.
Choose a task
| Task | Guide |
|---|---|
| Background-item ownership and consolidation | Service ownership |
| Shared chat executors and native-home ownership | Shared execution |
| Updates, retained components and release skew | Release adoption |
Live supervisor controller updates
Read live supervisor controller updates in the focused guide.
The name macOS shows
Read the name macos shows in the focused guide.
Shared chat executors
Read shared chat executors in the focused guide.
Moving to a new release
Read moving to a new release in the focused guide.
The host waits while an app is attached
Read the host waits while an app is attached in the focused guide.
Desktop adapters wait for the app's next launch
Read desktop adapters wait for the app's next launch in the focused guide.
Release skew: a newer adapter beside an older host
Read release skew: a newer adapter beside an older host in the focused guide.
Per-chat rollout: newer adapters run on the installed release's SDK
Read per-chat rollout: newer adapters run on the installed release's sdk in the focused guide.
An app update while the service runs
Read an app update while the service runs in the focused guide.
Masked execution failures
Read masked execution failures in the focused guide.
Shared native session ownership
Read shared native session ownership in the focused guide.
Automatic model selection maintenance
Read automatic model selection maintenance in the focused guide.