gm-skill 2.0.1393 → 2.0.1395

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 +1 @@
1
- 0.1.541
1
+ 0.1.544
@@ -1 +1 @@
1
- 2d43dbe0a82cd41226ff60553dc07b11972d51920ecdb7e0d0bc4758569641f7 plugkit.wasm
1
+ fcb8754b64941d88e14d74f8c57556c99fcb5bde24cdf0a6b8e70b702db7f8bc plugkit.wasm
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1393",
3
+ "version": "2.0.1395",
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": {
@@ -2781,6 +2781,13 @@ async function runSpoolWatcher(instance, spoolDir) {
2781
2781
  } catch (_) {}
2782
2782
  const fileV = readFileVersionOnly() || null;
2783
2783
  const instV = _instanceVersionAtBoot || null;
2784
+ let updateAvailable = null;
2785
+ try {
2786
+ const upd = JSON.parse(fs.readFileSync(path.join(spoolDir, '.update-available.json'), 'utf-8'));
2787
+ if (upd && upd.installed && upd.latest && upd.installed !== upd.latest) {
2788
+ updateAvailable = { installed: upd.installed, latest: upd.latest };
2789
+ }
2790
+ } catch (_) {}
2784
2791
  fs.writeFileSync(TURN_SUMMARY_PATH, JSON.stringify({
2785
2792
  ts: Date.now(),
2786
2793
  watcher_pid: process.pid,
@@ -2792,6 +2799,7 @@ async function runSpoolWatcher(instance, spoolDir) {
2792
2799
  last_instruction_age_ms: lastInstructionAgeMs,
2793
2800
  long_gap_threshold_ms: 300000,
2794
2801
  browser_sessions_alive: browserSessions,
2802
+ update_available: updateAvailable,
2795
2803
  }));
2796
2804
  } catch (_) {}
2797
2805
  }
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1393",
3
+ "version": "2.0.1395",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -17,5 +17,5 @@
17
17
  "publishConfig": {
18
18
  "access": "public"
19
19
  },
20
- "plugkitVersion": "0.1.541"
20
+ "plugkitVersion": "0.1.544"
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1393",
3
+ "version": "2.0.1395",
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",
@@ -28,7 +28,7 @@ Your first tool call of every session is the boot probe, in one Bash invocation.
28
28
  cat .gm/exec-spool/.status.json 2>/dev/null; echo ---; cat .gm/exec-spool/.turn-summary.json 2>/dev/null; echo ---; date +%s%3N
29
29
  ```
30
30
 
31
- `.turn-summary.json` carries `phase`, `last_skill`, `prd_pending`, `last_instruction_ts`, `last_instruction_age_ms`, `long_gap_threshold_ms`, `browser_sessions_alive`. When age exceeds the threshold, your next non-orienting verb will be gated — dispatch `instruction` first.
31
+ `.turn-summary.json` carries `phase`, `last_skill`, `prd_pending`, `last_instruction_ts`, `last_instruction_age_ms`, `long_gap_threshold_ms`, `browser_sessions_alive`, `update_available`. When age exceeds the threshold, your next non-orienting verb will be gated — dispatch `instruction` first. When `update_available` is non-null, the watcher has detected drift: kill the watcher and re-bootstrap before continuing so the next instruction lands on the fresh wasm.
32
32
 
33
33
  Compare `.status.json` `ts` field to the printed epoch ms. If the gap is >15000, the watcher is dead — boot it:
34
34