@loompad/cli 1.2.0 → 1.2.2

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 (116) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +13 -7
  3. package/dist/adapters/antigravity-cli.js +7 -3
  4. package/dist/adapters/antigravity-cli.js.map +1 -1
  5. package/dist/adapters/opencode.d.ts +6 -0
  6. package/dist/adapters/opencode.js +27 -2
  7. package/dist/adapters/opencode.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +9 -1
  9. package/dist/cli/doctor.js +48 -5
  10. package/dist/cli/doctor.js.map +1 -1
  11. package/dist/cli/index.js +144 -20
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/ui.js +3 -2
  14. package/dist/cli/ui.js.map +1 -1
  15. package/dist/core/brain-index.d.ts +0 -18
  16. package/dist/core/brain-index.js +10 -2
  17. package/dist/core/brain-index.js.map +1 -1
  18. package/dist/core/council.d.ts +3 -3
  19. package/dist/core/council.js +6 -4
  20. package/dist/core/council.js.map +1 -1
  21. package/dist/core/crew-protocol.js +4 -1
  22. package/dist/core/crew-protocol.js.map +1 -1
  23. package/dist/core/crew.d.ts +23 -1
  24. package/dist/core/crew.js +80 -9
  25. package/dist/core/crew.js.map +1 -1
  26. package/dist/core/digest.d.ts +2 -0
  27. package/dist/core/digest.js +9 -0
  28. package/dist/core/digest.js.map +1 -1
  29. package/dist/core/loops.js +22 -2
  30. package/dist/core/loops.js.map +1 -1
  31. package/dist/core/orchestra.d.ts +16 -0
  32. package/dist/core/orchestra.js +45 -2
  33. package/dist/core/orchestra.js.map +1 -1
  34. package/dist/core/prices.d.ts +27 -0
  35. package/dist/core/prices.js +38 -0
  36. package/dist/core/prices.js.map +1 -1
  37. package/dist/core/proof.d.ts +11 -1
  38. package/dist/core/proof.js +56 -7
  39. package/dist/core/proof.js.map +1 -1
  40. package/dist/core/registry.d.ts +7 -0
  41. package/dist/core/registry.js.map +1 -1
  42. package/dist/core/replay.js +3 -1
  43. package/dist/core/replay.js.map +1 -1
  44. package/dist/core/routes.js +14 -0
  45. package/dist/core/routes.js.map +1 -1
  46. package/dist/core/setup.d.ts +14 -0
  47. package/dist/core/setup.js +22 -6
  48. package/dist/core/setup.js.map +1 -1
  49. package/dist/core/shield.js +7 -3
  50. package/dist/core/shield.js.map +1 -1
  51. package/dist/core/shift.d.ts +2 -0
  52. package/dist/core/shift.js +14 -2
  53. package/dist/core/shift.js.map +1 -1
  54. package/dist/daemon/auth.d.ts +7 -1
  55. package/dist/daemon/auth.js +19 -3
  56. package/dist/daemon/auth.js.map +1 -1
  57. package/dist/daemon/client.d.ts +29 -1
  58. package/dist/daemon/client.js +37 -1
  59. package/dist/daemon/client.js.map +1 -1
  60. package/dist/daemon/council.d.ts +8 -0
  61. package/dist/daemon/council.js +121 -36
  62. package/dist/daemon/council.js.map +1 -1
  63. package/dist/daemon/proof.js +11 -7
  64. package/dist/daemon/proof.js.map +1 -1
  65. package/dist/daemon/review.d.ts +10 -0
  66. package/dist/daemon/review.js +41 -3
  67. package/dist/daemon/review.js.map +1 -1
  68. package/dist/daemon/routes/brain.js +4 -0
  69. package/dist/daemon/routes/brain.js.map +1 -1
  70. package/dist/daemon/routes/council.js +9 -0
  71. package/dist/daemon/routes/council.js.map +1 -1
  72. package/dist/daemon/routes/crews.js +4 -0
  73. package/dist/daemon/routes/crews.js.map +1 -1
  74. package/dist/daemon/routes/messages.js +8 -2
  75. package/dist/daemon/routes/messages.js.map +1 -1
  76. package/dist/daemon/routes/pairing.js +6 -1
  77. package/dist/daemon/routes/pairing.js.map +1 -1
  78. package/dist/daemon/routes/setup.js +9 -1
  79. package/dist/daemon/routes/setup.js.map +1 -1
  80. package/dist/daemon/routes/team.js +2 -0
  81. package/dist/daemon/routes/team.js.map +1 -1
  82. package/dist/daemon/runtime/accounting.js +7 -3
  83. package/dist/daemon/runtime/accounting.js.map +1 -1
  84. package/dist/daemon/runtime/queue.d.ts +9 -0
  85. package/dist/daemon/runtime/queue.js +27 -1
  86. package/dist/daemon/runtime/queue.js.map +1 -1
  87. package/dist/daemon/runtime/relay.d.ts +2 -0
  88. package/dist/daemon/runtime/relay.js +7 -0
  89. package/dist/daemon/runtime/relay.js.map +1 -1
  90. package/dist/daemon/runtime/turns.d.ts +4 -0
  91. package/dist/daemon/runtime/turns.js +29 -0
  92. package/dist/daemon/runtime/turns.js.map +1 -1
  93. package/dist/daemon/runtime-support.d.ts +5 -1
  94. package/dist/daemon/runtime-support.js +9 -3
  95. package/dist/daemon/runtime-support.js.map +1 -1
  96. package/dist/daemon/runtime.d.ts +46 -2
  97. package/dist/daemon/runtime.js +158 -6
  98. package/dist/daemon/runtime.js.map +1 -1
  99. package/dist/daemon/server.js +4 -0
  100. package/dist/daemon/server.js.map +1 -1
  101. package/dist/daemon/shift.d.ts +6 -0
  102. package/dist/daemon/shift.js +11 -2
  103. package/dist/daemon/shift.js.map +1 -1
  104. package/dist/daemon/team.d.ts +6 -0
  105. package/dist/daemon/team.js +15 -0
  106. package/dist/daemon/team.js.map +1 -1
  107. package/dist/providers/agent.js +3 -0
  108. package/dist/providers/agent.js.map +1 -1
  109. package/dist/types.d.ts +12 -0
  110. package/dist/types.js.map +1 -1
  111. package/dist/web/app.css +72 -0
  112. package/dist/web/app.js +9834 -9635
  113. package/dist/web/app.js.map +4 -4
  114. package/docs/release-notes/v1.2.1.md +40 -0
  115. package/docs/release-notes/v1.2.2.md +39 -0
  116. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ ## Loom 1.2.1: what two real field tests found
2
+
3
+ Loom 1.2 was put through two tests. The first was a full `loom council` on a real project: 23 tests became 52, and only the planner touched a file. The second ran six projects at once (a council, an orchestra, a route, a night shift, a crew and reviews), and the daemon never fell over. Together they found 25 things to fix.
4
+
5
+ ### Proof tells "couldn't run" from "failed"
6
+ - **Which command:** Proof now re-runs the test command the agent itself ran and passed. Before, it guessed `python -m pytest`, got *command not found*, and reported "the tests fail" for a change that passed 52/52.
7
+ - **Just the test part:** it keeps only the test step of that command. `pytest | tail -3` always reports tail's success, so re-running it whole would pass failing tests.
8
+ - **Python projects:** a guessed pytest command uses the project's `.venv`, or `python3`.
9
+ - **If it can't start:** a test command that can't run at all is **unverified**, and Proof says how to set `proof.testCommand`.
10
+ - **On the council card:** Prove shows ✓ only when the tests really passed, ✗ when they didn't, **?** when unverified.
11
+
12
+ ### The council keeps its word
13
+ - The planner's decisions are stored exactly as written. Underscores were being stripped, so `tests/test_reach.py` reached project memory as "testreach.py".
14
+ - The fix round gets **every** finding, low ones too. One dropped "low" was a test the planner had promised to write.
15
+ - A reviewer that answers with nothing counts as failed, not done.
16
+ - A reviewer that takes longer than `review.timeoutMin` (15 minutes by default) is stopped and left out, so one slow free model doesn't hold everyone up.
17
+ - Plans go to `.loom/plans/`, not a new folder in your repo.
18
+
19
+ ### Sign-ins and cost
20
+ - Grok shows as **signed out** when its session has expired. Before, a leftover token made it look ready. `loom doctor` also reports a sign-in failure a real turn hit, even after a restart.
21
+ - `loom send` warns before re-reading a large session whose cache has expired, with an estimated cost. A one-line question once cost $4.75 that way. `--fresh` starts that chat's session over.
22
+
23
+ ### Six projects at once
24
+ - **A council that waits for its own answer.** If a reviewer ran out of quota, its review was handed to the planner as a turn of its own, and the council read that turn as the planner's fix reply. Now a council waits for the reply to its own prompt, and a reviewer out of quota is simply left out.
25
+ - **Crews read every way of saying "changes requested"**, so a card goes back to its builder instead of the goal failing. New crews seat your writers as builders and your reviewers as reviewers, and `--builders` / `--reviewer` let you choose. `loom crew budget` works before the first goal.
26
+ - **Night shifts stay in order.** A loop-watch nudge goes in before the next task starts, and the report says what really stopped a task: the shield, the loop watch, Stop or a quota.
27
+ - **Fewer false alarms.**
28
+ - Five different edits to one file aren't "going in circles".
29
+ - A `curl -o /dev/null` later on the line isn't a delete outside the project.
30
+ - A file Antigravity only mentions isn't an edit.
31
+ - **No silent hangs.** An OpenCode prompt that never starts fails after 3 minutes, not an hour, and `loom review --json` always prints JSON.
32
+ - **The baton comes home.** A route that ends on a reviewer hands the baton back to the agent that did the work.
33
+ - **You can see what's working.** `loom status` and the phone's project board count an orchestra, crew, council, shift or review as working.
34
+ - **The digest:**
35
+ - In the app, "While you were away" shows the open project's digest and closes on Escape.
36
+ - `loom digest` shows dates across midnight and collapses repeated lines.
37
+ - **Disk:**
38
+ - Orchestra worktrees for a project on an external drive now live on that drive.
39
+ - Finished runs' worktrees are removed after a week.
40
+ - `loom doctor` points out folders left by projects you've removed, and `loom orchestra:clean` removes them.
@@ -0,0 +1,39 @@
1
+ ## Loom 1.2.2: Teams front and centre, and Loom that survives a restart
2
+
3
+ ### Teams get their own tab, and you sign in with GitHub
4
+ - **A Team tab**, right after Chat. Teams used to sit at the bottom of Agents. Signed out, the tab shows what Loom Teams does and one **Sign in with GitHub** button. Once you're on a team, it shows:
5
+ - members, with their GitHub pictures;
6
+ - an **Invite** button;
7
+ - who's working on what, and which files they're touching;
8
+ - the team's activity and costs.
9
+ - **Loom Desktop asks you to sign in with GitHub** when it opens. "Continue without an account" is right there, since Loom works alone; the account is for Teams.
10
+ - **Invite works.** It said "admin only" in Desktop, because the window signed in like a phone. Desktop now holds the owner's session.
11
+ - **Accounts are GitHub-only**, enforced by the hosted database. An email sign-up could otherwise claim someone else's GitHub name.
12
+ - **Agents shows this project only.** Other projects are on the home screen.
13
+
14
+ ### Survives a restart
15
+ - **Councils resume.** Use `loom council:resume`, or Resume on the card. A council picks up at the stage it stopped at, keeping its plan, reviews and decisions.
16
+ - **Night shifts stay in order after a restart.** A queued task is sent once and never on top of a running turn. The report waits until the work is really done.
17
+ - **`loom up --restart` leaves Loom Desktop's daemon alone**, and windows refresh themselves when the daemon restarts.
18
+
19
+ ### Honest costs and budgets
20
+ - **The cold-session warning prices what you'll really pay.** It learns from that agent's own past turns: it said $0.34 where the real cost was $6.03, and now it says about $4.80. In a terminal it asks before sending.
21
+ - **A turn that would cross an agent's daily budget doesn't start.**
22
+
23
+ ### Crews and reviews
24
+ - **Crews:**
25
+ - Fixing a merge conflict no longer uses up a card's review rounds.
26
+ - A failed card has **Accept it anyway**: its work is merged as it is, and the cards waiting on it run.
27
+ - **Reviews:**
28
+ - A review waits for a busy reviewer instead of failing.
29
+ - A reviewer that has never finished one is named up front.
30
+ - A reviewer that runs out of time is stopped, process and all.
31
+
32
+ ### Smaller things
33
+ - A shift or council starting on uncommitted edits tells you, and points to Rewind.
34
+ - Files an agent changed through the shell are counted as edits.
35
+ - `loom memory:repair` fixes decisions recorded before 1.2.1 with their underscores stripped.
36
+ - `loom clients --prune` clears out paired devices that never came back.
37
+ - `loom projects --json` and `loom status --json` exist, and `loom watch --json` is clean JSON.
38
+ - `loom doctor` and `loom agents` no longer call a signed-out agent ready.
39
+ - The window's "N working" matches `loom status`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loompad/cli",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
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",