gm-qwen 2.0.972 → 2.0.974

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
- 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
+ 347526abe6d99548102be890f45fbc7709dd58dab679cb55a3d3c9cdd6461c99 plugkit-win32-x64.exe
2
+ 001929200bdb99fa5ec70c7be80e2b94ad05a266a7a1abe9dda3b0ac5a76c684 plugkit-win32-arm64.exe
3
+ ab206f0d60369678950fbb6ec8a3f9415be9b9343f28f3e3b8118349cf25ab53 plugkit-darwin-x64
4
+ 245b23805cb067983fc5263a14fb46714a9bdab23b4e930a176a621ced2c6577 plugkit-darwin-arm64
5
+ 688259bc51f8c75b9f866e843b3042eb0761b49b463ee5412c44f96c5b3927db plugkit-linux-x64
6
+ dfe8dc68cf0d95ad6297e280e899e4eab5cda5464ed090161b0a3ac879a394ba plugkit-linux-arm64
@@ -1 +1 @@
1
- 0.1.332
1
+ 0.1.333
package/bin/rtk.sha256 CHANGED
@@ -1,5 +1,5 @@
1
- babf62eaafa665423441fe5ca158dca11f1be9640d51e7b8873d730c8f93a7c1 rtk-win32-x64.exe
2
- c3b2afd875b7aa593be59893745a2a3321a0a5bd2686f9469ef134fe74d974b1 rtk-win32-arm64.exe
1
+ 75386798dfb02df50e7bbbcf2af72afb97b364e7447d414c729ed17ea695d38d rtk-win32-x64.exe
2
+ 00f61ed4c637f210572c165c3bda18016a9920135cf4753ae20f3dfb3413dbda 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.972",
3
+ "version": "2.0.974",
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.332"
26
+ "plugkitVersion": "0.1.333"
27
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-qwen",
3
- "version": "2.0.972",
3
+ "version": "2.0.974",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",