@mutmutco/hub 4.0.4 → 4.0.5

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.
Files changed (2) hide show
  1. package/dist/index.cjs +14 -4
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -339,11 +339,12 @@ function checkAtomicity(cachePath, tagCommit, bom, candidate, npm) {
339
339
  rows.push({ id: row.id, name, ok: false, detail: `${name}@${candidate} not on npm` });
340
340
  continue;
341
341
  }
342
- if (integrity !== row.identity.value) {
342
+ const legacySsri = /^sha\d+-/.test(row.identity.value ?? "");
343
+ if (legacySsri && integrity !== row.identity.value) {
343
344
  rows.push({ id: row.id, name, ok: false, detail: `${name}@${candidate} dist.integrity differs from BOM identity` });
344
345
  continue;
345
346
  }
346
- rows.push({ id: row.id, name, ok: true, detail: `${name}@${candidate} published, integrity matches` });
347
+ rows.push({ id: row.id, name, ok: true, detail: legacySsri ? `${name}@${candidate} published, integrity matches` : `${name}@${candidate} published` });
347
348
  }
348
349
  return { ok: rows.length > 0 && rows.every((row) => row.ok), rows };
349
350
  }
@@ -548,6 +549,9 @@ var import_node_child_process5 = require("node:child_process");
548
549
  var import_node_fs7 = require("node:fs");
549
550
  var import_node_os3 = require("node:os");
550
551
  var import_node_path6 = require("node:path");
552
+ function convergedAtOrAbove(installed, target, healthy) {
553
+ return healthy && typeof installed === "string" && compareSemver(installed, target) >= 0;
554
+ }
551
555
  function cmdArg(value) {
552
556
  return /^[A-Za-z0-9_@./:\\=+-]+$/.test(value) ? value : `"${value.replaceAll('"', '""')}"`;
553
557
  }
@@ -671,9 +675,12 @@ function claudeArm(options) {
671
675
  }
672
676
  observed = claudeMmi(runner, env);
673
677
  }
674
- if (observed.row?.version !== options.target || observed.row.enabled !== true) {
678
+ if (!convergedAtOrAbove(observed.row?.version, options.target, observed.row?.enabled === true)) {
675
679
  return { surface: "claude", from, to: observed.row?.version ?? "unknown", verdict: "fail", detail: `post-update evidence is version ${observed.row?.version ?? "missing"}, enabled=${String(observed.row?.enabled)}, expected ${options.target}/true` };
676
680
  }
681
+ if (observed.row.version !== options.target) {
682
+ return { surface: "claude", from, to: observed.row.version, verdict: "skip", detail: `installed ${observed.row.version} is above candidate ${options.target} (monotonic)` };
683
+ }
677
684
  return { surface: "claude", from, to: options.target, verdict: "ok", detail: `catalog refreshed; converged and verified ${from ?? "absent"} -> ${options.target}` };
678
685
  }
679
686
  var SNAPSHOT_MISSING = /marketplace snapshot|marketplace root does not contain/i;
@@ -713,9 +720,12 @@ function codexArm(options) {
713
720
  }
714
721
  observed = codexMmi(runner, env);
715
722
  }
716
- if (observed.row?.version !== options.target || observed.row.installed !== true || observed.row.enabled !== true) {
723
+ if (!convergedAtOrAbove(observed.row?.version, options.target, observed.row?.installed === true && observed.row?.enabled === true)) {
717
724
  return { surface: "codex", from, to: observed.row?.version ?? "unknown", verdict: "fail", detail: `post-upgrade evidence is version ${observed.row?.version ?? "missing"}, installed=${String(observed.row?.installed)}, enabled=${String(observed.row?.enabled)}, expected ${options.target}/true/true` };
718
725
  }
726
+ if (observed.row.version !== options.target) {
727
+ return { surface: "codex", from, to: observed.row.version, verdict: "skip", detail: `installed ${observed.row.version} is above candidate ${options.target} (monotonic)` };
728
+ }
719
729
  return { surface: "codex", from, to: options.target, verdict: "ok", detail: `marketplace upgraded; payload refresh and native evidence verified at ${options.target}` };
720
730
  }
721
731
  var KILO_PACKAGE = "@mutmutco/kilo-plugin";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/hub",
3
- "version": "4.0.4",
3
+ "version": "4.0.5",
4
4
  "description": "Install and maintain the MMI CLI and every present host surface from one release-gated Hub command.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",