Skip to content

mu 3.11.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 11:01
· 109 commits to main since this release

The skill learns model tiers, and a review panel's fixes land. A new
recipes/models.md says which model tier each role needs; a five-angle
review of the skill found 41 problems, and the confirmed ones are fixed.
mu agent close no longer deletes edits in a cp -a workspace, and
mu agent send to a dead pane says so.

Upgrade with npm i -g @mu-crew/mu@3.11.0, then /reload in running pi
sessions to pick up the skill. No schema change.

Changed

  • Skill: one agent per ready task, not per track. An umbrella puts
    every unit on one track, so "one agent per ready track" read literally
    ran a fan-out with one worker. The skill now says to spawn per ready
    task, and to chain tasks that share files with block so only one is
    ready at a time.
  • Skill: wording fixes. REFUTED is the verdict that sends a brief
    back for rewrite (there was no AMEND); SKILL.md drops text that
    restates --help and the outside-pi spawn steps, uses VOCABULARY
    terms, and models, worker and brief recipes get checkable Done whens.
  • Skill: model tiers. New skills/mu/recipes/models.md ranks models
    by position in a lab's lineup (frontier, strong, mid, cheap, local),
    says which roles need which tier, and keeps local models as a last
    resort. Checkers run at the tier of whoever wrote what they check, or
    higher, from another family. SKILL.md and ten recipes point at it in
    place of the pi_mini/pi_big keys. Skill-only: /reload in running
    pi sessions to pick it up.

Fixed

  • Skill: review recipes keep blockers honest. UNVERIFIED findings
    no longer contradict --if-ready (umbrella stays open);
    adversarial-review re-blocks downstream work on review_x_2 after a
    rejection; findings Group blocks the umbrella on the fix before
    superseding; adversarial-review uses finding and scopes itself to
    commit-producing units; rules-audit splits delegate/workstream mode;
    tasks-or-calls defines delegate call for scratch and a satisfiable
    Done when.
  • Skill: drift-audit and recovery. The drift-audit late-note query
    no longer hides an unrelated CLOSE: note that follows a close;
    recovery's Done when is per operation and reachable on the DRIFT path;
    its teardown/undo bullets keep only what --help lacks.
  • Skill: codemode driver. The scratch script writes each note to a
    file and pipes it to mu task note, so answer text (e.g. a MU_EOF
    line) never runs as shell; the stale cap-refusal warning points to
    orchestrator-loop § Concurrency.
  • Skill: remote-workers recipe safety. Poll only after the worker
    reports done (the poll closes the task); gate on a scratch checkout
    via a temporary ref, never main; --after-runs takes the send's
    runs unchanged; no blanket pkill -f x2ssh.
  • mu agent close no longer deletes cp -a workspaces silently. A
    none-backend workspace can't prove it is clean, so close refuses
    (WorkspacePreservedError) unless --discard-workspace. SKILL.md and
    waves.md now give the safe workspace free path and the refresh --from fix for unpushed merges.
  • model examples with :<level> failed through a gateway
    provider.
    pi reads the first segment as the provider, so
    anthropic/…:high died with "No API key". The models recipe, delegate
    guide and mu_delegate help now say to copy <provider>/<model> from
    pi --list-models; a test pins that mu_delegate accepts
    provider/family/id:level.
  • mu agent send to a dead pane no longer says "ctl: refused". When
    the control socket is silent and the pane is gone (the CLI exited,
    e.g. no API key), ctl verbs now raise AgentPaneDeadError with next
    steps to read the log, close the row and respawn, not link/kick/ssh
    advice. A live pane whose socket refuses still raises
    AgentCtlUnreachableError.