gm-skill 2.0.1971 → 2.0.1972
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/gm-plugkit/package.json +1 -1
- package/gm-plugkit/supervisor.js +20 -1
- package/gm.json +1 -1
- package/package.json +1 -1
package/gm-plugkit/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1972",
|
|
4
4
|
"description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
package/gm-plugkit/supervisor.js
CHANGED
|
@@ -29,7 +29,26 @@ const LOG_PATH = path.join(spoolDir, '.watcher.log');
|
|
|
29
29
|
const GM_LOG_ROOT = _sharedGmLogRoot;
|
|
30
30
|
|
|
31
31
|
const POLL_INTERVAL_MS = 10_000;
|
|
32
|
-
|
|
32
|
+
// Was 30s. Live-measured this session under real multi-agent concurrent load
|
|
33
|
+
// (13 parallel gm-skill-driven agents, each booting its own watcher on the
|
|
34
|
+
// same machine): 74 of 94 total watcher restarts logged in one session were
|
|
35
|
+
// heartbeat-stale kills, the dominant restart cause by a wide margin -- each
|
|
36
|
+
// restart drops the process's memory back to near-zero then it climbs again
|
|
37
|
+
// through a fresh cold-embed pass, which is the actual mechanism behind the
|
|
38
|
+
// "memory grows to ~2GB then clears" pattern a user observed and correctly
|
|
39
|
+
// flagged as inefficient. The busy_until shielding mechanism (see writeStatus
|
|
40
|
+
// call sites in plugkit-wasm-wrapper.js) already protects genuinely-busy
|
|
41
|
+
// single dispatches, but under real CPU contention from many concurrent
|
|
42
|
+
// processes, even the setInterval-based busy_until REFRESH callback itself
|
|
43
|
+
// can be delayed past the old 30s window before it fires -- a starvation
|
|
44
|
+
// problem one level above the per-dispatch busy-window fixes already shipped
|
|
45
|
+
// this session. Raising the stale threshold gives real contention more slack
|
|
46
|
+
// before concluding a process is dead, trading a slightly slower true-dead
|
|
47
|
+
// detection for far fewer false-positive kills-and-restarts (each restart is
|
|
48
|
+
// far more expensive than the extra wait -- a full cold embed pass observed
|
|
49
|
+
// taking 90-120s+ under load) -- a clear net win under the contention this
|
|
50
|
+
// session repeatedly measured.
|
|
51
|
+
const STATUS_STALE_MS = 90_000;
|
|
33
52
|
const MAX_RESTART_BURST = 5;
|
|
34
53
|
const RESTART_WINDOW_MS = 60_000;
|
|
35
54
|
const BURST_BACKOFF_MS = 60_000;
|
package/gm.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1972",
|
|
4
4
|
"description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
|
|
5
5
|
"author": "AnEntrypoint",
|
|
6
6
|
"license": "MIT",
|