@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.
- package/dist/main.cjs +33 -11
- 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.
|
|
15805
|
-
tag: "v4.3.
|
|
15806
|
-
commit: "
|
|
15807
|
-
npm: "@mutmutco/cli@4.3.
|
|
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.
|
|
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.
|
|
15831
|
-
v3Target: "v4.3.
|
|
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 &&
|
|
28084
|
-
...
|
|
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 ?? [])
|
|
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}: ${
|
|
44880
|
+
return await failGraceful(`${commandName}: ${error.message}`);
|
|
44859
44881
|
}
|
|
44860
44882
|
}
|
|
44861
44883
|
const repo = o.repo ?? await resolveRepo();
|
package/package.json
CHANGED