@mutmutco/cli 3.138.0 → 3.139.0
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 +36 -10
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -14487,10 +14487,10 @@ var rollout_plan_default = {
|
|
|
14487
14487
|
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)."
|
|
14488
14488
|
},
|
|
14489
14489
|
baseline: {
|
|
14490
|
-
version: "3.
|
|
14491
|
-
tag: "v3.
|
|
14492
|
-
commit: "
|
|
14493
|
-
npm: "@mutmutco/cli@3.
|
|
14490
|
+
version: "3.139.0",
|
|
14491
|
+
tag: "v3.139.0",
|
|
14492
|
+
commit: "b25f6dfd0b72",
|
|
14493
|
+
npm: "@mutmutco/cli@3.139.0"
|
|
14494
14494
|
},
|
|
14495
14495
|
exitCriterion: "fleet-n-of-n",
|
|
14496
14496
|
hubOnlyShortcut: "forbidden",
|
|
@@ -14507,14 +14507,14 @@ var rollout_plan_default = {
|
|
|
14507
14507
|
repo: "mutmutco/mmi-hub",
|
|
14508
14508
|
role: "canary",
|
|
14509
14509
|
schedule: "train",
|
|
14510
|
-
v3Target: "v3.
|
|
14510
|
+
v3Target: "v3.139.0"
|
|
14511
14511
|
}
|
|
14512
14512
|
],
|
|
14513
14513
|
rollbackTrigger: "Any red inside the post-cut soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a v3 client refused while the compat window must still admit it (SUPPORTED_MINOR_WINDOW=2, MIN_CLIENT_VERSION 0.0.0 \u2014 D6a), or npm consumer install/doctor failure on the v4 dist.",
|
|
14514
14514
|
rollback: {
|
|
14515
14515
|
independent: true,
|
|
14516
|
-
mechanism: "npm dist-tag latest -> 3.
|
|
14517
|
-
v3Target: "v3.
|
|
14516
|
+
mechanism: "npm dist-tag latest -> 3.139.0 and redeploy the Hub Lambda from tag v3.139.0 (b25f6dfd0b72); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
14517
|
+
v3Target: "v3.139.0 (@mutmutco/cli@3.139.0, tag commit b25f6dfd0b72 \u2014 the preserved latest-v3 distribution, D6b)"
|
|
14518
14518
|
}
|
|
14519
14519
|
},
|
|
14520
14520
|
{
|
|
@@ -16288,7 +16288,8 @@ async function disarmFleetLockstep(client, org = ORG_LOGIN) {
|
|
|
16288
16288
|
const include = conditions?.repository_name?.include ?? [];
|
|
16289
16289
|
return writeFleetLockstepRuleset(client, fleetLockstepRulesetDesired(include, "disabled"), id, "disarm", org);
|
|
16290
16290
|
}
|
|
16291
|
-
|
|
16291
|
+
var HUB_POSTING_REPO = "mutmutco/mmi-hub";
|
|
16292
|
+
async function computeFleetLockstepVerdict(gate = runFleetLockstepGate, postingRepo) {
|
|
16292
16293
|
let result;
|
|
16293
16294
|
try {
|
|
16294
16295
|
result = await gate();
|
|
@@ -16298,6 +16299,31 @@ async function computeFleetLockstepVerdict(gate = runFleetLockstepGate) {
|
|
|
16298
16299
|
description: `fleet gate unreadable (fail-closed): ${e.message}`.slice(0, STATUS_DESCRIPTION_MAX)
|
|
16299
16300
|
};
|
|
16300
16301
|
}
|
|
16302
|
+
if (postingRepo?.trim().toLowerCase() === HUB_POSTING_REPO) {
|
|
16303
|
+
const structural = [];
|
|
16304
|
+
if (result.repos.length === 0) structural.push("empty roster");
|
|
16305
|
+
if (result.hubOnly) structural.push("hub-only coverage");
|
|
16306
|
+
if (result.unclassifiedProjects.length) structural.push(`${result.unclassifiedProjects.length} registered project(s) with no valid repository`);
|
|
16307
|
+
const hubRow = result.repos.find((r) => r.repo.trim().toLowerCase() === HUB_POSTING_REPO);
|
|
16308
|
+
if (!hubRow) structural.push("Hub row missing from the roster");
|
|
16309
|
+
if (structural.length || hubRow && hubRow.verdict !== "conforming") {
|
|
16310
|
+
const hubLocal = hubRow && hubRow.verdict !== "conforming" ? `Hub row is ${hubRow.verdict}` : null;
|
|
16311
|
+
return {
|
|
16312
|
+
state: "failure",
|
|
16313
|
+
description: `fleet lockstep FAIL: ${[...structural, hubLocal].filter(Boolean).join("; ")} (Hub train scope #5040)`.slice(0, STATUS_DESCRIPTION_MAX)
|
|
16314
|
+
};
|
|
16315
|
+
}
|
|
16316
|
+
if (result.verdict === "pass") {
|
|
16317
|
+
return {
|
|
16318
|
+
state: "success",
|
|
16319
|
+
description: `fleet lockstep ${result.conforming}/${result.denominator} PASS (evaluated ${result.evaluatedAt})`.slice(0, STATUS_DESCRIPTION_MAX)
|
|
16320
|
+
};
|
|
16321
|
+
}
|
|
16322
|
+
return {
|
|
16323
|
+
state: "success",
|
|
16324
|
+
description: `fleet lockstep ${result.conforming}/${result.denominator} \u2014 ${result.drift.length} drift, ${result.unknowns.length} unknown (other repos; non-blocking for the Hub train #5040)`.slice(0, STATUS_DESCRIPTION_MAX)
|
|
16325
|
+
};
|
|
16326
|
+
}
|
|
16301
16327
|
return result.verdict === "pass" ? {
|
|
16302
16328
|
state: "success",
|
|
16303
16329
|
description: `fleet lockstep ${result.conforming}/${result.denominator} PASS (evaluated ${result.evaluatedAt})`.slice(0, STATUS_DESCRIPTION_MAX)
|
|
@@ -16308,7 +16334,7 @@ async function computeFleetLockstepVerdict(gate = runFleetLockstepGate) {
|
|
|
16308
16334
|
}
|
|
16309
16335
|
async function satisfyFleetLockstepContext(run, repo, sha, required, gate) {
|
|
16310
16336
|
if (!required.includes(FLEET_LOCKSTEP_CONTEXT)) return void 0;
|
|
16311
|
-
const verdict = await computeFleetLockstepVerdict(gate);
|
|
16337
|
+
const verdict = await computeFleetLockstepVerdict(gate, repo);
|
|
16312
16338
|
let out;
|
|
16313
16339
|
try {
|
|
16314
16340
|
out = await run("gh", [
|
|
@@ -29848,7 +29874,7 @@ function registerBootstrapCommands(program3) {
|
|
|
29848
29874
|
if (!o.releaseTrack) {
|
|
29849
29875
|
try {
|
|
29850
29876
|
const meta = await fetchProjectBySlug(parsedRepo.slug, registryClientDeps(await loadConfig()));
|
|
29851
|
-
|
|
29877
|
+
effectiveTrack = resolveReleaseTrack(metaWithDeclaredClass(meta, o.class), void 0, repo);
|
|
29852
29878
|
} catch {
|
|
29853
29879
|
}
|
|
29854
29880
|
}
|
package/package.json
CHANGED