@mutmutco/cli 4.0.6 → 4.0.8

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 +23 -7
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -8266,6 +8266,10 @@ var DECLARED_ENTRIES = [
8266
8266
  // #4118: Listening + systemd-active ≠ GitHub online after acquirejob 503. restart.conf cannot see
8267
8267
  // it; an Actions workflow on mmi-live cannot heal it when half the fleet is offline. Root cron.
8268
8268
  { name: "mmi-runner-online-reconcile (mmi-runner)", cadence: "*/5 * * * *", executor: "box cron.d", llm: "no", resolved: "declared", source: "/etc/cron.d/mmi-runner-online \u2192 /opt/mmi-control/runner-online-reconcile.sh; API-offline + _diag acquirejob, max 2 restarts/tick (verify: mmi-cli devops runtime box get mmi-runner --ssh)" },
8269
+ // #5292: a lane that holds a dispatched JOB but produces zero output past the budget honestly
8270
+ // reports "busy", so the online reconcile never fires and GitHub will not re-dispatch while the
8271
+ // run holds the assignment. This tick cancels + re-triggers those runs (max 1/tick, debounced).
8272
+ { name: "mmi-runner-jobwedge-reconcile (mmi-runner)", cadence: "*/5 * * * *", executor: "box cron.d", llm: "no", resolved: "declared", source: "/etc/cron.d/mmi-runner-jobwedge \u2192 /opt/mmi-control/runner-jobwedge-reconcile.sh; in_progress job silent past 10 min on our lanes \u2192 cancel + rerun, max 1 heal/tick (verify: mmi-cli devops runtime box get mmi-runner --ssh)" },
8269
8273
  // #3852: the runner /tmp sweep — daily inode hygiene (03:41 UTC), deliberately the one clutter path the
8270
8274
  // out-of-band disk-relief script must never touch. Verified installed 2026-08-18: the cron.d file and
8271
8275
  // flock line match scripts/runner-tmp-sweep.cron exactly.
@@ -10823,10 +10827,10 @@ var rollout_plan_default = {
10823
10827
  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)."
10824
10828
  },
10825
10829
  baseline: {
10826
- version: "4.0.6",
10827
- tag: "v4.0.6",
10828
- commit: "db8bfd71de55",
10829
- npm: "@mutmutco/cli@4.0.6"
10830
+ version: "4.0.8",
10831
+ tag: "v4.0.8",
10832
+ commit: "b08057bf6333",
10833
+ npm: "@mutmutco/cli@4.0.8"
10830
10834
  },
10831
10835
  exitCriterion: "fleet-n-of-n",
10832
10836
  hubOnlyShortcut: "forbidden",
@@ -10843,14 +10847,14 @@ var rollout_plan_default = {
10843
10847
  repo: "mutmutco/mmi-hub",
10844
10848
  role: "canary",
10845
10849
  schedule: "train",
10846
- v3Target: "v4.0.6"
10850
+ v3Target: "v4.0.8"
10847
10851
  }
10848
10852
  ],
10849
10853
  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.",
10850
10854
  rollback: {
10851
10855
  independent: true,
10852
- mechanism: "npm dist-tag latest -> 4.0.6 and redeploy the Hub Lambda from tag v4.0.6 (db8bfd71de55); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
10853
- v3Target: "v4.0.6 (@mutmutco/cli@4.0.6, tag commit db8bfd71de55 \u2014 last known-good release carrying the repo-index v4-only contract)"
10856
+ mechanism: "npm dist-tag latest -> 4.0.8 and redeploy the Hub Lambda from tag v4.0.8 (b08057bf6333); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
10857
+ v3Target: "v4.0.8 (@mutmutco/cli@4.0.8, tag commit b08057bf6333 \u2014 last known-good release carrying the repo-index v4-only contract)"
10854
10858
  }
10855
10859
  },
10856
10860
  {
@@ -37854,6 +37858,18 @@ pr.command("checks-wait <number>").description(`bounded wait for PR checks; skip
37854
37858
  if (result.status === "timeout" || result.status === "rate-limited") process.exitCode = PR_CHECKS_TIMEOUT_EXIT_CODE;
37855
37859
  });
37856
37860
  pr.command("land <number>").description("agent merge path (#1440): train probe \u2014 checks-wait \u2014 merge --auto \u2014 poll enqueued \u2014 development PRs only").option("--json", "machine-readable output").option("--repo <owner/repo>", "target repo (defaults to the PR repo)").option("--no-require-train", "skip train-authority preflight (not recommended for autonomous agents)").option("--force", "acknowledge and land past a remaining prunable/severe scratch housekeeping block (advisory kept plans/ never blocks, #3012) or a negated-closing-keyword (#3718) or ambiguous-cross-repo-closing (#4279) refusal").action(async (number, o) => {
37861
+ const refMatch = /^(?:([^/]+\/[^/]+))?#(\d+)$/.exec(number.trim());
37862
+ if (refMatch) {
37863
+ number = refMatch[2];
37864
+ if (refMatch[1]) {
37865
+ if (o.repo && o.repo !== refMatch[1]) {
37866
+ console.error(`pr land: --repo ${o.repo} conflicts with ref repo ${refMatch[1]}`);
37867
+ process.exitCode = 1;
37868
+ return;
37869
+ }
37870
+ o.repo = refMatch[1];
37871
+ }
37872
+ }
37857
37873
  const repoArgs = o.repo ? ["--repo", o.repo] : [];
37858
37874
  const startingPath = (await execFileP2("git", ["rev-parse", "--show-toplevel"], { timeout: GIT_TIMEOUT_MS }).catch(() => ({ stdout: "" }))).stdout.trim();
37859
37875
  assertPrMergeHousekeepingClean(startingPath || process.cwd(), "pr land", { force: o.force });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.0.6",
3
+ "version": "4.0.8",
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",