@mutmutco/cli 4.3.4 → 4.3.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/main.cjs +39 -8
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -15375,10 +15375,10 @@ var rollout_plan_default = {
15375
15375
  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)."
15376
15376
  },
15377
15377
  baseline: {
15378
- version: "4.3.4",
15379
- tag: "v4.3.4",
15380
- commit: "cd7d0dd9cc3a",
15381
- npm: "@mutmutco/cli@4.3.4"
15378
+ version: "4.3.5",
15379
+ tag: "v4.3.5",
15380
+ commit: "125c3bf83846",
15381
+ npm: "@mutmutco/cli@4.3.5"
15382
15382
  },
15383
15383
  exitCriterion: "fleet-n-of-n",
15384
15384
  hubOnlyShortcut: "forbidden",
@@ -15395,14 +15395,14 @@ var rollout_plan_default = {
15395
15395
  repo: "mutmutco/mmi-hub",
15396
15396
  role: "canary",
15397
15397
  schedule: "train",
15398
- v3Target: "v4.3.4"
15398
+ v3Target: "v4.3.5"
15399
15399
  }
15400
15400
  ],
15401
15401
  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.",
15402
15402
  rollback: {
15403
15403
  independent: true,
15404
- mechanism: "npm dist-tag latest -> 4.3.4 and redeploy the Hub Lambda from tag v4.3.4 (cd7d0dd9cc3a); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15405
- v3Target: "v4.3.4 (@mutmutco/cli@4.3.4, tag commit cd7d0dd9cc3a \u2014 last known-good release carrying the repo-index v4-only contract)"
15404
+ mechanism: "npm dist-tag latest -> 4.3.5 and redeploy the Hub Lambda from tag v4.3.5 (125c3bf83846); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15405
+ v3Target: "v4.3.5 (@mutmutco/cli@4.3.5, tag commit 125c3bf83846 \u2014 last known-good release carrying the repo-index v4-only contract)"
15406
15406
  }
15407
15407
  },
15408
15408
  {
@@ -19902,6 +19902,29 @@ async function startReleaseLedger(ledger, anchors, opts = {}) {
19902
19902
  return { ok: false, error: e instanceof Error ? e.message : String(e) };
19903
19903
  }
19904
19904
  }
19905
+ function alignmentPrNumbers(note) {
19906
+ return [...new Set([...(note ?? "").matchAll(/\/pull\/(\d+)/g)].map((m) => Number.parseInt(m[1], 10)))];
19907
+ }
19908
+ async function alignmentLegClosedLive(deps, prior) {
19909
+ const leg = prior.phases.alignment;
19910
+ if (leg.state !== "pending") return void 0;
19911
+ const numbers = alignmentPrNumbers(leg.note);
19912
+ if (numbers.length === 0) return void 0;
19913
+ for (const n of numbers) {
19914
+ let state = "";
19915
+ try {
19916
+ state = JSON.parse(await deps.run("gh", ["pr", "view", String(n), "--repo", prior.repo, "--json", "state"])).state;
19917
+ } catch {
19918
+ return void 0;
19919
+ }
19920
+ if (state !== "MERGED") return void 0;
19921
+ }
19922
+ return {
19923
+ state: "complete",
19924
+ note: `alignment: already-merged \u2014 alignment PR ${numbers.map((n) => `#${n}`).join(", ")} merged on GitHub after the train returned; closed live at the next release's pre-flight (#6061)`,
19925
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
19926
+ };
19927
+ }
19905
19928
  async function beginReleaseLedger(deps, cwd, targetTag) {
19906
19929
  let path2;
19907
19930
  try {
@@ -19924,7 +19947,15 @@ async function beginReleaseLedger(deps, cwd, targetTag) {
19924
19947
  return { ok: false, error: `the active release ledger at ${path2} is unreadable (${e instanceof Error ? e.message : String(e)}) \u2014 resolve it by hand before starting a release (#5987)` };
19925
19948
  }
19926
19949
  if (targetTag && prior.tag === targetTag) return { ok: true };
19927
- const derived = deriveReleasePhaseStatus(prior);
19950
+ let derived = deriveReleasePhaseStatus(prior);
19951
+ if (derived.phaseStatus === "phases-pending" && derived.legs.every((l) => l.state !== "pending" || l.phase === "alignment")) {
19952
+ const closed = await alignmentLegClosedLive(deps, prior);
19953
+ if (closed) {
19954
+ prior = { ...prior, phases: { ...prior.phases, alignment: closed }, updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
19955
+ atomicWriteJson(path2, prior);
19956
+ derived = deriveReleasePhaseStatus(prior);
19957
+ }
19958
+ }
19928
19959
  if (derived.phaseStatus !== "phases-green") {
19929
19960
  const open2 = derived.legs.filter((l) => l.state === "pending" || l.state === "failed");
19930
19961
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.3.4",
3
+ "version": "4.3.5",
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",