gm-skill 2.0.1479 → 2.0.1481
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1481",
|
|
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": {
|
|
@@ -2771,6 +2771,14 @@ async function runSpoolWatcher(instance, spoolDir) {
|
|
|
2771
2771
|
console.log(`[dispatch] → verb=${verb} task=${taskBase} body=${bodyBytes.length}b`);
|
|
2772
2772
|
logEvent('plugkit', 'dispatch.start', { verb, task: taskBase, body_bytes: bodyBytes.length, cwd: process.cwd() });
|
|
2773
2773
|
|
|
2774
|
+
// Network-bound git verbs block the event loop for the duration of a push/fetch (~30s),
|
|
2775
|
+
// so the 5s heartbeat cannot fire and the supervisor would reap the watcher as hung
|
|
2776
|
+
// (the VERB ABORT). Stamp a busy_until window before the synchronous dispatch so the
|
|
2777
|
+
// supervisor's heartbeat-stale check honors it, exactly as the browser runner does.
|
|
2778
|
+
if (verb === 'git_finalize' || verb === 'git_push' || verb === 'git_fetch') {
|
|
2779
|
+
try { _writeStatusBusy(90000); } catch (_) {}
|
|
2780
|
+
}
|
|
2781
|
+
|
|
2774
2782
|
if (verb === 'memorize-fire' || verb === 'transition' || verb === 'prd-resolve' || verb === 'mutable-resolve') {
|
|
2775
2783
|
try { autoRecordBrowserEditsFromBody(body, process.cwd(), taskBase, verb); } catch (_) {}
|
|
2776
2784
|
}
|
package/gm-plugkit/supervisor.js
CHANGED
|
@@ -195,7 +195,15 @@ function checkWatcherHealth() {
|
|
|
195
195
|
});
|
|
196
196
|
return;
|
|
197
197
|
}
|
|
198
|
-
const
|
|
198
|
+
const now = Date.now();
|
|
199
|
+
// A long synchronous verb (git_finalize's ~30s network push, a chromium spawn)
|
|
200
|
+
// blocks the heartbeat write. The verb advertises busy_until in .status.json; while
|
|
201
|
+
// that is in the future the watcher is busy, not hung — reaping it kills the verb
|
|
202
|
+
// mid-flight (the VERB ABORT). Honor busy_until exactly as the agent boot probe does.
|
|
203
|
+
if (status.busy_until && status.busy_until > now) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const age = now - (status.ts || 0);
|
|
199
207
|
if (age > STATUS_STALE_MS) {
|
|
200
208
|
logEvent('supervisor.heartbeat-stale', {
|
|
201
209
|
watcher_pid: currentChildPid,
|
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.1481",
|
|
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",
|