5b088f119c9c1644accf5f82af98e3ceac534136
Reading service-manager-0.11.0/src/launchd.rs invalidated three claims: - install() always writes Disabled:true alongside KeepAlive, so a freshly installed agent does NOT start at login. install must be followed by start(), which strips the key and reloads. - The crate's stop() runs `launchctl stop`, which a KeepAlive service survives. start/stop are now implemented as launchctl load/unload on the plist path; the crate handles install/uninstall/status only. - status() returns Stopped(None) unconditionally on macOS, so the reason string the spec planned to surface does not exist. Also corrects the RestartPolicy mapping (OnFailure emits a KeepAlive dictionary, not a boolean) and records the launchctl-print risk to verify. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EGntTHCW3sEPy1VBRopNNp
xy — HTTP MCP server supervisor
Daemon + CLI that launches and supervises HTTP-based MCP servers.
Build
cargo build --release
Run
target/release/xy daemon # foreground
Drop a server definition into $XDG_CONFIG_HOME/xy/servers/<name>.kdl
(see examples/insikt.kdl) and xy reload.
Commands:
xy list
xy status <name>
xy start <name|--all>
xy stop <name|--all>
xy restart <name|--all>
xy reload
xy logs <name> [--tail N] [--follow]
Exit codes: 0 success, 1 operational error, 2 daemon unreachable, 3 config invalid.
Languages
Rust
100%