gm-skill 2.0.1169 → 2.0.1171

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/README.md CHANGED
@@ -35,7 +35,7 @@ An earlier generation fanned out fifteen per-platform downstream repos (gm-cc, g
35
35
 
36
36
  ## Version
37
37
 
38
- `2.0.1169` — auto-bumped from the canonical `gm` repo. Every push to `AnEntrypoint/gm` (or any cascading sibling crate) republishes this package.
38
+ `2.0.1171` — auto-bumped from the canonical `gm` repo. Every push to `AnEntrypoint/gm` (or any cascading sibling crate) republishes this package.
39
39
 
40
40
  ## Source of truth
41
41
 
@@ -1 +1 @@
1
- 0.1.421
1
+ 0.1.422
package/bin/plugkit.wasm CHANGED
Binary file
@@ -1 +1 @@
1
- f387aea642ed6a5fc23206992ff84537653503b467edff51e8df95b1100d86ca plugkit.wasm
1
+ fc556868ffca7ab16ec04a13538bb42e853894f541a8251148165aa8e423dc83 plugkit.wasm
@@ -1115,6 +1115,41 @@ async function runSpoolWatcher(instance, spoolDir) {
1115
1115
  }
1116
1116
  }, 60_000);
1117
1117
 
1118
+ const _wrapperPathInstalled = path.join(os.homedir(), '.claude', 'gm-tools', 'plugkit-wasm-wrapper.js');
1119
+ let _wrapperShaAtBoot = '';
1120
+ try {
1121
+ const _crypto = require('crypto');
1122
+ _wrapperShaAtBoot = _crypto.createHash('sha256').update(fs.readFileSync(_wrapperPathInstalled)).digest('hex');
1123
+ } catch (_) {}
1124
+ setInterval(() => {
1125
+ try {
1126
+ if (!_wrapperShaAtBoot) return;
1127
+ const _crypto = require('crypto');
1128
+ const cur = _crypto.createHash('sha256').update(fs.readFileSync(_wrapperPathInstalled)).digest('hex');
1129
+ if (cur === _wrapperShaAtBoot) return;
1130
+ logEvent('plugkit', 'wrapper.drift', {
1131
+ boot_sha: _wrapperShaAtBoot.slice(0, 12),
1132
+ file_sha: cur.slice(0, 12),
1133
+ action: 'exit-for-respawn',
1134
+ });
1135
+ console.error(`[plugkit-wasm] wrapper.js drift detected → exiting so supervisor reloads fresh wrapper`);
1136
+ try {
1137
+ fs.writeFileSync(path.join(spoolDir, '.shutdown-reason.json'), JSON.stringify({
1138
+ reason: 'wrapper-change',
1139
+ ts: Date.now(),
1140
+ pid: process.pid,
1141
+ boot_sha: _wrapperShaAtBoot.slice(0, 12),
1142
+ file_sha: cur.slice(0, 12),
1143
+ }));
1144
+ } catch (_) {}
1145
+ try { releaseLock(); } catch (_) {}
1146
+ try { fs.unlinkSync(STATUS_PATH_FOR_TEARDOWN); } catch (_) {}
1147
+ process.exit(0);
1148
+ } catch (e) {
1149
+ console.error(`[wrapper-drift-check] error: ${e.message}`);
1150
+ }
1151
+ }, 60_000);
1152
+
1118
1153
  setInterval(() => {
1119
1154
  try {
1120
1155
  const idleMs = Date.now() - lastActivityMs;
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1169",
3
+ "version": "2.0.1171",
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.421"
20
+ "plugkitVersion": "0.1.422"
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1169",
3
+ "version": "2.0.1171",
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",
@@ -39,7 +39,7 @@
39
39
  "gm.json"
40
40
  ],
41
41
  "dependencies": {
42
- "gm-plugkit": "^2.0.1169"
42
+ "gm-plugkit": "^2.0.1171"
43
43
  },
44
44
  "engines": {
45
45
  "node": ">=16.0.0"
@@ -20,4 +20,6 @@ Now dispatch `instruction` by writing an empty body to `.gm/exec-spool/in/instru
20
20
 
21
21
  Nothing else lives here. Every concern that feels like it belongs in this file — how to batch, what verbs exist, when to scan for residuals, how the browser surface works, where the watcher logs go, how updates land, when to stop — is served by `instruction` when the moment calls for it. Trying to remember it from this skill instead of asking plugkit is forced closure: the agent acts on a stale snapshot of policy instead of the live one plugkit holds.
22
22
 
23
+ Memory writes route through `memorize-fire` only — any native "save to memory" affordance the harness exposes is invisible to plugkit's recall index and is forbidden. Questions to the user fire last, after scope-expansion and a `WebSearch`/`WebFetch` pack have both closed empty.
24
+
23
25
  Only plugkit.