@love-moon/conductor-cli 0.3.0 → 0.3.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.
- package/CHANGELOG.md +133 -0
- package/package.json +7 -6
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# @love-moon/conductor-cli
|
|
2
|
+
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4e8d4e5: Include `CHANGELOG.md` in published npm tarballs.
|
|
8
|
+
|
|
9
|
+
The `files` array in each package's `package.json` previously only
|
|
10
|
+
listed the build output (`bin`/`src` for the CLI, `dist` for the
|
|
11
|
+
modules). npm's `files` whitelist replaces the default include set,
|
|
12
|
+
and CHANGELOG is not one of the auto-included files (only
|
|
13
|
+
`package.json`, `README*`, `LICENSE*`, and `main` are unconditional).
|
|
14
|
+
|
|
15
|
+
As a result, every release through 0.3.0 published tarballs with no
|
|
16
|
+
CHANGELOG, so a consumer running `npm install` or unpacking the brew
|
|
17
|
+
artifact had no way to see what changed in the version they just
|
|
18
|
+
installed. The repo `cli/CHANGELOG.md` and the GitHub Release body
|
|
19
|
+
remain the canonical source until 0.3.1 ships with this fix.
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [4e8d4e5]
|
|
22
|
+
- @love-moon/conductor-sdk@0.3.1
|
|
23
|
+
- @love-moon/ai-sdk@0.3.1
|
|
24
|
+
- @love-moon/ai-manager@0.3.1
|
|
25
|
+
|
|
26
|
+
## 0.3.0
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- be3b3cb: Project list now merges same-name git projects that share a remote URL across daemons into a single card.
|
|
31
|
+
|
|
32
|
+
- `ProjectContext.snapshot()` (SDK) now captures the origin remote URL via `git config --get remote.origin.url` and exposes a `normalizeGitRemoteUrl` helper for callers that need their own equality comparison.
|
|
33
|
+
- The daemon's `validate_project_path` response carries a new `git_remote_url` field. Old daemons that don't send it stay forward-compatible — the web server treats missing values as "unmergeable" so projects from those daemons render standalone until they're refreshed.
|
|
34
|
+
- New web API surface:
|
|
35
|
+
- `PATCH /api/projects { mergeOptOut: true }` opts a project out of auto-grouping (manual split for accidental name collisions).
|
|
36
|
+
- `PATCH /api/projects { refresh: true }` re-runs the daemon validation handshake and back-fills `git_remote_url` for projects created before this feature.
|
|
37
|
+
- `GET /api/issues?project_ids=a,b` fetches issues from multiple projects in one call; responses include `daemonHost` + `projectName` for cross-daemon attribution.
|
|
38
|
+
- Schema: two new optional columns on `projects`: `git_remote_url` (nullable string) and `merge_opt_out` (boolean, default false). Run `pnpm -C web db:push` before upgrading.
|
|
39
|
+
|
|
40
|
+
- 23ac015: Add `fire_tmux_mode` for the daemon. When enabled (via the `fire_tmux_mode: true`
|
|
41
|
+
key in `~/.conductor/config.yaml` or the `CONDUCTOR_FIRE_TMUX_MODE=true`
|
|
42
|
+
environment variable), each Fire process is launched inside a detached
|
|
43
|
+
`tmux new-session -d` so that it runs under the tmux server with no
|
|
44
|
+
parent/child relationship to the daemon. Restarting or terminating the daemon
|
|
45
|
+
no longer affects running Fire processes; explicit `stop_task` requests use
|
|
46
|
+
`tmux kill-session` to terminate the corresponding session.
|
|
47
|
+
|
|
48
|
+
If `fire_tmux_mode` is enabled but `tmux` is not installed on PATH, the daemon
|
|
49
|
+
logs a warning at startup and silently falls back to direct spawn instead of
|
|
50
|
+
failing every `create_task` with ENOENT.
|
|
51
|
+
|
|
52
|
+
If a tmux session fails to launch (e.g. duplicate session name, tmux server
|
|
53
|
+
crashed), the daemon now reports a terminal status to the backend instead of
|
|
54
|
+
leaving the task stuck on RUNNING.
|
|
55
|
+
|
|
56
|
+
Session names embed a per-spawn uniqueness suffix
|
|
57
|
+
(`conductor-fire-<taskId>-<base36-time><rand>`) so a re-spawn of the same task
|
|
58
|
+
id while a prior session is still alive does not collide. The daemon also runs
|
|
59
|
+
a periodic best-effort liveness reaper (default every 30s; override via
|
|
60
|
+
`config.TMUX_LIVENESS_POLL_MS`) that walks tmux-mode entries in
|
|
61
|
+
`activeTaskProcesses` and removes any whose session no longer exists, so the
|
|
62
|
+
in-memory map does not accumulate stale entries when Fire exits naturally
|
|
63
|
+
inside its session.
|
|
64
|
+
|
|
65
|
+
### Other Changes (retroactively documented)
|
|
66
|
+
|
|
67
|
+
The following changes shipped in `@love-moon/conductor-cli@0.3.0` but were
|
|
68
|
+
merged without a `changeset` entry and so didn't make it into the
|
|
69
|
+
auto-generated section above. See
|
|
70
|
+
`claw/lessons/arch_release-packages-pnpm-changesets-20260512.md` for the
|
|
71
|
+
process gap and the rule that every PR touching `cli/**` or `modules/**`
|
|
72
|
+
must run `npm run changeset`.
|
|
73
|
+
|
|
74
|
+
**New CLI commands**
|
|
75
|
+
|
|
76
|
+
- `cli`: `conductor project|issue|task` entity commands (RFC 0025). Adds
|
|
77
|
+
scriptable CLI access to project/issue/task CRUD against the connected
|
|
78
|
+
daemon. (`2e10756`)
|
|
79
|
+
- `cli`: `conductor project` accepts `--daemon-host` to disambiguate
|
|
80
|
+
same-named projects across multiple daemons. (`08eefee`)
|
|
81
|
+
- `cli`: `conductor project list` now prints a daemon column. (`552731b`)
|
|
82
|
+
|
|
83
|
+
**Daemon — Fire tmux mode (companion to `fire_tmux_mode`)**
|
|
84
|
+
|
|
85
|
+
- Daemon now `tmux send-keys`-friendly: env vars are propagated via
|
|
86
|
+
`tmux -e` flags so the Fire process inherits the spawn environment.
|
|
87
|
+
(`3cd3022`)
|
|
88
|
+
- Live Fire output is now visible via `tmux attach` thanks to a `tee`
|
|
89
|
+
inside the session shell. (`f07fbc6`)
|
|
90
|
+
- `stop_task` and `cleanup_task_worktree` now reap orphan tmux sessions.
|
|
91
|
+
(`1f7ef28`)
|
|
92
|
+
- A killed tmux-mode task reports `KILLED` directly from the daemon
|
|
93
|
+
instead of waiting on Fire to flip the status. (`59c6472`)
|
|
94
|
+
- `restart_task` clears stale tmux entries before re-spawning and refuses
|
|
95
|
+
with a clearer error if the session can't be acquired. (`c659663`)
|
|
96
|
+
|
|
97
|
+
**Daemon stability**
|
|
98
|
+
|
|
99
|
+
- Fix: reconcile / stale-recovery no longer kills `init` successor tasks
|
|
100
|
+
that haven't received their initial websocket message yet. (`d9258ba`)
|
|
101
|
+
- Fix: late websocket send after disconnect no longer crashes daemon
|
|
102
|
+
restart. (`a3532cc`)
|
|
103
|
+
- Fix: stale fire task attach is now guarded against double-binding.
|
|
104
|
+
(`dc73be9`)
|
|
105
|
+
|
|
106
|
+
**Worktree**
|
|
107
|
+
|
|
108
|
+
- Worktree folders are now named by branch (slugified) rather than by
|
|
109
|
+
the task id, making them human-meaningful inside repos with many
|
|
110
|
+
concurrent tasks. (`ed124b5`)
|
|
111
|
+
- The worktree scanner now skips symlinks that are git-tracked, so user
|
|
112
|
+
symlinks inside a worktree don't get treated as candidates. (`5281952`)
|
|
113
|
+
|
|
114
|
+
**Quota / accounts UI**
|
|
115
|
+
|
|
116
|
+
- Codex quota snapshots are now restored from the daemon cache on
|
|
117
|
+
refresh, so the daemon page doesn't blank out while a fresh fetch is
|
|
118
|
+
in flight. (`130bd93`)
|
|
119
|
+
|
|
120
|
+
**Internal refactor (no consumer API change)**
|
|
121
|
+
|
|
122
|
+
- `modules/ai-sdk`: resume logic has been split into per-provider
|
|
123
|
+
modules under `src/resume/<provider>.js`. The public exports
|
|
124
|
+
(`createAiSession`, `BUILT_IN_BACKENDS`, etc.) are unchanged.
|
|
125
|
+
Source-level only; the published `@love-moon/ai-sdk` version pinned
|
|
126
|
+
in `cli@0.3.0`'s manifest is still `0.2.42`, so consumer behavior is
|
|
127
|
+
identical to before — the refactor will reach npm with the next
|
|
128
|
+
ai-sdk release that includes a `changeset`. (`846f05a`)
|
|
129
|
+
|
|
130
|
+
### Patch Changes
|
|
131
|
+
|
|
132
|
+
- Updated dependencies [be3b3cb]
|
|
133
|
+
- @love-moon/conductor-sdk@0.3.0
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@love-moon/conductor-cli",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"gitCommitId": "
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"gitCommitId": "03b4582",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/lovemoon-ai/conductor.git"
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"bin",
|
|
15
|
-
"src"
|
|
15
|
+
"src",
|
|
16
|
+
"CHANGELOG.md"
|
|
16
17
|
],
|
|
17
18
|
"publishConfig": {
|
|
18
19
|
"access": "public",
|
|
@@ -22,9 +23,9 @@
|
|
|
22
23
|
"test": "node --test test/*.test.js"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"@love-moon/ai-manager": "0.
|
|
26
|
-
"@love-moon/ai-sdk": "0.
|
|
27
|
-
"@love-moon/conductor-sdk": "0.3.
|
|
26
|
+
"@love-moon/ai-manager": "0.3.1",
|
|
27
|
+
"@love-moon/ai-sdk": "0.3.1",
|
|
28
|
+
"@love-moon/conductor-sdk": "0.3.1",
|
|
28
29
|
"@github/copilot-sdk": "^0.2.2",
|
|
29
30
|
"chrome-launcher": "^1.2.1",
|
|
30
31
|
"chrome-remote-interface": "^0.33.0",
|