@loompad/cli 1.2.0 → 1.2.1

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 (89) hide show
  1. package/CHANGELOG.md +36 -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 +4 -0
  6. package/dist/adapters/opencode.js +18 -0
  7. package/dist/adapters/opencode.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +8 -0
  9. package/dist/cli/doctor.js +41 -3
  10. package/dist/cli/doctor.js.map +1 -1
  11. package/dist/cli/index.js +65 -8
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/ui.js +1 -1
  14. package/dist/cli/ui.js.map +1 -1
  15. package/dist/core/council.d.ts +3 -3
  16. package/dist/core/council.js +6 -4
  17. package/dist/core/council.js.map +1 -1
  18. package/dist/core/crew-protocol.js +4 -1
  19. package/dist/core/crew-protocol.js.map +1 -1
  20. package/dist/core/crew.d.ts +13 -1
  21. package/dist/core/crew.js +40 -6
  22. package/dist/core/crew.js.map +1 -1
  23. package/dist/core/digest.d.ts +2 -0
  24. package/dist/core/digest.js +9 -0
  25. package/dist/core/digest.js.map +1 -1
  26. package/dist/core/loops.js +22 -2
  27. package/dist/core/loops.js.map +1 -1
  28. package/dist/core/orchestra.d.ts +16 -0
  29. package/dist/core/orchestra.js +45 -2
  30. package/dist/core/orchestra.js.map +1 -1
  31. package/dist/core/prices.d.ts +11 -0
  32. package/dist/core/prices.js +10 -0
  33. package/dist/core/prices.js.map +1 -1
  34. package/dist/core/proof.d.ts +11 -1
  35. package/dist/core/proof.js +56 -7
  36. package/dist/core/proof.js.map +1 -1
  37. package/dist/core/replay.js +1 -1
  38. package/dist/core/replay.js.map +1 -1
  39. package/dist/core/routes.js +14 -0
  40. package/dist/core/routes.js.map +1 -1
  41. package/dist/core/setup.d.ts +14 -0
  42. package/dist/core/setup.js +22 -6
  43. package/dist/core/setup.js.map +1 -1
  44. package/dist/core/shield.js +7 -3
  45. package/dist/core/shield.js.map +1 -1
  46. package/dist/core/shift.d.ts +2 -0
  47. package/dist/core/shift.js +14 -2
  48. package/dist/core/shift.js.map +1 -1
  49. package/dist/daemon/client.d.ts +14 -1
  50. package/dist/daemon/client.js +6 -1
  51. package/dist/daemon/client.js.map +1 -1
  52. package/dist/daemon/council.js +10 -4
  53. package/dist/daemon/council.js.map +1 -1
  54. package/dist/daemon/proof.js +11 -7
  55. package/dist/daemon/proof.js.map +1 -1
  56. package/dist/daemon/review.d.ts +6 -0
  57. package/dist/daemon/review.js +19 -1
  58. package/dist/daemon/review.js.map +1 -1
  59. package/dist/daemon/routes/crews.js +2 -0
  60. package/dist/daemon/routes/crews.js.map +1 -1
  61. package/dist/daemon/routes/messages.js +8 -2
  62. package/dist/daemon/routes/messages.js.map +1 -1
  63. package/dist/daemon/routes/setup.js +9 -1
  64. package/dist/daemon/routes/setup.js.map +1 -1
  65. package/dist/daemon/runtime/queue.d.ts +7 -0
  66. package/dist/daemon/runtime/queue.js +13 -1
  67. package/dist/daemon/runtime/queue.js.map +1 -1
  68. package/dist/daemon/runtime/relay.d.ts +2 -0
  69. package/dist/daemon/runtime/relay.js +7 -0
  70. package/dist/daemon/runtime/relay.js.map +1 -1
  71. package/dist/daemon/runtime/turns.d.ts +2 -0
  72. package/dist/daemon/runtime/turns.js +1 -0
  73. package/dist/daemon/runtime/turns.js.map +1 -1
  74. package/dist/daemon/runtime-support.js +1 -1
  75. package/dist/daemon/runtime-support.js.map +1 -1
  76. package/dist/daemon/runtime.d.ts +25 -2
  77. package/dist/daemon/runtime.js +67 -3
  78. package/dist/daemon/runtime.js.map +1 -1
  79. package/dist/daemon/shift.js +1 -1
  80. package/dist/daemon/shift.js.map +1 -1
  81. package/dist/providers/agent.js +3 -0
  82. package/dist/providers/agent.js.map +1 -1
  83. package/dist/types.d.ts +12 -0
  84. package/dist/types.js.map +1 -1
  85. package/dist/web/app.css +7 -0
  86. package/dist/web/app.js +30 -7
  87. package/dist/web/app.js.map +2 -2
  88. package/docs/release-notes/v1.2.1.md +40 -0
  89. 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loompad/cli",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
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",