Skip to content

v0.4.4 — defer to service manager + clearer preflight label

Choose a tag to compare

@github-actions github-actions released this 02 May 07:51
· 757 commits to main since this release
2923007

Patch release. Fixes the auto-restart gap reported on macOS during v0.4.3 testing — muxa init succeeded but pkill -9 muxad left muxad gone with no auto-restart, because our --start-daemon step was racing launchd's spawn and producing an unsupervised orphan.

Fixed

  • --start-daemon defers to the service manager (#21). StartDaemonIfNeeded is now suppressed when muxad-systemd or muxad-launchd is in the plan. Previously both fired during apply and our nohup muxad & won the socket-bind race against the manager's child — muxa status worked, but launchctl print revealed active count = 0 / state = spawn scheduled, and KeepAlive never kicked in. The shellrc-only path (where no real manager owns the lifecycle) keeps the action so muxa init leaves muxad responsive in the same session.
  • Pre-flight label — · muxad already running was emitted even when muxad was not running (only the leading glyph flipped). Now state-dependent: ✔ muxad responding vs · muxad not running (will be started on apply).

Upgrading

git pull
cargo install --path crates/muxad --locked
cargo install --path crates/muxa-cli --locked

If 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 Linux

Verify 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 = running

PR: #21