@loompad/cli 1.2.2 → 1.2.3

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cli/index.js +33 -4
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/core/crew.d.ts +16 -1
  5. package/dist/core/crew.js +26 -2
  6. package/dist/core/crew.js.map +1 -1
  7. package/dist/core/orchestra.d.ts +36 -0
  8. package/dist/core/orchestra.js +149 -82
  9. package/dist/core/orchestra.js.map +1 -1
  10. package/dist/core/team-hub.d.ts +2 -1
  11. package/dist/core/team-hub.js +1 -1
  12. package/dist/core/team-hub.js.map +1 -1
  13. package/dist/core/team-leases.d.ts +7 -0
  14. package/dist/core/team-leases.js +19 -0
  15. package/dist/core/team-leases.js.map +1 -1
  16. package/dist/daemon/client.d.ts +9 -1
  17. package/dist/daemon/client.js +2 -2
  18. package/dist/daemon/client.js.map +1 -1
  19. package/dist/daemon/routes/brain.js +2 -2
  20. package/dist/daemon/routes/brain.js.map +1 -1
  21. package/dist/daemon/routes/orchestra.js +1 -0
  22. package/dist/daemon/routes/orchestra.js.map +1 -1
  23. package/dist/daemon/runner.d.ts +11 -0
  24. package/dist/daemon/runner.js +96 -3
  25. package/dist/daemon/runner.js.map +1 -1
  26. package/dist/daemon/runtime/briefings.js +12 -1
  27. package/dist/daemon/runtime/briefings.js.map +1 -1
  28. package/dist/daemon/runtime.d.ts +9 -2
  29. package/dist/daemon/runtime.js +8 -4
  30. package/dist/daemon/runtime.js.map +1 -1
  31. package/dist/daemon/team-coordinator.d.ts +27 -3
  32. package/dist/daemon/team-coordinator.js +54 -2
  33. package/dist/daemon/team-coordinator.js.map +1 -1
  34. package/dist/daemon/team.d.ts +9 -1
  35. package/dist/daemon/team.js +44 -1
  36. package/dist/daemon/team.js.map +1 -1
  37. package/dist/hub/supabase-client.d.ts +4 -2
  38. package/dist/hub/supabase-client.js +21 -12
  39. package/dist/hub/supabase-client.js.map +1 -1
  40. package/dist/web/app.css +4 -0
  41. package/dist/web/app.js +96 -27
  42. package/dist/web/app.js.map +3 -3
  43. package/docs/release-notes/v1.2.3.md +29 -0
  44. package/docs/teams.md +28 -0
  45. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ ## Loom 1.2.3: two people, one goal, both machines
2
+
3
+ ### Team auto-orchestration
4
+ - **A goal splits across your teammates' machines on its own.** When a teammate's Loom is a shared runner, your orchestrator sees their agents as `team:codex`, `team:opencode` and so on. Self-contained tasks go to them; tightly coupled ones stay with you.
5
+ - **Nobody on their side clicks anything.** Their runner claims the task, runs it with **their** agent in a fresh clone (their subscription, their limits) and pushes the result back.
6
+ - **A teammate who goes offline doesn't stall you.** A task nobody takes within 10 minutes goes back to your orchestrator, which hands it to someone else.
7
+ - **Still one PR.** Your Loom merges each teammate's task into the goal's integration branch next to your own, checks what it touched against the task's lease, and opens one PR from your machine.
8
+ - Set it up once:
9
+ - in the repo: `{ "runners": { "shared": true } }` in `loom.team.json`;
10
+ - each teammate: `loom runner start --shared`;
11
+ - then `loom orchestrate "<goal>"` as usual, or `--solo` to keep a goal on your machine.
12
+
13
+ ### Simple mode, by default
14
+ - A project opens on five plain tabs: **Chat, Team, Agents, Board, Memory**. The composer is just a box, the agent and Plan.
15
+ - **Developer mode** (Settings → Preferences → Mode) brings back the rest: Orchestra, Crew, Insights, the terminal, console, browser, right-hand panel, and the model, permission and cost chips.
16
+ - No Developer vocabulary leaks into Simple mode: no "baton" labels, no permission badges.
17
+
18
+ ### Safer team hub
19
+ - When a teammate disconnects, the hub no longer broadcasts their repo names to signed-in users of other teams.
20
+ - A teammate can't replace another member's encryption key envelope; only the owner can.
21
+ - Old presence, expired leases and invites, and team activity older than 90 days are cleaned up hourly.
22
+
23
+ ### Fixes from the fourth field round
24
+ - `loom runner stop` really stops: a stopped runner no longer takes a job the hub pushes to it.
25
+ - `loom memory:repair` now shows up in `loom memory` and in what agents are briefed with; add `--dry-run` to preview it.
26
+ - A crew card no longer gets stuck asking about its own files.
27
+ - Crew checkouts live beside the project on an external disk, like orchestra's.
28
+ - `loom crew status` shows card ids, says how to accept a failed card, and has `--json`.
29
+ - The Verified card quotes agents' words without raw markdown.
package/docs/teams.md CHANGED
@@ -163,6 +163,34 @@ Each goal gets a fresh clone (a fresh container when Docker runs), and agents
163
163
  get a scrubbed environment with only their logins and the token. If a goal of
164
164
  yours needs a CI fix and you've been offline 15 minutes, your runner takes it.
165
165
 
166
+ ### Two people, one goal: team auto-orchestration
167
+
168
+ When teammates' Looms are shared runners, a goal you start doesn't stay on your
169
+ machine. Your orchestrator sees each teammate's agents as `team:<agent>` workers
170
+ (`team:codex`, `team:opencode`, …) and splits the goal across both machines:
171
+ self-contained tasks go to a teammate, tightly coupled ones stay with you. Nobody
172
+ on their side clicks anything.
173
+
174
+ ```bash
175
+ # once, in the repo: let teammates' runners take its work (reviewed like any policy change)
176
+ echo '{ "runners": { "shared": true } }' > loom.team.json
177
+ # each teammate, once: their daemon takes tasks with their own agents
178
+ loom runner start --shared
179
+ # you: start a goal as usual — teammates' agents are in it when their runners are online
180
+ loom orchestrate "Add rate limiting and its admin page"
181
+ loom orchestrate "…" --solo # keep this one on your machine
182
+ ```
183
+
184
+ How a task travels: Loom pushes the task's starting commit to
185
+ `refs/loom/run/<run>/<task>-base` on origin and posts a `task` job on the hub. The
186
+ first teammate's runner with that agent claims it, runs it in a fresh clone with
187
+ **their** agent (their subscription, their limits), commits, and pushes to
188
+ `refs/loom/run/<run>/<task>`. Your Loom fetches it, merges it into the goal's
189
+ integration branch next to your own tasks, and checks what it touched against the
190
+ task's lease. The goal still lands as **one PR** from your machine. A task no
191
+ teammate finishes within two hours fails back to your orchestrator, which can
192
+ reassign it.
193
+
166
194
  ## 7. Deploys and release notes
167
195
 
168
196
  `loom team deploys` lists deployments; results show in the team feed, and a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loompad/cli",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "Loom — local-first control plane for coding agents: one CLI, shared memory, baton handoffs and routes across Claude Code, OpenCode, and friends.",
5
5
  "type": "module",
6
6
  "license": "MIT",