Upstream diff: caffeinelabs/mops cli-v2.16.1 → cli-v2.19.0
Commit: be449cbeaf8b
To sync: create branch chore/sync-upstream-mops-cli-v2.19.0, follow the
Upstream Sync Strategy
in CLAUDE.md, run npm run validate, and open a PR that closes this issue.
Before applying: check .claude/upstream.md for icskills-owned sections.
Do NOT overwrite those sections from upstream. Also check whether any owned
section is now covered by the upstream changes — if so, drop the icskills copy
and remove it from the owned list to avoid duplicating content.
mops-cli ← upstream mops-cli
SKILL.md
Show diff (- old upstream, + new upstream)
45a46,51
>
> # Opt-in Wasm optimization (Binaryen wasm-opt) for build + bench
> [optimize]
> # level = "O3" # default
> # keep-names = true # default
> # wasm-opt pin: [toolchain] wasm-opt = "131" (auto-pinned to latest if missing)
62c68
< 1. `[moc].args` — global, all commands (check, build, test, etc.)
---
> 1. `[moc].args` — global, all commands (check, build, test, bench, etc.)
66c72
< 5. CLI `-- <flags>` — one-off overrides
---
> 5. CLI `-- <flags>` — one-off overrides; supported by `mops check`, `mops build`, `mops check-stable`, `mops generate`, `mops migrate`, `mops test`, and `mops bench`
73a80,81
> mops install --lock update # regenerate a stale/corrupt mops.lock
> mops install --lock check # fail if lockfile is missing or stale (CI)
76c84,86
< Run after cloning or after manual `mops.toml` edits. Updates `mops.lock`. In CI, uses `--lock check` by default (fails if lockfile is stale).
---
> Run after cloning or after manual `mops.toml` edits. Updates `mops.lock` by default.
>
> When the `CI` env var is set and `--lock` is omitted, defaults to `--lock check` (deprecated — pass `--lock check` explicitly; auto-detection will be removed in v3). A stale lock fails with a hint to run `mops install --lock update`.
86c96
< Updates `mops.toml` and `mops.lock`.
---
> Updates `mops.toml` and `mops.lock` (even when `CI` is set).
114a125,126
> With `[optimize]` in `mops.toml`, runs `wasm-opt` after candid metadata (default `-O3 -g`). Pin Binaryen with `mops toolchain use wasm-opt 131` (or let auto-pin write latest on first build). Soft-fails to unoptimized Wasm on error. Pass `--no-optimize` (on `build` or `bench`) to skip the pass for a single run without editing `mops.toml`.
>
143a156
> mops toolchain use wasm-opt 131 # Binaryen for [optimize] (or `latest`)
145a159,161
> mops toolchain info <tool> # show release info (latest, pinned, history)
> mops toolchain info <tool> --versions # list recent stable releases, newest first
> mops toolchain info <tool> --versions --all # full stable history (cache warming)
149c165
< **Agent note**: `toolchain use <tool>` without a version opens an interactive picker — do not use in scripts or agents. Always pass a version or `latest`. `toolchain update` only works when the tool already has a `[toolchain]` entry.
---
> **Agent note**: `toolchain use <tool>` without a version opens an interactive picker — do not use in scripts or agents. Always pass a version or `latest`. `toolchain update` only works when the tool already has a `[toolchain]` entry. `toolchain info <tool> --versions` works without `mops.toml` (first GitHub page by default; pass `--all` for full history).
193a210
> mops test -- -Werror # pass extra moc flags
196a214,226
>
> ### `mops bench`
>
> Benchmarks live in `bench/*.bench.mo`:
>
> ```bash
> mops bench # run all benchmarks
> mops bench my-bench # filter by name
> mops bench --gc incremental # select GC
> mops bench --save # save results to .bench/<name>.json
> mops bench --compare # compare with saved results
> mops bench -- -Werror # pass extra moc flags
> ```
Upstream diff:
caffeinelabs/mopscli-v2.16.1→cli-v2.19.0Commit:
be449cbeaf8bTo sync: create branch
chore/sync-upstream-mops-cli-v2.19.0, follow theUpstream Sync Strategy
in CLAUDE.md, run
npm run validate, and open a PR that closes this issue.Before applying: check
.claude/upstream.mdfor icskills-owned sections.Do NOT overwrite those sections from upstream. Also check whether any owned
section is now covered by the upstream changes — if so, drop the icskills copy
and remove it from the owned list to avoid duplicating content.
mops-cli← upstreammops-cliSKILL.mdShow diff (- old upstream, + new upstream)