@mjasnikovs/pi-task 0.40.47 → 0.40.48

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.
@@ -95,6 +95,7 @@ export const spawnCommand = spec => new Promise(resolve => {
95
95
  let settled = false;
96
96
  let exitStatus = null;
97
97
  let exited = false;
98
+ let killed = false;
98
99
  let endedStreams = 0;
99
100
  let drain;
100
101
  // Its own process group: a pretest that backgrounds a daemon, a build that
@@ -145,6 +146,7 @@ export const spawnCommand = spec => new Promise(resolve => {
145
146
  * `status: null` regardless.
146
147
  */
147
148
  const killAndSettle = () => {
149
+ killed = true;
148
150
  kill();
149
151
  clearTimeout(drain);
150
152
  drain = setTimeout(() => done(null), EXIT_DRAIN_MS);
@@ -175,7 +177,8 @@ export const spawnCommand = spec => new Promise(resolve => {
175
177
  child.on('error', (e) => done(null, e.message));
176
178
  child.on('exit', (code) => {
177
179
  exited = true;
178
- exitStatus = code;
180
+ // taskkill /F ends a win32 child with exit code 1, which reads as a failed check.
181
+ exitStatus = killed ? null : code;
179
182
  if (child.pid)
180
183
  reapGroupAfterExit(child.pid);
181
184
  // Both ends of the same question: settle now if the pipes are already
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjasnikovs/pi-task",
3
- "version": "0.40.47",
3
+ "version": "0.40.48",
4
4
  "description": "Deterministic task planning and spec-orchestration for local models — crash-safe /task pipelines with verify/enforce gates, a real-time remote web view, and web/docs/fetch/worker subagent tools.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",