@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.
Files changed (2) hide show
  1. package/CHANGELOG.md +133 -0
  2. 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.0",
4
- "gitCommitId": "b9f33cd",
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.2.42",
26
- "@love-moon/ai-sdk": "0.2.42",
27
- "@love-moon/conductor-sdk": "0.3.0",
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",