@lmctl-ai/lmctl 0.1.97 → 0.1.99
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/CHANGELOG.md +32 -0
- package/README.md +3 -2
- package/dist/cli/index.js +652 -574
- package/dist/cli/schema.sql +10 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
|
|
4
4
|
|
|
5
|
+
## 0.1.99 — 2026-07-10
|
|
6
|
+
|
|
7
|
+
- **`lmctl wait` now reports your delivered messages, not just background jobs.** In self-centered
|
|
8
|
+
push mode you `chat` (queue), `push` (deliver), then `wait` to collect. `wait` reports the
|
|
9
|
+
responses of messages *you* sent that have been delivered since your last wait, sender-wide across
|
|
10
|
+
all targets, each reported exactly once (a per-message `waited` claim). If nothing is newly
|
|
11
|
+
delivered but something is still queued or in-flight, it blocks until a delivery lands; if nothing
|
|
12
|
+
is pending at all, it returns idle. `lmctl exec`'s existing tracked-job wake is unchanged — one
|
|
13
|
+
`wait` now surfaces both sources.
|
|
14
|
+
- **Messages have a three-state lifecycle:** `queued` → `in-flight` → `delivered` (with the response
|
|
15
|
+
as the receipt). in-flight is a real persisted state so a separate `wait`/`check` can see a delivery
|
|
16
|
+
in progress; a delivery that dies mid-turn is reclaimed back to `queued` (at-least-once), and `wait`
|
|
17
|
+
runs that reclaim so it never blocks forever on a dead delivery.
|
|
18
|
+
- Migration v48 adds the in-flight (`delivering_at` + holder) and `waited` markers to `agent_mailbox`,
|
|
19
|
+
guarded so fresh and migrated databases match.
|
|
20
|
+
|
|
21
|
+
## 0.1.98 — 2026-07-10
|
|
22
|
+
|
|
23
|
+
- **`lmctl push` — flush your outbound queue.** In daemon-less push mode the sender drives delivery:
|
|
24
|
+
`lmctl push` sequentially delivers all of this node's queued mail to receivers that are currently
|
|
25
|
+
idle (one lane per turn, reusing the same delivery path as `chat`), and skips busy receivers so
|
|
26
|
+
their mail stays queued. It is single-instance per node — a second concurrent `push` is rejected
|
|
27
|
+
as a conflict and delivers nothing.
|
|
28
|
+
- **`lmctl check` — read-only status.** Reports this node's background jobs and its outbound queued
|
|
29
|
+
mail, grouped by `(sender, receiver)` lane with pending counts and each receiver's busy/idle. It
|
|
30
|
+
never delivers, marks, or mutates anything (including creating no tracked invocation).
|
|
31
|
+
- **Removed `lmctl recv` and `lmctl loop`.** In push mode the receiver never pulls (delivery is
|
|
32
|
+
pushed), and `loop` is replaced by launching `lmctl chat`/`lmctl push` in the background and
|
|
33
|
+
waking on `lmctl wait`. Both now error as unknown commands. `wait` is unchanged.
|
|
34
|
+
- The idle-target delivery used by `chat` is now a shared `deliverLane` helper that `push` reuses,
|
|
35
|
+
so the two can't drift.
|
|
36
|
+
|
|
5
37
|
## 0.1.97 — 2026-07-10
|
|
6
38
|
|
|
7
39
|
- **`lmctl chat` now carries the mailbox queue; `lmctl send` is removed.** One verb. Chatting a
|
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ onboarding.
|
|
|
57
57
|
Lintable teamfile templates for research, writing, and review teams ship in the
|
|
58
58
|
[examples gallery](https://lmctl.com/examples/).
|
|
59
59
|
|
|
60
|
-
`lmctl` top-level subcommands are: `api`, `chat`, `
|
|
60
|
+
`lmctl` top-level subcommands are: `api`, `chat`, `check`, `push`, `code`, `serve`, `intake`,
|
|
61
61
|
`mcp`, `monitor`, `device`, `team`, `terminal`, `tail`, `health`, `wait`,
|
|
62
62
|
`exec`, `recover`, `ls`, `lint`, `seed`, `hire`, `refresh`, `clone`, `plan`, `workflow`,
|
|
63
63
|
`run`, `project`, `workspace`, `diagnose`, `diagnose-prompt`, `status`, and
|
|
@@ -65,7 +65,8 @@ Lintable teamfile templates for research, writing, and review teams ship in the
|
|
|
65
65
|
[documentation](https://lmctl.com/lmctl) to define your first team.
|
|
66
66
|
|
|
67
67
|
- `lmctl chat <teamfile> <alias> "message"` drives or messages a member; if a member-origin target is busy, chat queues the message for that lane.
|
|
68
|
-
- `lmctl
|
|
68
|
+
- `lmctl check` shows the calling member's background jobs and outbound queued lanes without mutating anything.
|
|
69
|
+
- `lmctl push` flushes the calling member's outbound queued lanes to idle receivers; busy receivers stay queued.
|
|
69
70
|
|
|
70
71
|
## Model selection
|
|
71
72
|
|