@mutmutco/claude-plugin 4.5.213 → 4.5.215
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 +13 -11
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/skills/board/SKILL.md +1 -1
package/cli/dist/main.cjs
CHANGED
|
@@ -27030,10 +27030,10 @@ var rollout_plan_default = {
|
|
|
27030
27030
|
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)."
|
|
27031
27031
|
},
|
|
27032
27032
|
baseline: {
|
|
27033
|
-
version: "4.5.
|
|
27034
|
-
tag: "v4.5.
|
|
27035
|
-
commit: "
|
|
27036
|
-
npm: "@mutmutco/cli@4.5.
|
|
27033
|
+
version: "4.5.215",
|
|
27034
|
+
tag: "v4.5.215",
|
|
27035
|
+
commit: "9e1bef2d6b0c",
|
|
27036
|
+
npm: "@mutmutco/cli@4.5.215"
|
|
27037
27037
|
},
|
|
27038
27038
|
exitCriterion: "fleet-n-of-n",
|
|
27039
27039
|
hubOnlyShortcut: "forbidden",
|
|
@@ -27050,14 +27050,14 @@ var rollout_plan_default = {
|
|
|
27050
27050
|
repo: "mutmutco/mmi-hub",
|
|
27051
27051
|
role: "canary",
|
|
27052
27052
|
schedule: "train",
|
|
27053
|
-
v3Target: "v4.5.
|
|
27053
|
+
v3Target: "v4.5.215"
|
|
27054
27054
|
}
|
|
27055
27055
|
],
|
|
27056
27056
|
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.",
|
|
27057
27057
|
rollback: {
|
|
27058
27058
|
independent: true,
|
|
27059
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
27060
|
-
v3Target: "v4.5.
|
|
27059
|
+
mechanism: "npm dist-tag latest -> 4.5.215 and redeploy the Hub Lambda from tag v4.5.215 (9e1bef2d6b0c); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
27060
|
+
v3Target: "v4.5.215 (@mutmutco/cli@4.5.215, tag commit 9e1bef2d6b0c \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
27061
27061
|
}
|
|
27062
27062
|
},
|
|
27063
27063
|
{
|
|
@@ -31609,8 +31609,10 @@ var import_node_path28 = require("node:path");
|
|
|
31609
31609
|
|
|
31610
31610
|
// ../shared/runner-fallback.ts
|
|
31611
31611
|
var HOSTED_RUNNER_LABEL_RE = /\b(?:ubuntu|windows|macos)-(?:latest|\d[\w.-]*)\b/i;
|
|
31612
|
+
var STANDARD_HOSTED_LABEL_RE = /^(?:ubuntu-(?:latest|24\.04|22\.04|24\.04-arm|22\.04-arm)|windows-(?:latest|2025|2022|11-arm)|macos-(?:latest|\d+|\d+-intel))$/i;
|
|
31612
31613
|
function classifyRunnerCost(selector) {
|
|
31613
31614
|
const raw = selector.replace(/\s+#.*$/gm, "").trim();
|
|
31615
|
+
if (STANDARD_HOSTED_LABEL_RE.test(raw.replace(/^(['"])(.*)\1$/, "$2"))) return "standard-hosted";
|
|
31614
31616
|
if (HOSTED_RUNNER_LABEL_RE.test(raw)) return "hosted";
|
|
31615
31617
|
const json = /^\$\{\{\s*fromJSON\('([^']+)'\)\s*\}\}$/.exec(raw);
|
|
31616
31618
|
if (json) {
|
|
@@ -31860,8 +31862,8 @@ async function assertActionsJobsCanStart(deps, targetRepo2) {
|
|
|
31860
31862
|
throw new Error("release refused (#8911): workflow source inventory unreadable; " + detail + ". Resolve this source read before tagging.");
|
|
31861
31863
|
}
|
|
31862
31864
|
const unresolved = classifyRunnerWorkflows(files).filter((f) => f.cost !== "self-hosted" && f.cost !== "standard-hosted");
|
|
31863
|
-
if (unresolved.length) throw new Error("release refused (#8911): paid or unresolved runner path(s): " + unresolved.map((f) => f.repo + "/" + f.path + ":" + f.job).join(", ") + ".
|
|
31864
|
-
process.stderr.write("actions preflight: " + targetRepo2 + " source selectors are self-hosted or
|
|
31865
|
+
if (unresolved.length) throw new Error("release refused (#8911): paid or unresolved runner path(s): " + unresolved.map((f) => f.repo + "/" + f.path + ":" + f.job).join(", ") + ". Standard included GitHub-hosted labels are allowed (#8977, Jerv-Hub#2459); only larger/paid runners and unresolved selectors/callees are refused. Resolve them before tagging; no paid capacity probe is permitted.");
|
|
31866
|
+
process.stderr.write("actions preflight: " + targetRepo2 + " source selectors are self-hosted or standard included GitHub-hosted (#8977); no canary dispatch; the org spending limit guards over-allowance spend (unprovable from source); access/isolation/execution unproven (#8958)\n");
|
|
31865
31867
|
}
|
|
31866
31868
|
|
|
31867
31869
|
// src/train-apply-recovery.ts
|
|
@@ -38029,8 +38031,8 @@ var SHARED_ACTION_PINS = [
|
|
|
38029
38031
|
function auditRunnerFallbacks(repo, files, closure) {
|
|
38030
38032
|
return classifyRunnerWorkflows(closure ?? files.map((file) => ({ ...file, repo }))).map((f) => ({
|
|
38031
38033
|
ok: f.cost === "self-hosted" || f.cost === "standard-hosted",
|
|
38032
|
-
label: f.cost === "standard-hosted" ? `runner uses approved standard-hosted source (#8912/#8958): ${f.repo}/${f.path}:${f.job}` : `runner is self-hosted only (#8911): ${f.repo}/${f.path}:${f.job}`,
|
|
38033
|
-
detail: f.callee ? "unknown callee runner policy; source must be read at its referenced revision" : f.cost === "hosted" ? "
|
|
38034
|
+
label: f.cost === "standard-hosted" ? `runner uses approved standard-hosted source (#8912/#8958/#8977): ${f.repo}/${f.path}:${f.job}` : `runner is self-hosted only (#8911): ${f.repo}/${f.path}:${f.job}`,
|
|
38035
|
+
detail: f.callee ? "unknown callee runner policy; source must be read at its referenced revision" : f.cost === "hosted" ? "larger/paid GitHub-hosted runner is forbidden; only standard included GitHub-hosted labels are allowed (#8977, Jerv-Hub#2459)" : f.cost === "unknown" ? "unknown runner selector; source unresolved" : f.cost === "standard-hosted" ? "standard GitHub-hosted labels within included Enterprise minutes only (#8977, Jerv-Hub#2459); the org spending limit guards over-allowance spend (unprovable from source); runner access and isolation not established" : "self-hosted selection only; runner access and isolation not established",
|
|
38034
38036
|
remediation: f.cost === "hosted" || f.cost === "unknown" ? "Resolve source reads and unsupported selectors/callees; preserve checks and artifacts. See gh-runner-runbook.md." : void 0
|
|
38035
38037
|
}));
|
|
38036
38038
|
}
|
package/cli/package.json
CHANGED
package/package.json
CHANGED
package/skills/board/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ accepts an incomplete board. The CLI partitions rows into **Yours**, **Free to c
|
|
|
21
21
|
stamps (4 hours without work) hold nothing. Partition rules, stamp details and `--out` rationale:
|
|
22
22
|
[reference.md](reference.md).
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**Under the App pool, never type raw `gh` for a read** (`gh issue list/view --jq`, `gh run view --jq`, `gh api -q` all bounce). Use `MMI_ACTOR=app mmi-cli devops read issue view <n> --repo <owner/repo> --json <fields>` (or `issue list`, `pr view`, `run view`); `--jq '<expr>'` on that typed read filters locally. Filter in a pipe or save output (`>`, `2>&1`, `--out`) under this worktree's `.jerv/tmp/` (`mkdir -p .jerv/tmp` first), never `../` or a sibling path: the workspace output guard refuses those.
|
|
25
25
|
|
|
26
26
|
## Step 2 — render it
|
|
27
27
|
|