@mutmutco/cli 4.5.138 → 4.5.140
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 +22 -8
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -18277,10 +18277,10 @@ var rollout_plan_default = {
|
|
|
18277
18277
|
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)."
|
|
18278
18278
|
},
|
|
18279
18279
|
baseline: {
|
|
18280
|
-
version: "4.5.
|
|
18281
|
-
tag: "v4.5.
|
|
18282
|
-
commit: "
|
|
18283
|
-
npm: "@mutmutco/cli@4.5.
|
|
18280
|
+
version: "4.5.140",
|
|
18281
|
+
tag: "v4.5.140",
|
|
18282
|
+
commit: "4a198fde4423",
|
|
18283
|
+
npm: "@mutmutco/cli@4.5.140"
|
|
18284
18284
|
},
|
|
18285
18285
|
exitCriterion: "fleet-n-of-n",
|
|
18286
18286
|
hubOnlyShortcut: "forbidden",
|
|
@@ -18297,14 +18297,14 @@ var rollout_plan_default = {
|
|
|
18297
18297
|
repo: "mutmutco/mmi-hub",
|
|
18298
18298
|
role: "canary",
|
|
18299
18299
|
schedule: "train",
|
|
18300
|
-
v3Target: "v4.5.
|
|
18300
|
+
v3Target: "v4.5.140"
|
|
18301
18301
|
}
|
|
18302
18302
|
],
|
|
18303
18303
|
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.",
|
|
18304
18304
|
rollback: {
|
|
18305
18305
|
independent: true,
|
|
18306
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
18307
|
-
v3Target: "v4.5.
|
|
18306
|
+
mechanism: "npm dist-tag latest -> 4.5.140 and redeploy the Hub Lambda from tag v4.5.140 (4a198fde4423); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
18307
|
+
v3Target: "v4.5.140 (@mutmutco/cli@4.5.140, tag commit 4a198fde4423 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
18308
18308
|
}
|
|
18309
18309
|
},
|
|
18310
18310
|
{
|
|
@@ -20427,7 +20427,10 @@ async function readTrainLogin(deps, waitMs = 18e4, attempts = 5) {
|
|
|
20427
20427
|
try {
|
|
20428
20428
|
return requireValue(clean2(await deps.run("gh", ["api", "user", "--jq", ".login"])), "GitHub login");
|
|
20429
20429
|
} catch (e) {
|
|
20430
|
-
if (
|
|
20430
|
+
if (!isRateLimitText(e instanceof Error ? e.message : String(e))) throw e;
|
|
20431
|
+
const stored = clean2(await deps.run("gh", ["config", "get", "user", "-h", "github.com"]).catch(() => ""));
|
|
20432
|
+
if (stored) return stored;
|
|
20433
|
+
if (i >= attempts) throw e;
|
|
20431
20434
|
deps.warn?.(`GitHub login read rate-limited; retrying in ${waitMs / 6e4} min (${i}/${attempts - 1})`);
|
|
20432
20435
|
await resolveSleep(deps)(waitMs);
|
|
20433
20436
|
}
|
|
@@ -26491,6 +26494,14 @@ var UPDATE_LINE_MAX = 120;
|
|
|
26491
26494
|
var UPDATE_SECTION_MAX = 8;
|
|
26492
26495
|
var UPDATE_LINE = /^[^:\s][^:]{0,39}: \S.*\.$/u;
|
|
26493
26496
|
var UPDATE_FORBIDDEN = /#\d|\bv?\d+\.\d+\.\d+|^(?:feat|fix|chore|refactor|docs|test|ci|build|perf|style)\b/;
|
|
26497
|
+
var FIXED_OUTCOME = {
|
|
26498
|
+
en: /\b(?:now|again|no longer)\b/i,
|
|
26499
|
+
tr: /(?:^|[\s:])(?:artık|yeniden|tekrar|yine)(?=[\s.,]|$)/iu
|
|
26500
|
+
};
|
|
26501
|
+
var FIXED_EXAMPLE = {
|
|
26502
|
+
en: "Drive: Scans of large drives now finish without timing out.",
|
|
26503
|
+
tr: "Drive: B\xFCy\xFCk s\xFCr\xFCc\xFClerde tarama art\u0131k zaman a\u015F\u0131m\u0131na u\u011Framadan tamamlan\u0131yor."
|
|
26504
|
+
};
|
|
26494
26505
|
function parseUpdateNotes(content, lang = "en") {
|
|
26495
26506
|
const words = UPDATE_SECTIONS[lang];
|
|
26496
26507
|
const lines2 = content.split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
|
|
@@ -26509,6 +26520,9 @@ function parseUpdateNotes(content, lang = "en") {
|
|
|
26509
26520
|
if (line.length > UPDATE_LINE_MAX || !UPDATE_LINE.test(line) || UPDATE_FORBIDDEN.test(line)) {
|
|
26510
26521
|
throw new Error(`${lang} summary line must read "<Area>: <sentence>." in at most ${UPDATE_LINE_MAX} characters, with no issue numbers, versions or commit prefixes: "${line}" \u2014 see ${SUMMARY_GUIDE}`);
|
|
26511
26522
|
}
|
|
26523
|
+
if (section === "fixed" && !FIXED_OUTCOME[lang].test(line)) {
|
|
26524
|
+
throw new Error(`${lang} summary: a "${words.fixed}" line states what works now, not the problem (e.g. "${FIXED_EXAMPLE[lang]}"): "${line}" \u2014 see ${SUMMARY_GUIDE}`);
|
|
26525
|
+
}
|
|
26512
26526
|
notes[section].push(line);
|
|
26513
26527
|
}
|
|
26514
26528
|
for (const key of seen) {
|
package/package.json
CHANGED