muster release v5.24.0

Added

  • muster self-update --check reports the running and the latest release without installing anything and exits with status 125 when a newer one exists (devctl’s convention for version check), for scripts. Every command a person runs starts with a one-line hint on stderr while a newer release is out – a hint, never a gate: the GitHub round trip is capped at two seconds, its answer is cached for an hour under the user cache directory (~/.cache/muster/latest-release.json on Linux, ~/Library/Caches/muster/ on macOS) and a failed attempt is remembered for ten minutes, so a machine without internet is not held up. MUSTER_NO_UPDATE_CHECK=1 silences the hint; serve, standalone, agent, test, version, self-update, help and completion never print it, and dev builds never check. The same internal/update package as agentlab’s, so the two CLIs behave alike.

Changed

  • muster version and muster --version print one line, muster version v5.23.5 (commit 361cdef, built 2026-09-15T19:38:51Z), with the details the binary knows; the commit: and built: lines and their unknown placeholder are gone, and muster version still adds the aggregator’s version when one is running. A go build from a checkout reports Go’s own stamp – the tag at a tag, +dirty over local edits, a pseudo-version between tags (v5.23.6-0.20260915195350-977012d023ba: after v5.23.5, before v5.23.6) – which self-update and the hint compare as what it is; a binary without any version says dev, and self-update refuses it with a pointer to go install github.com/giantswarm/muster/v5@latest. The self-update messages follow agentlab’s (“Nothing newer than v5.23.5 on GitHub (latest release v5.23.5).”; a newer release is announced with its URL instead of its full release notes), and its logic moved from cmd to internal/update.