@mutmutco/cursor-plugin 4.1.4 → 4.1.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mmi",
3
- "version": "4.1.4",
3
+ "version": "4.1.5",
4
4
  "mmiCompat": "4.x",
5
5
  "description": "MMI workflow skills and organisation gates for Cursor.",
6
6
  "author": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cursor-plugin",
3
- "version": "4.1.4",
3
+ "version": "4.1.5",
4
4
  "description": "MMI workflow skills and organisation gates for Cursor.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -23,6 +23,7 @@ name: gate
23
23
  # main on trunk). `main` is ALWAYS included in the job `if:` below so a required-
24
24
  # checks ruleset on main cannot be silently skipped by a future bootstrap (#4113).
25
25
  # GATE_BUDGET_SHA is rendered by the CLI from its blessed run-with-budget pin — not an operator knob.
26
+ # GATE_RUNNER_SHA pins the org runner-checkout / runner-node-toolchain actions (#5610).
26
27
  # Estate policy 2026-08-23: GitHub-hosted Windows (`windows-latest` / windows-*) is forbidden org-wide.
27
28
  # Do not add a windows-compat (or any other) job that runs-on GH-hosted Windows. Linux self-hosted
28
29
  # (mmi-live / mmi-heavy) is the only CI merge gate. Rare Windows proof stays on the owner's machine or
@@ -58,7 +59,9 @@ jobs:
58
59
  defaults:
59
60
  run: { working-directory: {{GATE_WORKDIR}} }
60
61
  steps:
61
- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
62
+ - uses: mutmutco/MMI-Hub/.github/actions/runner-checkout@{{GATE_RUNNER_SHA}}
63
+ with:
64
+ lockfile-path: {{GATE_CACHE_DEP_PATH}}
62
65
  # #5427: per-job npm cache under $RUNNER_TEMP — never the shared ~/.npm. Twelve mmi-live lanes
63
66
  # share the gha-runner home; npm hardlinks from that cache into node_modules, so one job's
64
67
  # `npm ci` can make another job's vitest/dist/workers/forks.js vanish mid-suite (Cannot find
@@ -91,21 +94,17 @@ jobs:
91
94
  exit 1
92
95
  fi
93
96
  - if: ${{ '{{GATE_RUNTIME}}' == 'node' }}
94
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
95
- with: { node-version: 24, cache: npm, cache-dependency-path: {{GATE_CACHE_DEP_PATH}} }
97
+ uses: mutmutco/MMI-Hub/.github/actions/runner-node-toolchain@{{GATE_RUNNER_SHA}}
98
+ with:
99
+ node-version: 24
100
+ cache: npm
101
+ cache-dependency-path: {{GATE_CACHE_DEP_PATH}}
96
102
  - if: ${{ '{{GATE_RUNTIME}}' == 'python' }}
97
103
  uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
98
104
  with: { python-version: '{{GATE_PY_VERSION}}' }
99
- # MMI-Hub#3446: assert the runtime toolchain is on PATH BEFORE the install step. A runner whose
100
- # node/npm (or python) is missing, or whose setup step raced, fails `{{GATE_INSTALL_CMD}}` with a
101
- # bare `command not found` (exit 127) that reads like a broken diff and abandons a correct PR in an
102
- # autonomous merge loop. This names the RUNNER instead — a distinguishable infra failure that
103
- # `mmi-cli devops pr checks-wait` classifies as rerunnable (title `CI runner toolchain`), mirroring the
104
- # disk (#3366) and browser (#808) preflights. No test ran; the diff is not implicated.
105
- - name: Toolchain preflight
106
- if: ${{ '{{GATE_RUNTIME}}' == 'node' }}
107
- run: |
108
- node -v && npm -v || { echo "::error title=CI runner toolchain::RUNNER NOT PROVISIONED — node/npm not on PATH after setup-node. This is the runner, not your diff; no install or test ran. Re-run the job (a fresh lane usually clears it); if it persists the mmi-runner node toolchain needs attention (docs/Guides/gh-runner-runbook.md in MMI-Hub)."; exit 1; }
105
+ # MMI-Hub#3446: assert the runtime toolchain is on PATH BEFORE the install step. Node uses the
106
+ # runner-node-toolchain composite above (setup-node + preflight in one action, #5610). Python
107
+ # keeps the inline preflight below.
109
108
  - name: Toolchain preflight
110
109
  if: ${{ '{{GATE_RUNTIME}}' == 'python' }}
111
110
  run: |
@@ -182,6 +182,19 @@ A different npm MAJOR (e.g. local 12 vs. CI's 11) resolves the same lockfile dif
182
182
  <pkg> from lock file` on a lockfile that is not actually broken. Align the local npm major
183
183
  (`npm install -g npm@<CI major>`) and re-run `npm ci` before rewriting or regenerating the lockfile.
184
184
 
185
+ **A pre-tag `npm publish --dry-run` failure whose stack trace is inside npm internals — e.g.
186
+ libnpmpublish cannot find its declared sigstore dependency (`MODULE_NOT_FOUND`) — is toolchain
187
+ corruption / an npm-major mismatch, not a malformed publish surface (#5616).** Compare toolchains
188
+ BEFORE inspecting package contents (deleted dir, malformed `package.json`, missing `files`):
189
+ ```bash
190
+ npm -v
191
+ # green gate npm from the gate log's `node -v && npm -v` toolchain-preflight line (#3446),
192
+ # or the exact node pin in `.github/workflows/gate.yml` (Hub infra gate: node 24.19.0 → npm 11.17.0)
193
+ ```
194
+ When local npm differs from the green gate (e.g. local npm 12 vs CI's 11.17.0), align local npm
195
+ (`npm install -g npm@<gate npm>`) and rerun the train — do not rewrite the publish surface for an
196
+ npm-internal missing module.
197
+
185
198
  **A `npm ci was killed (signal SIGTERM)` failure during the fold is a cold npm cache, not a lockfile or
186
199
  toolchain problem (#4841).** The signature is the kill, not error text: no `Missing:` line, no lockfile
187
200
  complaint at all — the fold's child-process budget expired while a cold cache installed the full tree.