@mutmutco/claude-plugin 4.5.119 → 4.5.121

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mmi",
3
3
  "displayName": "MMI",
4
- "version": "4.5.119",
4
+ "version": "4.5.121",
5
5
  "mmiCompat": "4.x",
6
6
  "description": "MMI workflow skills and org gates delivery.",
7
7
  "author": {
package/cli/dist/main.cjs CHANGED
@@ -18093,10 +18093,10 @@ var rollout_plan_default = {
18093
18093
  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)."
18094
18094
  },
18095
18095
  baseline: {
18096
- version: "4.5.119",
18097
- tag: "v4.5.119",
18098
- commit: "1682b1bdb4b1",
18099
- npm: "@mutmutco/cli@4.5.119"
18096
+ version: "4.5.121",
18097
+ tag: "v4.5.121",
18098
+ commit: "e57eac54e543",
18099
+ npm: "@mutmutco/cli@4.5.121"
18100
18100
  },
18101
18101
  exitCriterion: "fleet-n-of-n",
18102
18102
  hubOnlyShortcut: "forbidden",
@@ -18113,14 +18113,14 @@ var rollout_plan_default = {
18113
18113
  repo: "mutmutco/mmi-hub",
18114
18114
  role: "canary",
18115
18115
  schedule: "train",
18116
- v3Target: "v4.5.119"
18116
+ v3Target: "v4.5.121"
18117
18117
  }
18118
18118
  ],
18119
18119
  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.",
18120
18120
  rollback: {
18121
18121
  independent: true,
18122
- mechanism: "npm dist-tag latest -> 4.5.119 and redeploy the Hub Lambda from tag v4.5.119 (1682b1bdb4b1); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
18123
- v3Target: "v4.5.119 (@mutmutco/cli@4.5.119, tag commit 1682b1bdb4b1 \u2014 last known-good release carrying the repo-index v4-only contract)"
18122
+ mechanism: "npm dist-tag latest -> 4.5.121 and redeploy the Hub Lambda from tag v4.5.121 (e57eac54e543); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
18123
+ v3Target: "v4.5.121 (@mutmutco/cli@4.5.121, tag commit e57eac54e543 \u2014 last known-good release carrying the repo-index v4-only contract)"
18124
18124
  }
18125
18125
  },
18126
18126
  {
@@ -52098,6 +52098,12 @@ function buildRunViewSpec(id, o) {
52098
52098
  if (o.exitStatus) args.push("--exit-status");
52099
52099
  return { program: "gh", args, timeoutMs: SINGLE_SHOT_TIMEOUT_MS };
52100
52100
  }
52101
+ var CREATED_RE = /^(?:(?:>=|<=|>|<)?\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2})?Z)?|\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2})?Z)?\.\.\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2})?Z)?)$/;
52102
+ function parseBrokerCreated(v) {
52103
+ if (v === void 0) return void 0;
52104
+ if (!CREATED_RE.test(v)) throw new Error(`--created must be a GitHub created filter like ">=2026-10-11T00:30:00Z" (got ${JSON.stringify(v)})`);
52105
+ return v;
52106
+ }
52101
52107
  function buildRunListSpec(o) {
52102
52108
  const args = withJson(withRepo(["run", "list"], parseBrokerRepo(o.repo, "--repo")), parseBrokerJsonFields(o.json), o.json);
52103
52109
  const workflow = parseBrokerWorkflow(o.workflow);
@@ -52106,6 +52112,8 @@ function buildRunListSpec(o) {
52106
52112
  if (branch) args.push("--branch", branch);
52107
52113
  const status = parseBrokerRunStatus(o.status);
52108
52114
  if (status) args.push("--status", status);
52115
+ const created = parseBrokerCreated(o.created);
52116
+ if (created) args.push("--created", created);
52109
52117
  if (o.limit !== void 0) args.push("--limit", String(parseBrokerInt(o.limit, "--limit", 1, 100)));
52110
52118
  return { program: "gh", args, timeoutMs: SINGLE_SHOT_TIMEOUT_MS };
52111
52119
  }
@@ -52303,7 +52311,7 @@ function registerAppReadBrokerCommands(program3, resolveRepo2, overrides) {
52303
52311
  }
52304
52312
  await dispatchGh(spec, "read run view");
52305
52313
  });
52306
- run.command("list").description("list workflow runs (workflow/branch/status/limit/json; formatters refused)").option("--repo <owner/repo>", "target repo (defaults to the current repo)", repoOpt).option("--json [fields]", "machine-readable output (comma-separated gh fields)", jsonOpt).option("--workflow <name>", "filter by workflow name or file", workflowOpt).option("--branch <name>", "filter by branch", branchOpt).option("--status <status>", "filter by run status", runStatusOpt).option("--limit <n>", "maximum runs to fetch (1-100)", intOpt("--limit", 1, 100)).action(async (o) => {
52314
+ run.command("list").description("list workflow runs (workflow/branch/status/created/limit/json; formatters refused)").option("--repo <owner/repo>", "target repo (defaults to the current repo)", repoOpt).option("--json [fields]", "machine-readable output (comma-separated gh fields)", jsonOpt).option("--workflow <name>", "filter by workflow name or file", workflowOpt).option("--branch <name>", "filter by branch", branchOpt).option("--status <status>", "filter by run status", runStatusOpt).option("--created <filter>", 'only runs created in this window, e.g. ">=2026-10-11T00:30:00Z" (#8096)', (v) => parseBrokerCreated(v)).option("--limit <n>", "maximum runs to fetch (1-100)", intOpt("--limit", 1, 100)).action(async (o) => {
52307
52315
  let spec;
52308
52316
  try {
52309
52317
  spec = buildRunListSpec(o);
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.5.119",
3
+ "version": "4.5.121",
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/claude-plugin",
3
- "version": "4.5.119",
3
+ "version": "4.5.121",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -90,7 +90,7 @@ Read the saved result, never the exit code (exit `1` = a follow-up failed after
90
90
 
91
91
  Then verify Latest with this bounded one-row read; require `isLatest: true` and `tagName` equal to the resolved tag: `gh release list --repo {owner}/{repo} --limit 1 --json tagName,isLatest,publishedAt`.
92
92
 
93
- For the independent run recheck, run `gh run list --repo {owner}/{repo} --limit 100 --json databaseId,headSha,workflowName,status,conclusion,url > .jerv/tmp/release-runs.json`, then filter locally by the exact SHA from the saved receipt with `node -e 'const rows = require("./.jerv/tmp/release-runs.json"); const sha = process.argv[1]; const matches = rows.filter((run) => run.headSha === sha); if (rows.length >= 100 || !matches.length) throw new Error("release run set is incomplete or absent"); console.log(JSON.stringify(matches, null, 2));' "<release-sha>"`.
93
+ For the independent run recheck, scope the read to the release window, so a busy repo's unrelated runs cannot fill the cap: note the UTC instant you started `--apply` (`date -u +%Y-%m-%dT%H:%M:%SZ`), then run `gh run list --repo {owner}/{repo} --created ">=<apply-start-utc>" --limit 100 --json databaseId,headSha,workflowName,status,conclusion,url > .jerv/tmp/release-runs.json`, then filter locally by the exact SHA from the saved receipt with `node -e 'const rows = require("./.jerv/tmp/release-runs.json"); const sha = process.argv[1]; const matches = rows.filter((run) => run.headSha === sha); if (rows.length >= 100 || !matches.length) throw new Error("release run set is incomplete or absent"); console.log(JSON.stringify(matches, null, 2));' "<release-sha>"`.
94
94
 
95
95
  Do not use the raw `releases/latest` API route, a `--jq` formatter, or `gh run list --commit`; if the bounded list reaches 100 rows or has no SHA match, the run set is unverified and must not be called green.
96
96