@mu-crew/mu 1.6.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -58,7 +58,7 @@ mu/
58
58
  ├── src/ # all source (root files: SDK + shared infra; one
59
59
  │ # level of subdirs OK for cohesive clusters — see
60
60
  │ # `src/cli/`, `src/agents/`, `src/tasks/`, `src/mux/`)
61
- │ ├── db.ts # SQLite schema + openDb (single CREATE-IF-NOT-EXISTS block; v10)
61
+ │ ├── db.ts # SQLite schema + openDb (single CREATE-IF-NOT-EXISTS block; v11)
62
62
  │ │ # also owns SYNCED_ENTITIES / PORTABLE_TABLES / MACHINE_LOCAL_TABLES
63
63
  │ ├── mux.ts # multiplexer backend hub (re-exports src/mux/*)
64
64
  │ ├── mux/ # cohesive cluster: one file per multiplexer
@@ -448,11 +448,12 @@ proves itself.
448
448
 
449
449
  ### "Update the schema"
450
450
 
451
- 1. Current schema version is **v10** (`CURRENT_SCHEMA_VERSION` in
452
- `src/db.ts`): 10 tables + 3 views. The schema is the
451
+ 1. Current schema version is **v11** (`CURRENT_SCHEMA_VERSION` in
452
+ `src/db.ts`): 11 tables + 3 views. The schema is the
453
453
  `applySchema(db)` block — idempotent CREATE-IF-NOT-EXISTS plus
454
- targeted `DROP TABLE IF EXISTS`. `openDb` REFUSES any pre-v10 DB
455
- with `SchemaTooOldError` (exit 4); there is no in-process
454
+ targeted `DROP TABLE IF EXISTS`. `openDb` REFUSES any pre-v11 DB
455
+ with `SchemaTooOldError` and any newer one with `SchemaTooNewError`
456
+ (both exit 4); there is no in-process
456
457
  migration ladder.
457
458
  2. Bump `CURRENT_SCHEMA_VERSION` in `src/db.ts` and mirror the new
458
459
  shape in `CURRENT_SCHEMA`. Prefer script-free bumps: additive
package/README.md CHANGED
@@ -38,6 +38,9 @@ For the full copy-paste flow, see [Quick start](#quick-start).
38
38
 
39
39
  ## What mu is
40
40
 
41
+ mu excels at organising large pieces of work and keeping your agents
42
+ on track.
43
+
41
44
  - **Parallelism that doesn't trip over itself.** Per-agent VCS
42
45
  workspaces plus a task DAG with deterministic parallel-track
43
46
  detection keep agents off each other's toes.
@@ -77,6 +80,17 @@ For the full copy-paste flow, see [Quick start](#quick-start).
77
80
 
78
81
  ## When mu earns its overhead
79
82
 
83
+ mu pays off when the work is bigger than one agent's context: many
84
+ steps, dependencies between them, several agents, or a job that runs
85
+ for days. The DAG holds the plan, so no single agent has to. Each
86
+ agent claims one ready task, works in its own workspace, writes notes
87
+ on the task as it goes (findings, decisions, dead ends), and closes
88
+ it with evidence. Every claim, note and close is appended to the
89
+ audit log. If an agent drifts, stalls, or loses its pane, the plan,
90
+ the notes, and the history of who did what are still there. You, or
91
+ the next agent, pick up where it stopped instead of explaining
92
+ everything again.
93
+
80
94
  **Use mu for** — multi-phase investigations; tasks worth gating with
81
95
  review; parallel audit or implementation/reviewer splits with isolated
82
96
  workspaces; anything where "what was decided and why" needs to outlive
@@ -94,9 +108,10 @@ adds ceremony.
94
108
  ## Install
95
109
 
96
110
  ```bash
97
- # 1. The CLI.
98
- npm install -g @mu-crew/mu
111
+ # 1. The CLI, and murmur for agent state on tmux (see below).
112
+ npm install -g @mu-crew/mu @mu-crew/murmur
99
113
  mu --version
114
+ murmur init && murmur link pi
100
115
 
101
116
  # 2. The skill (teaches your coding agent how to drive mu).
102
117
  npx skills add mu-crew/mu # auto-detects pi / claude-code / codex / etc.
@@ -106,18 +121,21 @@ npx skills add mu-crew/mu # auto-detects pi / claude-code / codex / etc
106
121
  **Requirements:**
107
122
  - Node 22.12–26 (see `.nvmrc`), matching `engines` in `package.json`.
108
123
  - A terminal multiplexer: tmux ≥ 3.0, or [herdr](https://github.com/herdrdev/herdr)
109
- (`mu doctor` reports which one is active). Spawn, send, read and
110
- status detection work on both; the remaining herdr gaps are narrow
111
- and listed in
124
+ (`mu doctor` reports which one is active). Spawn, send, and read work
125
+ on both. Agent state comes from herdr on herdr and from murmur on tmux;
126
+ the remaining herdr gaps are listed in
112
127
  [docs/USAGE_GUIDE.md § 20](docs/USAGE_GUIDE.md#20-multiplexer-backends-tmux-and-herdr).
113
128
  - pi (the agent CLI mu orchestrates)
114
129
  - For `--workspace`: jj, sl, or git on PATH (or `--backend none`)
115
130
 
116
- **Optional — [murmur](https://github.com/mu-crew/murmur), for
117
- more than one machine.** Every coding agent on every machine in one
118
- attention-sorted list. mu deliberately does not track hosts or watch
119
- other machines; murmur does both, as a separate binary that owns the
120
- ssh egress.
131
+ **Agent state on tmux needs [murmur](https://github.com/mu-crew/murmur),
132
+ even on one machine.** mu owns the work; murmur reports what each agent is
133
+ doing. mu does not read panes itself, so without murmur every agent's state
134
+ is `unknown`, and everything built on state goes quiet: `mu agent wait`
135
+ never fires, `mu task wait --stuck-after` / `--on-stall exit` never detects
136
+ a worker waiting on you, and spawn skips its readiness check. Tasks, claims,
137
+ `mu task wait` on status, workspaces, spawn and send still work. murmur also
138
+ provides one attention-sorted list across machines and owns the ssh egress.
121
139
 
122
140
  ```bash
123
141
  # on every node that runs agents
@@ -130,13 +148,9 @@ murmur peer add dev # an ssh target; identity is discovered
130
148
  murmur peer list # which hosts are reachable, and when last seen
131
149
  ```
132
150
 
133
- Nothing to configure on mu's side: mu already exports
134
- `MU_MANAGED_AGENT` / `MU_AGENT_NAME` / `MU_WORKSTREAM`
135
- into every pane it spawns, so murmur marks those agents
136
- `orchestrated` — "crew" — and hides them unless they are blocked or
137
- crashed, since a supervisor consumes anything else. Useful for
138
- picking a host before spawning a remote worker, and for spotting a
139
- blocked agent on a machine you are not looking at.
151
+ mu exports `MU_MANAGED_AGENT`, `MU_AGENT_NAME`, and `MU_WORKSTREAM`
152
+ into every pane it spawns. murmur uses them to identify crew agents.
153
+ See murmur's [stable contract](https://github.com/mu-crew/murmur/blob/main/ARCHITECTURE.md#contract).
140
154
 
141
155
  **Update:** `npm install -g @mu-crew/mu@latest` for the CLI;
142
156
  `npx skills update mu` for the skill.