@mutmutco/kimi-plugin 4.1.8 → 4.1.10
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/.kimi-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/release/SKILL.md +29 -4
package/.kimi-plugin/plugin.json
CHANGED
package/package.json
CHANGED
package/skills/release/SKILL.md
CHANGED
|
@@ -186,12 +186,21 @@ direction is a gate. Read the rows.
|
|
|
186
186
|
Treating doctor's exit code as the gate halts a healthy train on cosmetic drift — or, worse, teaches an
|
|
187
187
|
operator to ignore doctor's exit code entirely.
|
|
188
188
|
|
|
189
|
+
**`mmi-cli devops release --apply` and `mmi-cli devops rcand --apply` now run an active npm-major preflight
|
|
190
|
+
before any branch/tag mutation (#5666).** They read the repo's expected CI npm from `.github/workflows/gate.yml`
|
|
191
|
+
(when the infra gate's exact node pin maps to a bundled npm, e.g. node 24.19.0 → npm 11.17.0) or, when
|
|
192
|
+
gate.yml only declares a floating node major with no bundled npm, from the publish workflow's explicit npm pin
|
|
193
|
+
(e.g. `npx --yes npm@11.17.0 pack` in `publish.yml`). Local `npm -v` must match that npm **major**; a
|
|
194
|
+
mismatch refuses `--apply` with an align-local-npm remedy — the same class of failure the fold-failure notes
|
|
195
|
+
below describe, but caught before a wasted apply.
|
|
196
|
+
|
|
189
197
|
**A local `npm ci` failure during the fold on a lockfile CI already accepted is an npm-major mismatch, not a
|
|
190
198
|
bad lockfile (#4578).** Before touching the lockfile, compare toolchains:
|
|
191
199
|
```bash
|
|
192
200
|
npm -v
|
|
193
201
|
gh api repos/{owner}/{repo}/actions/runs --jq '.workflow_runs[0].id' # or read the gate log's
|
|
194
202
|
# `node -v && npm -v` toolchain-preflight line (#3446) for the npm major CI ran with
|
|
203
|
+
# When gate.yml has no bundled npm pin, read the publish workflow npm pin instead (#5666).
|
|
195
204
|
```
|
|
196
205
|
A different npm MAJOR (e.g. local 12 vs. CI's 11) resolves the same lockfile differently and throws `Missing:
|
|
197
206
|
<pkg> from lock file` on a lockfile that is not actually broken. Align the local npm major
|
|
@@ -204,7 +213,8 @@ BEFORE inspecting package contents (deleted dir, malformed `package.json`, missi
|
|
|
204
213
|
```bash
|
|
205
214
|
npm -v
|
|
206
215
|
# green gate npm from the gate log's `node -v && npm -v` toolchain-preflight line (#3446),
|
|
207
|
-
#
|
|
216
|
+
# the exact node pin in `.github/workflows/gate.yml` (Hub infra gate: node 24.19.0 → npm 11.17.0),
|
|
217
|
+
# or the publish workflow npm pin when gate.yml has no bundled npm (#5666)
|
|
208
218
|
```
|
|
209
219
|
When local npm differs from the green gate (e.g. local npm 12 vs CI's 11.17.0), align local npm
|
|
210
220
|
(`npm install -g npm@<gate npm>`) and rerun the train — do not rewrite the publish surface for an
|
|
@@ -655,13 +665,28 @@ self-hosted Linux runner) — or on an operator machine with the **same OS and n
|
|
|
655
665
|
runner. Elsewhere (Windows, a clean Linux container with a different packer, a mismatched npm major) a
|
|
656
666
|
`tarball identity mismatch` can false-fail even when the published bytes match the tag: three different
|
|
657
667
|
SSRIs (registry / Windows pack / container pack) with content-identical unpacked trees is the expected
|
|
658
|
-
cross-environment shape, not a substituted artifact.
|
|
668
|
+
cross-environment shape for surfaces with no publish-time staged payload, not a substituted artifact.
|
|
669
|
+
Off the publish environment, either:
|
|
659
670
|
- fall back to an **unpacked-content** proof — download the registry tarball (`npm pack <pkg>@X.Y.Z`
|
|
660
671
|
from the registry, or `npm view … dist.tarball`), `npm pack` from the tag checkout, unpack both, and
|
|
661
|
-
|
|
672
|
+
compare the trees (do not alarm on SSRI alone). Hub host-plugin npm surfaces stage the canonical
|
|
673
|
+
`skills/` tree and declared hook-policy `scripts/` into the package at publish time via
|
|
674
|
+
`assembleDeclaredPayloads` (#5471); those paths are gitignored and absent from a plain tag checkout,
|
|
675
|
+
so a local `npm pack` without staging cannot reproduce them and an empty `diff -r` is an unreachable
|
|
676
|
+
bar (#5677), not evidence of substitution. For those surfaces, prove identity in two parts:
|
|
677
|
+
1. **Committed package content** — `diff -r` the unpacked trees while excluding each publish-time
|
|
678
|
+
staged path relative to the package root (for `@mutmutco/claude-plugin`:
|
|
679
|
+
`diff -r -x skills -x scripts …`; list all staged targets with
|
|
680
|
+
`node --input-type=module -e "import { generatedPayloadPaths } from './scripts/distribution-assembly.mjs'; console.log(generatedPayloadPaths().join('\\n'))"` and strip each surface's `assembly.rootPath` prefix). Empty diff ⇒ the committed package matches.
|
|
681
|
+
2. **Staged payload** — for each excluded path, compare the registry unpacked copy against the tag
|
|
682
|
+
checkout repo source named in that surface's `surfaces.json` assembly sync (`directories` sync:
|
|
683
|
+
`diff -r reg/package/skills skills/`; `files` sync: `cmp` each `include` entry against
|
|
684
|
+
`<sourcePath>/<name>`). Alternatively, run
|
|
685
|
+
`node --input-type=module -e "import { assembleDeclaredPayloads } from './scripts/distribution-assembly.mjs'; assembleDeclaredPayloads()"` on the tag checkout before the local `npm pack` so a plain `diff -r` compares the full publish payload.
|
|
686
|
+
Surfaces with no publish-time staged payload still use a plain `diff -r` (empty diff ⇒ identity OK), or
|
|
662
687
|
- skip the registry identity read with
|
|
663
688
|
`node scripts/release-distribution.mjs verify "X.Y.0" --skip-npm-view` and verify published content
|
|
664
|
-
by hand the same way.
|
|
689
|
+
by hand the same way (including the staged-payload split above when applicable).
|
|
665
690
|
Do not treat an off-runner SSRI mismatch as a broken release, and do not change how the runner publishes
|
|
666
691
|
to paper over a local packer difference.
|
|
667
692
|
|