@clipboard-health/groundcrew 4.52.1 → 4.52.3
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/dist/lib/cmuxAdapter.js +6 -6
- package/package.json +4 -4
package/dist/lib/cmuxAdapter.js
CHANGED
|
@@ -61,7 +61,7 @@ export const cmuxAdapter = {
|
|
|
61
61
|
// cmux v2 `workspace.close` rejects titles, so forwarding `name`
|
|
62
62
|
// would always fail. The list failure has already been logged by
|
|
63
63
|
// `listCmuxRaw`; bail rather than guarantee a downstream error.
|
|
64
|
-
debug(`cmux close-workspace skipped for ${name}: list
|
|
64
|
+
debug(`cmux close-workspace skipped for ${name}: workspace list failed, no usable id`);
|
|
65
65
|
return { kind: "unavailable" };
|
|
66
66
|
}
|
|
67
67
|
const matches = raw.filter((ws) => cmuxTaskId(ws) === name);
|
|
@@ -108,7 +108,7 @@ function cmuxTaskId(ws) {
|
|
|
108
108
|
return ws.title;
|
|
109
109
|
}
|
|
110
110
|
function parseCmuxList(output) {
|
|
111
|
-
// oxlint-disable-next-line typescript/no-unsafe-type-assertion -- cmux --json list
|
|
111
|
+
// oxlint-disable-next-line typescript/no-unsafe-type-assertion -- cmux --json workspace list always emits this shape
|
|
112
112
|
const parsed = JSON.parse(output);
|
|
113
113
|
const items = [];
|
|
114
114
|
/* v8 ignore next @preserve -- cmux always emits a workspaces field; default keeps the loop safe */
|
|
@@ -118,7 +118,7 @@ function parseCmuxList(output) {
|
|
|
118
118
|
}
|
|
119
119
|
const id = pickCmuxId(ws);
|
|
120
120
|
if (id === undefined) {
|
|
121
|
-
debug(`cmux list
|
|
121
|
+
debug(`cmux workspace list returned workspace "${ws.title}" without a usable id or ref; skipping`);
|
|
122
122
|
continue;
|
|
123
123
|
}
|
|
124
124
|
items.push({ title: ws.title, id, description: ws.description ?? null });
|
|
@@ -143,13 +143,13 @@ function pickCmuxId(ws) {
|
|
|
143
143
|
}
|
|
144
144
|
async function listCmuxRaw(signal) {
|
|
145
145
|
try {
|
|
146
|
-
return parseCmuxList(await runWorkspaceCommand("cmux", ["--json", "list
|
|
146
|
+
return parseCmuxList(await runWorkspaceCommand("cmux", ["--json", "workspace", "list"], signal));
|
|
147
147
|
}
|
|
148
148
|
catch (error) {
|
|
149
149
|
if (isSignalAborted(signal)) {
|
|
150
150
|
throw error;
|
|
151
151
|
}
|
|
152
|
-
debug(`cmux list
|
|
152
|
+
debug(`cmux workspace list failed: ${errorMessage(error)}`);
|
|
153
153
|
return undefined;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
@@ -277,7 +277,7 @@ async function closeCmuxWorkspace(workspaceId, signal) {
|
|
|
277
277
|
* The id rides along in the failed command's captured output, so recover it and
|
|
278
278
|
* close that exact workspace by id — a failed launch must not strand an orphan
|
|
279
279
|
* tagged with the task's `groundcrew:<taskId>` marker. Closing by the recovered
|
|
280
|
-
* id needs no
|
|
280
|
+
* id needs no workspace list, so it survives a concurrent list failure that
|
|
281
281
|
* would defeat re-enumeration. Re-enumeration close is unsafe here anyway; we
|
|
282
282
|
* hold the precise id cmux returned, so there is no same-named-sibling risk.
|
|
283
283
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipboard-health/groundcrew",
|
|
3
|
-
"version": "4.52.
|
|
3
|
+
"version": "4.52.3",
|
|
4
4
|
"description": "Linear-driven orchestrator that launches AI coding agents in git worktrees, with workspace lifecycle and usage tracking.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -87,14 +87,14 @@
|
|
|
87
87
|
"@vitest/coverage-v8": "5.0.0",
|
|
88
88
|
"dependency-cruiser": "18.3.1",
|
|
89
89
|
"husky": "9.1.7",
|
|
90
|
-
"jscpd": "5.2.
|
|
90
|
+
"jscpd": "5.2.1",
|
|
91
91
|
"knip": "6.35.1",
|
|
92
92
|
"lint-staged": "17.5.1",
|
|
93
|
-
"markdownlint-cli2": "0.23.
|
|
93
|
+
"markdownlint-cli2": "0.23.3",
|
|
94
94
|
"nx": "23.1.0",
|
|
95
95
|
"oxfmt": "0.63.0",
|
|
96
96
|
"oxlint": "1.78.0",
|
|
97
|
-
"oxlint-tsgolint": "7.0.
|
|
97
|
+
"oxlint-tsgolint": "7.0.2002",
|
|
98
98
|
"syncpack": "15.3.3",
|
|
99
99
|
"vite": "8.3.0",
|
|
100
100
|
"vitest": "5.0.0"
|