codiedev 0.9.46 → 0.9.47
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/codie.js +26 -2
- package/package.json +1 -1
package/dist/codie.js
CHANGED
|
@@ -170,10 +170,28 @@ function installBrandWordmarkUnsafe(runtime) {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
async function runNonInteractive(runtime, runtimeArgs, env) {
|
|
173
|
+
const detached = process.platform !== "win32";
|
|
173
174
|
const child = (0, child_process_1.spawn)(runtime, runtimeArgs, {
|
|
174
175
|
stdio: ["inherit", "pipe", "pipe"],
|
|
175
176
|
env,
|
|
177
|
+
detached,
|
|
176
178
|
});
|
|
179
|
+
const signalChild = (signal) => {
|
|
180
|
+
if (detached && child.pid) {
|
|
181
|
+
try {
|
|
182
|
+
process.kill(-child.pid, signal);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// Fall back to the direct child if its process group already exited.
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
child.kill(signal);
|
|
190
|
+
};
|
|
191
|
+
const forwardInterrupt = () => signalChild("SIGINT");
|
|
192
|
+
const forwardTermination = () => signalChild("SIGTERM");
|
|
193
|
+
process.once("SIGINT", forwardInterrupt);
|
|
194
|
+
process.once("SIGTERM", forwardTermination);
|
|
177
195
|
return await new Promise((resolve, reject) => {
|
|
178
196
|
let blockReason;
|
|
179
197
|
const errorPrefixes = [Buffer.from("\x1b[91m\x1b[1mError:"), Buffer.from("Error: {")];
|
|
@@ -237,13 +255,19 @@ async function runNonInteractive(runtime, runtimeArgs, env) {
|
|
|
237
255
|
const reason = (0, codieLauncher_1.extractCodieSecurityBlock)(text);
|
|
238
256
|
if (reason) {
|
|
239
257
|
blockReason = reason;
|
|
240
|
-
|
|
258
|
+
signalChild("SIGTERM");
|
|
241
259
|
return;
|
|
242
260
|
}
|
|
243
261
|
stderrGate.push(Buffer.from(chunk), Boolean(blockReason));
|
|
244
262
|
});
|
|
245
|
-
child.once("error",
|
|
263
|
+
child.once("error", (error) => {
|
|
264
|
+
process.removeListener("SIGINT", forwardInterrupt);
|
|
265
|
+
process.removeListener("SIGTERM", forwardTermination);
|
|
266
|
+
reject(error);
|
|
267
|
+
});
|
|
246
268
|
child.once("close", (status) => {
|
|
269
|
+
process.removeListener("SIGINT", forwardInterrupt);
|
|
270
|
+
process.removeListener("SIGTERM", forwardTermination);
|
|
247
271
|
stdoutGate.finish(Boolean(blockReason));
|
|
248
272
|
stderrGate.finish(Boolean(blockReason));
|
|
249
273
|
if (blockReason) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codiedev",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.47",
|
|
4
4
|
"description": "Connect Claude Code, Codex, Cursor, OpenCode, or VS Code Copilot to Codiedev for team session capture and artifact collaboration — and run the governed Codie harness",
|
|
5
5
|
"bin": {
|
|
6
6
|
"codiedev": "dist/cli.js",
|