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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1971",
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": {
@@ -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
- const STATUS_STALE_MS = 30_000;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1971",
3
+ "version": "2.0.1972",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1971",
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",