Repository navigation
feat(home): make fleet proxies automatic services, retire proxy-supervisor (#2104) - #2107
Conversation
…visor (#2104) Convert the manual per-proxy units (clef, agy, codex, antigravity-ls, design-code, commandcode) to automatic user services with Install.WantedBy default.target, add new claude-code-proxy and muse-proxy units (previously supervisor-config only), and run the same checkout entry points the supervisor ran via systemd-run. Remove the proxy-supervisor service, timer, and config in the same change so no second owner can respawn fps-* units. Consumers Wants on main already name these units and are kept unchanged.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 26 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Stale-PR warden (merge-all pass 2026-10-29): this PR could not be merged — merge conflict with main. Resolution task: #2523 — this PR should be fixed and merged, or closed. |
…services-2104 # Conflicts: # home/common/default.nix
Closes the redesign tracked in #2104. Supersedes #2092 and #2094 (both left open, unmerged): instead of removing consumers'
Wantson the proxy units, this makes the named units real automatic services, so theWantsalready onmain(openclaw-gateway: commandcode/design-code/agy + mcpx; openchamber: clef/codex/antigravity-ls/design-code) are correct as-is — no consumer file changes needed.What changes (
home/common/default.nixonly)Install.WantedBy = [ "default.target" ],Restart = "always"/RestartSec = 3(agy previouslyRestart = "no"+ labelled DISABLED; it is a live route the gateway wants, so it is a real service now).systemd-runinvocations ran —/run/current-system/sw/bin/node "$HOME/code/bin/<proxy>.mjs", and bash on~/code/bin/commandcode-proxy-start.sh/muse-proxy-start.sh— with the same per-proxy env (canonical port var, host, PATH exports,ANTIGRAVITY_LS_BIN, commandcode MAX_TURNS pins). The checkout path also avoids the stale-store ExecStart failure of Home-layer eval uses a stale bin/ tree: commandcode-proxy unit 203/EXEC, managed opencode stuck on old rev #883.proxy-supervisoroneshot service, its 2-minute timer, and thexdg.configFilesupervisor config are removed, so nothing can respawnfps-*units.bin/proxy-supervise.mjsstays in the repo as history, uninvoked. Endpoint bookkeeping is retired with it:~/.local/state/<proxy>/endpoint.jsonfiles become stale records with no writer; service state is read from the units. The hash-keyed A/B roll behaviour is deliberately not reproduced — a switch that changes a unit's ExecStart restarts that proxy, per the normal flake service pattern.Cutover (post-merge, staged)
Stop
proxy-supervisor.timer→nixos-rebuild switch→ stop thefps-*transient units → start the new services → verify: all ports answer,/v1/modelson :18745/:18746/:18748, gateway + openchamber restarts, OpenCode serve (:13420) route smoke,systemctl --user --failedclean. Never leave supervisor + services owning the same port.Verification so far
nix evalof the built home config in the worktree (unit ExecStart / WantedBy / supervisor absence) — see PR comments/checks.Need help on this PR? Tag
@codesmith-botwith what you need.