@mutmutco/cli 4.3.65 → 4.3.67

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/main.cjs +33 -11
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -15801,10 +15801,10 @@ var rollout_plan_default = {
15801
15801
  note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
15802
15802
  },
15803
15803
  baseline: {
15804
- version: "4.3.65",
15805
- tag: "v4.3.65",
15806
- commit: "6f1cb5bc31b9",
15807
- npm: "@mutmutco/cli@4.3.65"
15804
+ version: "4.3.67",
15805
+ tag: "v4.3.67",
15806
+ commit: "61dc785d3abb",
15807
+ npm: "@mutmutco/cli@4.3.67"
15808
15808
  },
15809
15809
  exitCriterion: "fleet-n-of-n",
15810
15810
  hubOnlyShortcut: "forbidden",
@@ -15821,14 +15821,14 @@ var rollout_plan_default = {
15821
15821
  repo: "mutmutco/mmi-hub",
15822
15822
  role: "canary",
15823
15823
  schedule: "train",
15824
- v3Target: "v4.3.65"
15824
+ v3Target: "v4.3.67"
15825
15825
  }
15826
15826
  ],
15827
15827
  rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
15828
15828
  rollback: {
15829
15829
  independent: true,
15830
- mechanism: "npm dist-tag latest -> 4.3.65 and redeploy the Hub Lambda from tag v4.3.65 (6f1cb5bc31b9); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15831
- v3Target: "v4.3.65 (@mutmutco/cli@4.3.65, tag commit 6f1cb5bc31b9 \u2014 last known-good release carrying the repo-index v4-only contract)"
15830
+ mechanism: "npm dist-tag latest -> 4.3.67 and redeploy the Hub Lambda from tag v4.3.67 (61dc785d3abb); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15831
+ v3Target: "v4.3.67 (@mutmutco/cli@4.3.67, tag commit 61dc785d3abb \u2014 last known-good release carrying the repo-index v4-only contract)"
15832
15832
  }
15833
15833
  },
15834
15834
  {
@@ -28077,11 +28077,21 @@ function applyWaivers(checks, waivers) {
28077
28077
  const set = new Set(waivers);
28078
28078
  return checks.map((c) => !c.ok && set.has(c.label) ? { ...c, waived: true } : c);
28079
28079
  }
28080
+ function laneNotEvaluatedFromThisBranch(doctor) {
28081
+ if (doctor.ready) return void 0;
28082
+ const reasons = doctor.findings.filter((f) => f.severity === "blocker" || f.code === "origin-unverified");
28083
+ const only = reasons.length === 1 ? reasons[0] : void 0;
28084
+ return only?.code === "branch-mismatch" ? only.title : void 0;
28085
+ }
28080
28086
  function attachTrainDoctorVerdicts(report, trainDoctors) {
28087
+ const marked = trainDoctors.map((doctor) => {
28088
+ const notEvaluatedFromThisBranch = laneNotEvaluatedFromThisBranch(doctor);
28089
+ return notEvaluatedFromThisBranch ? { ...doctor, notEvaluatedFromThisBranch } : doctor;
28090
+ });
28081
28091
  return {
28082
28092
  ...report,
28083
- ok: report.ok && trainDoctors.every((doctor) => doctor.ready),
28084
- ...trainDoctors.length ? { trainDoctors } : {}
28093
+ ok: report.ok && marked.every((doctor) => doctor.ready || doctor.notEvaluatedFromThisBranch !== void 0),
28094
+ ...marked.length ? { trainDoctors: marked } : {}
28085
28095
  };
28086
28096
  }
28087
28097
  function renderBootstrapVerifyReport(report) {
@@ -28090,7 +28100,12 @@ function renderBootstrapVerifyReport(report) {
28090
28100
  const status = check.ok ? "OK" : check.waived ? "WAIVE" : "FAIL";
28091
28101
  lines2.push(`${status} ${check.code ? `[${check.code}] ` : ""}${check.label}${check.detail ? ` - ${check.detail}` : ""}`);
28092
28102
  }
28093
- for (const doctor of report.trainDoctors ?? []) lines2.push("", formatTrainDoctor(doctor));
28103
+ for (const doctor of report.trainDoctors ?? []) {
28104
+ lines2.push("", formatTrainDoctor(doctor));
28105
+ if (doctor.notEvaluatedFromThisBranch) {
28106
+ lines2.push(` NOT EVALUATED from this branch \u2014 ${doctor.notEvaluatedFromThisBranch}; one checkout stands on one branch, so this lane does not fail the verify (#6677). Run \`mmi-cli devops train doctor --lane ${doctor.lane}\` from that branch for its own verdict.`);
28107
+ }
28108
+ }
28094
28109
  return lines2.join("\n");
28095
28110
  }
28096
28111
 
@@ -44605,6 +44620,11 @@ function emitTrainResult(label, output, out) {
44605
44620
  if (!out) printLine(output);
44606
44621
  else printLine(`Wrote ${label} result to ${out} (UTF-8, ${writeUtf8Receipt(out, output)} bytes)`);
44607
44622
  }
44623
+ function writeTrainFailureReceipt(commandName, json, out, error) {
44624
+ if (!out) return;
44625
+ const output = json ? JSON.stringify({ command: `${commandName} --apply`, verdict: "failed", error: error.message }, null, 2) : `mmi-cli ${commandName} --apply: FAILED \u2014 ${error.message}`;
44626
+ emitTrainResult(`${commandName} apply`, output, out);
44627
+ }
44608
44628
  function renderTenantRedeploy(r) {
44609
44629
  return `mmi-cli devops runtime tenant redeploy: ${r.repo} ${r.stage} (ref=${r.ref}) [${r.deployModel}]; ${renderDeployLine(r)}`;
44610
44630
  }
@@ -44853,9 +44873,11 @@ function registerTrainOperationsCommands(program3, runProjectInfoSyncCallback) {
44853
44873
  applyTrainFollowUpExit(followUpStatus);
44854
44874
  return;
44855
44875
  } catch (e) {
44876
+ const error = e;
44877
+ writeTrainFailureReceipt(commandName, o.json === true, o.out, error);
44856
44878
  process.exitCode = 1;
44857
44879
  if (commandName === "release") consoleIo.err("mmi-cli: Release: Release blocked \u2014 see the error below");
44858
- return await failGraceful(`${commandName}: ${e.message}`);
44880
+ return await failGraceful(`${commandName}: ${error.message}`);
44859
44881
  }
44860
44882
  }
44861
44883
  const repo = o.repo ?? await resolveRepo();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.3.65",
3
+ "version": "4.3.67",
4
4
  "description": "MMI Future CLI — the org dev toolbox and shared cross-IDE engine for every registry-declared MMI coding surface.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",