@lmctl-ai/lmctl 0.1.86 → 0.1.87
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 +29 -0
- package/README.md +8 -7
- package/dist/cli/index.js +626 -666
- package/dist/cli/schema.sql +36 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable public-preview changes for `@lmctl-ai/lmctl` are recorded here.
|
|
4
4
|
|
|
5
|
+
## 0.1.87 — 2026-07-07
|
|
6
|
+
|
|
7
|
+
- **`lmctl wait`/`lmctl exec` are now the synchronous wake model, on a new
|
|
8
|
+
`tracked_invocation` substrate.** Every backgrounded lmctl invocation records
|
|
9
|
+
a start row and a finish row; `lmctl wait` blocks on those rows and returns the
|
|
10
|
+
instant the first one in scope finishes (reporting which completed and which
|
|
11
|
+
are still running). `lmctl exec -- <command>` runs any shell command as a
|
|
12
|
+
tracked invocation, and a backgrounded `lmctl chat … --from "<teamfile>:Lead"`
|
|
13
|
+
is tracked the same way — so `cmd & lmctl wait` is the wake for chats and
|
|
14
|
+
arbitrary commands alike. This replaces the fragile "reserve one blocking job
|
|
15
|
+
as the wake" (N−1/1) pattern; all N launches go to the background and `wait` is
|
|
16
|
+
the single return-point.
|
|
17
|
+
- **Removed `lmctl chat --detach`, `lmctl jobs`, `lmctl nudge`, and turn-exit
|
|
18
|
+
auto-delivery.** The old detached-worker / `delegation_job` background model is
|
|
19
|
+
gone, along with its per-provider (codex/gemini) poll special-casing — every
|
|
20
|
+
provider now uses the same background-then-`wait` loop. The legacy
|
|
21
|
+
`delegation_job` / `delegation_event` tables are **kept dormant** for existing
|
|
22
|
+
DB compatibility (no destructive migration); only the active code paths were
|
|
23
|
+
removed.
|
|
24
|
+
- **`wait` is robust against the failure modes of a fire-and-forget loop.** A
|
|
25
|
+
phantom `running` row whose process died without writing a finish is reclaimed
|
|
26
|
+
as `error` (dead/stale holder detection) instead of hanging `wait` forever; an
|
|
27
|
+
appearance-grace poll covers the `cmd & lmctl wait` insert-lag race; and
|
|
28
|
+
`lmctl exec --json` prints its invocation id so `lmctl wait --id <id>` gives a
|
|
29
|
+
zero-race handshake. Scopes: default (caller, via `LMCTL_SELF_SESSIONID`),
|
|
30
|
+
`--from`, `<teamfile>`, `--all`, `--id`; exit `0` completed/idle, `1` timeout
|
|
31
|
+
(8h backstop), `2` usage. A single `idle` return means "nothing running right
|
|
32
|
+
now", not "done" — loop `wait`.
|
|
33
|
+
|
|
5
34
|
## 0.1.86 — 2026-07-07
|
|
6
35
|
|
|
7
36
|
- **New `lmctl wait` — the wake primitive for the meta-lead orchestration loop.**
|
package/README.md
CHANGED
|
@@ -49,16 +49,17 @@ lmctl chat ./my-project/my-project.lmctl Lead "Inspect the repo and propose next
|
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Start with `lmctl run <url>` for published workflows. For a custom AI-Lead team,
|
|
52
|
-
use the plan -> lint -> seed -> chat flow.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
is the golden path for
|
|
52
|
+
use the plan -> lint -> seed -> chat flow. For long turns, background a tracked
|
|
53
|
+
invocation (`lmctl exec -- <command> &` or a backgrounded `lmctl chat`) and let
|
|
54
|
+
`lmctl wait` block until it finishes — that return is the wake. Daemon, web, API,
|
|
55
|
+
and MCP surfaces are secondary integration paths; the CLI is the golden path for
|
|
56
|
+
onboarding.
|
|
56
57
|
Lintable teamfile templates for research, writing, and review teams ship in the
|
|
57
58
|
[examples gallery](https://lmctl.com/examples/).
|
|
58
59
|
|
|
59
|
-
`lmctl` top-level subcommands are: `api`, `chat`, `code`, `serve`, `intake`,
|
|
60
|
-
`mcp`, `monitor`, `device`, `team`, `terminal`, `tail`, `health`, `
|
|
61
|
-
`
|
|
60
|
+
`lmctl` top-level subcommands are: `api`, `chat`, `loop`, `code`, `serve`, `intake`,
|
|
61
|
+
`mcp`, `monitor`, `device`, `team`, `terminal`, `tail`, `health`, `wait`,
|
|
62
|
+
`exec`, `recover`, `ls`, `lint`, `seed`, `hire`, `refresh`, `clone`, `plan`, `workflow`,
|
|
62
63
|
`run`, `project`, `workspace`, `diagnose`, `diagnose-prompt`, `status`, and
|
|
63
64
|
`db`. Run `lmctl <command> --help` for details on each, and see the
|
|
64
65
|
[documentation](https://lmctl.com/lmctl) to define your first team.
|