Run the release command from a clean checkout of the latest reviewed origin/main.
Git and an authenticated gh-axi or gh are required:
pnpm release:cli --version 0.4.13 --dry-run
pnpm release:cli --version 0.4.13The dry run checks the starting revision, versions and remote refs without changing files, creating commits or pushing. The release command then:
- Creates
release/v0.4.13from the reviewed starting commit. - Bumps
package.jsonandpackages/tui/package.jsontogether and commits them. - Creates the annotated
v0.4.13tag on that version commit. - Atomically pushes the release branch and tag, without pushing
main. - Opens a version PR back to
main; merge it through the normal review process.
CI requires the tag, both committed source versions and mcode --version to agree.
It does not override the source version during a build. An existing tag or release
branch, a non-increasing version, uncommitted files, or a starting commit other
than the latest origin/main stops the command before version changes.
The tag starts the release workflow independently of the version PR. If a network
or PR-creation failure occurs, inspect the local and remote branch/tag before
retrying: the version commit and tag are retained for recovery. If both refs were
pushed but opening the PR failed, open that version PR manually. Never delete and
recreate an already distributed tag. Merge the version PR before starting the
next release so main carries the released version.
The workflow runs the full verification profile and secret scans, builds one
minimax-code-X.Y.Z.tar.gz npm installation package, and authenticates and installs
that same archive on Linux and macOS with Node 22.19.0, 24.2.0, 25 and 26. Each
installation checks the generated mcode launcher, native SQLite, ripgrep, and
the offline smoke/BYOK suites. Windows validation remains paused.
Only after every installation succeeds does CI create a GitHub Release with the
archive and its .sha256 checksum. Tags such as v0.4.13-rc.1 create prereleases.
Release creation starts as a draft; assets are uploaded before it becomes public.
Existing releases are never overwritten. If publication fails after draft
creation, inspect the draft and workflow artifacts before deciding whether to
finish publication manually or delete only the incomplete draft and rerun.
Never move an already distributed tag to different code.
To exercise this workflow without publication, dispatch CLI release on a
selected branch. An optional tag input must match the committed source version. A manual dispatch only builds and
validates Actions artifacts, even when the requested tag already exists.
PRs that change release tooling also run the build/install matrix using the
committed source version, without creating a tag or publishing a release.
To reproduce the packaging and installation checks locally, use a clean reviewed commit and keep output outside the repository:
export MCODE_RELEASE_TAG="v$(node -p 'require("./package.json").version')"
pnpm verify
node scripts/package-cli-release.mjs "$MCODE_RELEASE_TAG" /tmp/mcode-release
MCODE_RELEASE_ARCHIVE="/tmp/mcode-release/minimax-code-${MCODE_RELEASE_TAG#v}.tar.gz" pnpm verify --profile packageThe package profile validates installation of an existing archive; it does not
replace full source verification. The archive includes the compiled CLI, runtime
assets, licenses and a release.json source receipt. npm installs external runtime
dependencies, including native dependencies, for the user's platform. It does not
include Node.js and is not an offline bundle. See installation.
This workflow does not publish to the npm registry or change the official installer.
The current source target is MiniMax Code 0.4.12. Workspace and local-build manifests remain private: true to prevent accidental npm publication. A source release, npm package, and installer are separate artifacts with separate verification.
- Select a reviewed commit on
main. For shared-source updates, first complete the three-way process in Source synchronization. - Review every added, changed, and removed file. Confirm that
release/public-source.json, package licenses,LICENSE,NOTICE, and third-party notices match the selected tree. - Run
pnpm verifyfrom a clean checkout. Require successful final-revision Source verification and Release audit checks. - Dispatch
Node compatibilityandSource candidateon the selected revision. Match each run to the immutable commit SHA and wait for every required platform result. - Use temporary projects and synthetic inputs for any live-service checks. Record unavailable accounts or grants as NOT RUN. Confirm costs and upload scope before testing paid media, deployment, feedback, or diagnostics.
- Record the source commit, archive SHA-256, inventory digest, verification results, reviewer, and known limits. Keep scan reports, account data, and private review material outside the repository.
Before npm or installer distribution, separately validate the published package name and version, update behavior, native dependencies, installation scripts, and bundled license texts. Source verification does not cover those release channels.
The Source candidate workflow exports the selected commit without Git history, verifies its receipt, and scans both repository history and the extracted source. Linux and macOS runners authenticate the same archive, install from public npm into fresh stores, and run the archive verification profile.
Windows full validation is temporarily paused for Node compatibility and source candidates. Ordinary pull requests run a focused Windows source-verification contract, but candidate reports still cover only Linux and macOS; a successful candidate does not establish Windows acceptance. Restore the Windows compatibility/source-candidate matrices and the required report set in scripts/source-candidate.mjs together when those checks are reliable again.
After both platform jobs pass, the workflow creates a source-candidate-<full-SHA> artifact containing:
minimax-code-source.tar.gz- The archive receipt and SHA-256 file
candidate.jsonwith the revision and platform summary- Per-platform verification reports
The intermediate unverified-source-<full-SHA> artifact is not a release candidate. Candidate generation does not create a GitHub Release, publish to npm, or update an installer.
- Create a prerelease tag and release notes for the verified public commit.
- Attach the authenticated source archive and checksum. Do not attach a local
distdirectory or user profile as a cross-platform artifact. - State the source version, installation paths, included interfaces, known limits, and any live-service checks that were not run.
- Read back the tag, commit, archive digest, documentation links, and release notes after publication.
The initial CLI source snapshot was imported on 2026-09-18 at c59cf5377045aa1a3e699c242d089b73b7cdc2ad, on top of the existing MiniMax Code Desktop support history. The follow-up commit 4e2e7bb5f771e9c42b2edefb1046483819b9032f restored the Desktop image. The import kept the existing issue forms and Feishu support workflow, used README_ZH.md as the Chinese entry point, and excluded internal Git history.
release/extraction.json remains the shared-source baseline. Future updates arrive through reviewed synchronization PRs; the initial import is not repeated.