@detergent-software/atk 8.9.0-dev.31 → 8.9.0-dev.32

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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## [8.9.0-dev.32](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.31&targetVersion=GTv8.9.0-dev.32) (2026-10-19)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **cli:** count only ESRCH as a dead lock holder ([6826efd](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/6826efdb6c739f1cde672f5afeb63b7c5da223cf))
6
+ * **cli:** treat a PID no process can have as a dead holder ([3e13d0d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/3e13d0dd875c2d4da5b6878e25e4bbbe1137a56f))
7
+
1
8
  ## [8.9.0-dev.31](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.30&targetVersion=GTv8.9.0-dev.31) (2026-10-19)
2
9
 
3
10
  ### Bug Fixes
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * Check whether a process with the given PID is still running.
3
3
  * Uses `process.kill(pid, 0)` which sends no signal but throws if the
4
- * process does not exist. `EPERM` means it exists but belongs to another
5
- * user, so it counts as running.
4
+ * process does not exist. Only `ESRCH` means it is gone: `EPERM` means it
5
+ * exists but belongs to another user, and any other error is read as running
6
+ * too, since a wrong "running" only waits for the holder to go stale while a
7
+ * wrong "gone" takes a live holder's lock or temp file. A PID no process can
8
+ * have (not a positive int32; 0 and negatives signal a process group) is gone.
6
9
  */
7
10
  export declare function isProcessAlive(pid: number): boolean;
8
11
  //# sourceMappingURL=process-alive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-alive.d.ts","sourceRoot":"","sources":["../../src/lib/process-alive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD"}
1
+ {"version":3,"file":"process-alive.d.ts","sourceRoot":"","sources":["../../src/lib/process-alive.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUnD"}
@@ -1,16 +1,22 @@
1
1
  /**
2
2
  * Check whether a process with the given PID is still running.
3
3
  * Uses `process.kill(pid, 0)` which sends no signal but throws if the
4
- * process does not exist. `EPERM` means it exists but belongs to another
5
- * user, so it counts as running.
4
+ * process does not exist. Only `ESRCH` means it is gone: `EPERM` means it
5
+ * exists but belongs to another user, and any other error is read as running
6
+ * too, since a wrong "running" only waits for the holder to go stale while a
7
+ * wrong "gone" takes a live holder's lock or temp file. A PID no process can
8
+ * have (not a positive int32; 0 and negatives signal a process group) is gone.
6
9
  */
7
10
  export function isProcessAlive(pid) {
11
+ if (!Number.isInteger(pid) || pid <= 0 || pid > 0x7fffffff) {
12
+ return false;
13
+ }
8
14
  try {
9
15
  process.kill(pid, 0);
10
16
  return true;
11
17
  }
12
18
  catch (error) {
13
- return error.code === 'EPERM';
19
+ return error.code !== 'ESRCH';
14
20
  }
15
21
  }
16
22
  //# sourceMappingURL=process-alive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-alive.js","sourceRoot":"","sources":["../../src/lib/process-alive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"process-alive.js","sourceRoot":"","sources":["../../src/lib/process-alive.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@detergent-software/atk",
3
- "version": "8.9.0-dev.31",
3
+ "version": "8.9.0-dev.32",
4
4
  "description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
5
5
  "type": "module",
6
6
  "bin": {