@lmctl-ai/lmctl 0.1.88 → 0.1.90

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,30 @@
2
2
 
3
3
  All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
4
4
 
5
+ ## 0.1.90 — 2026-07-08
6
+
7
+ - **`lmctl wait` now self-heals phantom running rows globally.** Each wait starts
8
+ with a guarded reclaim sweep across all `tracked_invocation` rows, so killed
9
+ same-host holders and stale remote/null holders are marked `error` instead of
10
+ accumulating forever and wedging later waits.
11
+ - **Long chat turns now heartbeat their tracked invocation.** `lmctl chat`
12
+ refreshes `last_heartbeat_at` while the provider turn is running, matching
13
+ `lmctl exec` and preventing live long turns from looking stale.
14
+ - **Appearance-grace diagnostics tightened.** `LMCTL_WAIT_APPEARANCE_GRACE_MS` is
15
+ clamped to a sane range (default 3s, max 30s), and debug logs now include a
16
+ `wait_start` breadcrumb with scope, high-water id, timing, and DB path.
17
+ - **`lmctl send` is liveness-aware.** Sending to an up same-host Lead enqueues
18
+ mailbox mail; sending to a down/no-carrier Lead falls back to synchronous
19
+ chat delivery so the message is not stranded; cross-host carriers enqueue.
20
+
21
+ ## 0.1.89 — 2026-07-08
22
+
23
+ - **`agent_mailbox`: async Lead-to-Lead messaging.** New `lmctl send` drops a
24
+ message into another Lead's mailbox, and `lmctl recv` drains the receiver's
25
+ mailbox consume-on-read. `lmctl wait` now also wakes on inbound mail by
26
+ peeking the mailbox read-only, so a receiver can be woken without consuming
27
+ the message. `lmctl chat` is unchanged; `send`/`recv` and `chat` coexist.
28
+
5
29
  ## 0.1.88 — 2026-07-08
6
30
 
7
31
  - **Removed `lmctl wait --all`.** System-wide scope is a foot-gun for a paced
package/README.md CHANGED
@@ -57,13 +57,16 @@ 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`, `loop`, `code`, `serve`, `intake`,
60
+ `lmctl` top-level subcommands are: `api`, `chat`, `send`, `recv`, `loop`, `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
64
64
  `db`. Run `lmctl <command> --help` for details on each, and see the
65
65
  [documentation](https://lmctl.com/lmctl) to define your first team.
66
66
 
67
+ - `lmctl send <teamfile> <alias> "message"` messages a Lead; enqueues if it is up, falls back to chat if down.
68
+ - `lmctl recv [--from <teamfile:alias>]` drains the calling Lead's mailbox consume-on-read.
69
+
67
70
  ## Model selection
68
71
 
69
72
  Teamfiles can pin provider models with `_MEMBER_ ... model=<id>`. For