Skip to content

Muster 0.11.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 21:20
· 463 commits to main since this release

New

  • A message for you raises a notification. An agent's post to @human, or an unaddressed post
    in a group whose policy rings you, raises a banner naming the group and who wrote; chatter
    between agents raises nothing. Choosing it, or cmd+shift+a when it is the most urgent thing
    asking, opens the group's transcript: a tab running muster msg log --group G --follow, or the
    one already running it. Going there counts as reading the group, and the banner comes down.
    Messages posted while Muster is closed wait, and notify when a window opens. [notifications] messages = false takes the banner away.
  • muster msg log --follow keeps printing a group's messages as they arrive, until
    interrupted, and with --json prints one line per message.
  • Groups can have a policy. muster msg group new G --policy F makes a group whose policy, a
    TOML file, says whom an unaddressed post wakes, whom each author may address, and who may change
    the group. group set replaces it but leaves a pause alone, group add and group remove
    change the members, groups --json shows each group's, and a refusal says what the policy
    allows. Every change is a line in the group's log. A group with no policy lets anyone do
    anything, as every group did before.
  • muster msg pause G holds a group's wakes without losing a message: its posts wake nobody
    but you until muster msg resume G, which wakes each member once for what it has unread.
  • A Claude Code session can fetch its own messages with hooks instead of having the wake typed
    into its pane. extras/claude-code/messaging-hooks.json reads any new message after each tool
    call and, when a turn ends, waits for the next wake that is due. Merge it into the session's
    settings, or pass it with --settings. A session whose turn ends without its Stop hook, at an
    API error or Esc, is rung for what it has unread, as any agent in a pane is.
  • A council skill, extras/skill/council/, for several agents and you working one question
    together over muster msg, with directed.toml and roundtable.toml to convene one with from
    your own shell.
  • Agents on your laptop and on a devenv share groups of messages. While a window is attached to
    both machines, muster msg join --group review on the devenv joins the review made on the
    laptop, a post on either wakes whoever it is for on the other, and the guard against posting
    unread holds across the two. Each machine names the other's agents with that machine's name, as
    critic@devenv. The devenv's name for the laptop is chosen when they first link and kept from
    then on: on a Mac, the computer's name from Sharing settings, which a new network does not
    change. A group's policy holds for posts from either machine, and group remove review critic@devenv removes a member on the other machine. muster docs msg has the rest.
  • A group kept on the other machine says when it cannot be sure. With no window attached to
    both, a post, join or leave for the other machine's group fails at once, naming the machine, and
    groups kept on each machine work as ever. A post, join or leave the other machine took but never
    answered exits 4, unanswered, and says it may have landed: muster msg log shows whether.
    After a daemon restarts, read and log answer for a group kept elsewhere, saying they may be
    behind, until the link returns, and log --follow waits for it. A post here for a member on a
    machine that cannot be reached is delivered when the link returns, and exits 0. While a machine
    linked to earlier is down, join with a bare name is refused, unchecked, rather than making a
    group here that hides the one there.
  • There is one of you, on the laptop. A devenv post meant for you notifies through the
    laptop's window, and an agent on the devenv that posts to @human reaches you in a group you
    have joined. Your own shell on the devenv is you as well: from it you can post in and change a
    group kept there that you are in, and anything else is refused, naming the laptop to run it
    on.

Behaves differently

  • The new verbs need the new daemon. Between updating Muster and the app's next start, the
    0.10.1 daemon is still running. muster msg refuses log --follow, wait --due, join --pull
    and the group verbs against it and says to update Muster, rather than sending requests that
    daemon would misread.
  • The guard never holds your own post. An agent is refused a post while it has unread
    messages in the group; you are not, since you read the transcript as it arrives.

Fixed

  • Panes made before Muster was quit and opened again drive the new window. Their muster
    said the window had quit; it now reaches whichever window holds the pane, on the laptop and on
    a devenv. On a devenv where you run two installs of Muster, a pane made by 0.10.1 may reach the
    other install's window.

Not there yet

  • A post --to someone on another machine, you included, needs a group you have both joined.
  • A group whose policy names who may join it cannot yet be joined from another machine.
  • Messages name you @human; a display name of your own is not built.

Apple Silicon, macOS 14 or newer. Notarized and stapled.

brew install amterp/tap/muster

sha256 604eedee5c0554ce85fb252bbdd0fb879acfdc4899e048e071e50bbc5af64514

Full Changelog: v0.10.1...v0.11.0