Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,16 @@ permissions:
contents: read

jobs:
# The toolchain pins pnpm 11, which itself requires Node >= 22.13 (it loads
# node:sqlite), so build and test can only run on 22. Whether the *published
# CLI* honours engines.node is a separate question — see the smoke job.
# Build on the minimum supported LTS runtime. The smoke matrix also covers
# the current release line so forward-compatibility regressions surface early.
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
node-version: 24

# The enterprise Actions policy only permits GitHub-owned Marketplace
# actions. Corepack reads the pinned pnpm version from package.json.
Expand Down Expand Up @@ -61,28 +60,27 @@ jobs:
|| { echo "::error::$path missing from the published tarball"; exit 1; }
done

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: tarball
path: ${{ runner.temp }}/meshy-cli-*.tgz
retention-days: 1

# Installs the packed tarball the way a user would, on every Node version
# engines.node claims to support. This is what keeps that claim honest: the
# build toolchain cannot run on 20, but the shipped CLI must.
# Installs the packed tarball the way a user would on the minimum supported
# LTS runtime and the current Node release line.
smoke:
needs: check
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: [20, 22]
node: [24, 26]
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v8
with:
name: tarball

- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node }}

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
node-version: 24
registry-url: https://registry.npmjs.org

# Keep release compatible with the enterprise Actions allow-list while
Expand Down
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The flag surface is deliberately curated rather than a 1:1 mirror of the API: de

## Install

Requires Node 20+.
Requires Node 24+.

```bash
npm i -g meshy-cli # installs `meshy-cli` and `meshy`
Expand Down
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Official command-line interface for the Meshy AI API — text-to-3D, image-to-3D, text-to-motion, remesh, rigging, animate, retexture, 2D images, multi-color print, balance.",
"license": "MIT",
"type": "module",
"packageManager": "pnpm@11.18.0",
"packageManager": "pnpm@11.24.0",
"repository": {
"type": "git",
"url": "git+https://github.com/meshy-dev/meshy-cli.git"
Expand Down Expand Up @@ -40,7 +40,7 @@
"skills"
],
"engines": {
"node": ">=20"
"node": ">=24"
},
"scripts": {
"build": "tsc",
Expand All @@ -53,13 +53,13 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"commander": "^13.0.0",
"sharp": "^0.34.5",
"zod": "^3.23.8"
"commander": "^15.0.0",
"sharp": "^0.35.4",
"zod": "^4.5.2"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
"@types/node": "^24.13.3",
"tsx": "^4.23.12",
"typescript": "^7.0.2"
}
}
Loading