gm-skill 2.0.1505 → 2.0.1506
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/plugkit-wasm-wrapper.js +9 -2
- 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.1506",
|
|
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": {
|
|
@@ -1701,6 +1701,7 @@ function makeHostFunctions(instanceRef) {
|
|
|
1701
1701
|
const HALF_LIFE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
1702
1702
|
const DEDUP_JACCARD = 0.7;
|
|
1703
1703
|
const RECENCY_FLOOR = 0.4;
|
|
1704
|
+
const COS_FLOOR = namespace === 'codeinsight' ? 0.55 : 0;
|
|
1704
1705
|
const nowMs = Date.now();
|
|
1705
1706
|
const scored = [];
|
|
1706
1707
|
const seen = new Set();
|
|
@@ -1712,6 +1713,7 @@ function makeHostFunctions(instanceRef) {
|
|
|
1712
1713
|
for (const f of fs.readdirSync(vecDir)) {
|
|
1713
1714
|
if (!f.endsWith('.json')) continue;
|
|
1714
1715
|
const key = f.replace(/\.json$/, '');
|
|
1716
|
+
if (key === '__digest__') continue;
|
|
1715
1717
|
const seenKey = `${ns}::${key}`;
|
|
1716
1718
|
if (seen.has(seenKey)) continue;
|
|
1717
1719
|
seen.add(seenKey);
|
|
@@ -1726,6 +1728,7 @@ function makeHostFunctions(instanceRef) {
|
|
|
1726
1728
|
: Array.isArray(emb) ? emb : null;
|
|
1727
1729
|
if (!vector) continue;
|
|
1728
1730
|
const cos = cosineSim(queryEmbedding, vector);
|
|
1731
|
+
if (cos < COS_FLOOR) continue;
|
|
1729
1732
|
const ageMs = Math.max(0, nowMs - mtimeMs);
|
|
1730
1733
|
const recency = RECENCY_FLOOR + (1 - RECENCY_FLOOR) * Math.exp(-ageMs / HALF_LIFE_MS);
|
|
1731
1734
|
const score = cos * recency;
|
|
@@ -2896,8 +2899,12 @@ async function runSpoolWatcher(instance, spoolDir) {
|
|
|
2896
2899
|
// so the 5s heartbeat cannot fire and the supervisor would reap the watcher as hung
|
|
2897
2900
|
// (the VERB ABORT). Stamp a busy_until window before the synchronous dispatch so the
|
|
2898
2901
|
// supervisor's heartbeat-stale check honors it, exactly as the browser runner does.
|
|
2899
|
-
|
|
2900
|
-
|
|
2902
|
+
// codesearch is the longest synchronous verb: a cold first call loads the 133MB bge-small
|
|
2903
|
+
// bert model AND re-indexes the tree, far exceeding the 30s stale limit. Without busy_until
|
|
2904
|
+
// the supervisor reaps the watcher mid-index and respawns it, which cold-loads again =
|
|
2905
|
+
// respawn-thrash that never completes the index (the codeinsight-stale symptom).
|
|
2906
|
+
if (verb === 'git_finalize' || verb === 'git_push' || verb === 'git_fetch' || verb === 'codesearch') {
|
|
2907
|
+
try { _writeStatusBusy(180000); } catch (_) {}
|
|
2901
2908
|
}
|
|
2902
2909
|
|
|
2903
2910
|
if (verb === 'memorize-fire' || verb === 'transition' || verb === 'prd-resolve' || verb === 'mutable-resolve') {
|
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.1506",
|
|
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",
|