@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.
- package/.claude-plugin/plugin.json +1 -1
- package/cli/dist/main.cjs +16 -8
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/skills/release/SKILL.md +1 -1
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.
|
|
18097
|
-
tag: "v4.5.
|
|
18098
|
-
commit: "
|
|
18099
|
-
npm: "@mutmutco/cli@4.5.
|
|
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.
|
|
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.
|
|
18123
|
-
v3Target: "v4.5.
|
|
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
package/package.json
CHANGED
package/skills/release/SKILL.md
CHANGED
|
@@ -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
|
|