v0.4.4 — defer to service manager + clearer preflight label
Patch release. Fixes the auto-restart gap reported on macOS during v0.4.3 testing —
muxa initsucceeded butpkill -9 muxadleft muxad gone with no auto-restart, because our--start-daemonstep was racing launchd's spawn and producing an unsupervised orphan.
Fixed
--start-daemondefers to the service manager (#21).StartDaemonIfNeededis now suppressed whenmuxad-systemdormuxad-launchdis in the plan. Previously both fired during apply and ournohup muxad &won the socket-bind race against the manager's child —muxa statusworked, butlaunchctl printrevealedactive count = 0 / state = spawn scheduled, andKeepAlivenever kicked in. The shellrc-only path (where no real manager owns the lifecycle) keeps the action somuxa initleaves muxad responsive in the same session.- Pre-flight label —
· muxad already runningwas emitted even when muxad was not running (only the leading glyph flipped). Now state-dependent:✔ muxad respondingvs· muxad not running (will be started on apply).
Upgrading
git pull
cargo install --path crates/muxad --locked
cargo install --path crates/muxa-cli --lockedIf you ran v0.4.2 / v0.4.3 and your auto-restart never kicked in:
pkill -9 muxad # kill the orphan
muxa init --component muxad-launchd --yes # macOS — re-bootstraps launchd
# or `muxad-systemd` on LinuxVerify auto-restart:
pkill -9 muxad ; sleep 12 ; muxa status # should respond again
launchctl print "gui/$(id -u)/dev.open330.muxad" | grep -E "active count|state"
# active count = 1, state = runningPR: #21