gm-qwen 2.0.971 → 2.0.973

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/bin/bootstrap.js CHANGED
@@ -345,58 +345,42 @@ async function bootstrap(opts) {
345
345
  const partialPath = `${finalPath}.partial`;
346
346
 
347
347
  if (fs.existsSync(finalPath) && fs.existsSync(okSentinel)) {
348
- const actualVersion = probeBinaryVersion(finalPath);
349
- if (actualVersion && actualVersion !== version) {
350
- log(`cache version mismatch: dir=v${version} contains binary ${actualVersion} → re-fetching v${version}`);
348
+ if (expectedSha) {
349
+ const actualSha = sha256OfFileSync(finalPath);
350
+ if (actualSha === expectedSha) {
351
+ if (!opts.silent) log(`decision: hit reason: sha-match v${version} (${finalPath})`);
352
+ return finalPath;
353
+ }
354
+ log(`decision: fetch reason: cache-hit-sha-mismatch (dir=v${version} expected ${expectedSha.slice(0,12)}… got ${(actualSha||'').slice(0,12)}…)`);
351
355
  writeBootstrapError({
352
356
  expected_version: version,
353
- cached_version: actualVersion,
354
- error_phase: 'cache-hit-pin-mismatch',
355
- error_message: `cached binary at ${finalPath} reports --version=${actualVersion} but cache dir pins v${version}`,
357
+ cached_version: null,
358
+ error_phase: 'cache-hit-sha-mismatch',
359
+ error_message: `cached binary at ${finalPath} sha=${actualSha} but manifest expects ${expectedSha}`,
356
360
  });
357
361
  try { fs.unlinkSync(finalPath); } catch (_) {}
358
362
  try { fs.unlinkSync(okSentinel); } catch (_) {}
359
363
  } else {
360
- if (!opts.silent) log(`cache hit: ${finalPath}${actualVersion ? ` (matches pin v${version})` : ''}`);
361
- proactiveKillForNewInstall(version, finalPath);
362
- pruneOldVersions(root, version, readRtkVersion(wrapperDir));
364
+ if (!opts.silent) log(`decision: hit reason: sentinel+no-sha-manifest (${finalPath})`);
363
365
  return finalPath;
364
366
  }
365
367
  }
366
368
 
367
369
  if (healIfShaMatches(finalPath, expectedSha, okSentinel, partialPath, 'plugkit')) {
368
- const actualVersion = probeBinaryVersion(finalPath);
369
- if (actualVersion && actualVersion !== version) {
370
- log(`cache heal version mismatch: dir=v${version} contains binary ${actualVersion} → re-fetching`);
371
- writeBootstrapError({
372
- expected_version: version,
373
- cached_version: actualVersion,
374
- error_phase: 'cache-heal-pin-mismatch',
375
- error_message: `healed binary at ${finalPath} reports --version=${actualVersion} but cache dir pins v${version}`,
376
- });
377
- try { fs.unlinkSync(finalPath); } catch (_) {}
378
- try { fs.unlinkSync(okSentinel); } catch (_) {}
379
- } else {
380
- if (!opts.silent) log(`cache heal (sha match): ${finalPath}${actualVersion ? ` (matches pin v${version})` : ''}`);
381
- proactiveKillForNewInstall(version, finalPath);
382
- pruneOldVersions(root, version, readRtkVersion(wrapperDir));
383
- spawnDetachedRtkFetch(wrapperDir);
384
- return finalPath;
385
- }
370
+ if (!opts.silent) log(`decision: heal reason: sha-match (${finalPath})`);
371
+ spawnDetachedRtkFetch(wrapperDir);
372
+ return finalPath;
386
373
  }
387
374
 
388
375
  const lockPath = path.join(verDir, '.lock');
389
376
  acquireLock(lockPath);
390
377
  try {
391
378
  if (fs.existsSync(finalPath) && fs.existsSync(okSentinel)) {
392
- proactiveKillForNewInstall(version, finalPath);
393
- pruneOldVersions(root, version, readRtkVersion(wrapperDir));
379
+ log(`decision: hit reason: lock-race-resolved (${finalPath})`);
394
380
  return finalPath;
395
381
  }
396
382
  if (healIfShaMatches(finalPath, expectedSha, okSentinel, partialPath, 'plugkit')) {
397
- log(`cache heal (sha match) under lock: ${finalPath}`);
398
- proactiveKillForNewInstall(version, finalPath);
399
- pruneOldVersions(root, version, readRtkVersion(wrapperDir));
383
+ log(`decision: heal reason: sha-match-under-lock (${finalPath})`);
400
384
  spawnDetachedRtkFetch(wrapperDir);
401
385
  return finalPath;
402
386
  }
@@ -453,7 +437,7 @@ async function bootstrap(opts) {
453
437
  }
454
438
 
455
439
  fs.writeFileSync(okSentinel, new Date().toISOString());
456
- log(`installed ${finalPath}`);
440
+ log(`decision: fetch reason: install-complete (${finalPath})`);
457
441
  obsEvent('bootstrap', 'install.done', { path: finalPath, version, kind: 'plugkit' });
458
442
  proactiveKillForNewInstall(version, finalPath);
459
443
  pruneOldVersions(root, version, readRtkVersion(wrapperDir));
@@ -1,6 +1,6 @@
1
- ed3634aa3866e368094a378cb25551280d3b552547cb2cd53ac4fb248715fa49 plugkit-win32-x64.exe
2
- 5e9923213d26e0a9b75b3b117a475d8e8430775141d9edc9113682b3d9b50ce7 plugkit-win32-arm64.exe
3
- e132cfd1296e5d502fa1df54cbe132dd2d0bda03e43f83e3a8ba420d4ba69f0d plugkit-darwin-x64
4
- a182675b8d79e628c0e1b60cf562099d7eb7dcd8f255cec997315563ab4cca80 plugkit-darwin-arm64
5
- 1562d3ed732a6ddd3ff584d9404d8744214a31dfb4c85b7786b7cbff4613dcaf plugkit-linux-x64
6
- dfa03a720211208343271ac5655b36cb29f8330730f3f4fdc9a41e27cfe54921 plugkit-linux-arm64
1
+ b38688f77f87708a9a8f3a046b242541f310bda48981237367900e3fafb4a436 plugkit-win32-x64.exe
2
+ 9f94e81fdd11e3d907bdb9213cc8150dcdc56e11efccda56646948175b1f6206 plugkit-win32-arm64.exe
3
+ b06542f360dd24f7865d02445f99466a8ddc388a32505e3407e16455da42d1c7 plugkit-darwin-x64
4
+ cdf01daa1c9f2ebbef609f88b0df02931b16cd1804919a9458a05e793a6b2191 plugkit-darwin-arm64
5
+ 9fed6e1c86e1fac6714a2cd5b662f3e9bcb458438928ae23b4390db393941e7b plugkit-linux-x64
6
+ 90f0f29b84d63d6224430c1344359dd3801a92dca38eb50fa112ecf41a569c9c plugkit-linux-arm64
@@ -1 +1 @@
1
- 0.1.331
1
+ 0.1.332
package/bin/rtk.sha256 CHANGED
@@ -1,5 +1,5 @@
1
- 25caf41cb59f38924c836323cc07d4e17fd5d9fe818a9d5184e8dc960ce02fbe rtk-win32-x64.exe
2
- acfa2875138aaf18353821ef1cac7c8b1101223537e21e43a07bc2e619164dbb rtk-win32-arm64.exe
1
+ babf62eaafa665423441fe5ca158dca11f1be9640d51e7b8873d730c8f93a7c1 rtk-win32-x64.exe
2
+ c3b2afd875b7aa593be59893745a2a3321a0a5bd2686f9469ef134fe74d974b1 rtk-win32-arm64.exe
3
3
  1b1e792767ed0e1e6ca0e2f0a8de02e77b06dea2f5ae667278b94baf239fcdc3 rtk-darwin-x64
4
4
  9717978d9d6216ea50c94444e00e359479b6315a17bd48c16064b267c8b0b60d rtk-darwin-arm64
5
5
  a100d3defac54194144e5723aec57e6f286b42298c67145c8428815246c9ee56 rtk-linux-x64
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.971",
3
+ "version": "2.0.973",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -23,5 +23,5 @@
23
23
  "publishConfig": {
24
24
  "access": "public"
25
25
  },
26
- "plugkitVersion": "0.1.331"
26
+ "plugkitVersion": "0.1.332"
27
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-qwen",
3
- "version": "2.0.971",
3
+ "version": "2.0.973",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",