@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 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`, `recv`, `loop`, `code`, `serve`, `intake`,
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 recv` drains the calling Lead's mailbox consume-on-read, inferred from `LMCTL_SELF_SESSIONID`.
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