Repository navigation
build: commit mise.lock so mise-installed tools are checksum-verified - #137
Conversation
Pin min_version to 2026.11.1 (lockfile_version 4) and add mise.lock and mise.macos-x64.lock so tools installed by mise are verified against recorded checksums. Add a lock task that relocks with MISE_AUTO_ENV=false and locks mr-boxington without macos-x64. Refs #136
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Code Review
This pull request introduces auto-generated lockfiles (mise.lock and mise.macos-x64.lock) and updates mise.toml to specify a minimum required version of mise and add a new lock task. A critical issue was found in mise.toml where min_version is set to a non-existent future version ("2026.11.1"), which would block all mise executions; this should be corrected to "2024.11.1".
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryAdds tool lockfiles with recorded versions, download URLs, and checksums.
No actionable issues were found. Downloaded assets and checksum values were not verified at runtime. Reviews (1) · Last reviewed commit: "build: commit mise.lock so mise-installe..." · Reviewed by Greptile |
There was a problem hiding this comment.
cubic analysis
All reported issues were addressed across 3 files
Linked issue analysis
Linked issue: pleaseai/code-search#136: build: commit a mise.lock so mise-installed tools are checksum-verified
| Status | Acceptance criteria | Notes |
|---|---|---|
| ✅ | Lock every mise-installed tool with its artifact details | mise.lock records the configured tools, including checksums and URLs for downloadable artifacts. |
| ✅ | Add a lockfile for the macOS x64 configuration | mise.macos-x64.lock records mr-boxington through the cargo:mbx backend for Intel Macs. |
| ✅ | Require a mise version that supports the lockfile format | mise.toml sets min_version to 2026.11.1, the version identified as supporting format 4. |
Architecture diagram
sequenceDiagram
participant Dev as Developer
participant Mise as Mise CLI
participant Lock as Mise Lockfile
participant Registry as External Registries
participant CI as CI Workflow
Note over Dev,Mise: Lockfile Configuration
Dev->>Mise: mise install
Mise->>Lock: Read mise.lock (lockfile_version 4)
alt Lockfile exists and min_version satisfied
Mise->>Registry: Fetch tools using recorded checksums and URLs
Registry-->>Mise: Node, bun, mr-boxington, hk binaries
Mise->>Registry: Verify sha256 checksums
else No lockfile or stale
Mise->>Registry: Resolve tools fresh
Registry-->>Mise: Tool metadata and binaries
end
Note over Dev,Mise: Intel Mac Workflow
Dev->>Mise: mise run lock
Mise->>Mise: Set MISE_AUTO_ENV=false
Mise->>Lock: Lock node, bun, cargo:hk
Mise->>Lock: Lock mr-boxington (excludes macos-x64)
Mise->>Lock: Write mise.lock (no macos-x64 cargo:mbx alias)
Mise->>Lock: Write mise.macos-x64.lock (cargo:mbx version only)
Note over Mise,CI: CI Behavior
CI->>Mise: mise install with --locked flag
Mise->>Lock: Read locked versions and checksums
Mise->>Registry: Install from recorded URLs
Registry-->>Mise: Verified tools
Note over CI: Disabled tools: cargo:hk, mr-boxington via MISE_DISABLE_TOOLS
alt Old mise version (< 2026.11.1)
Mise->>Dev: Block execution (min_version not satisfied)
end
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
Merging this PR will not alter performance1 warning
Comparing |



Summary
Commit
mise.lockso mise-installed tools are verified against recorded checksums and URLs instead of being resolved fresh on every install.min_versionmoves to2026.11.1, the first mise release that writes and reads lockfile format 4.mise.lock(lockfile_version 4) for node 24.22.2, bun 1.3.14, cargo:hk 1.48.0, and mr-boxington 1.29.2.mise.macos-x64.lockfor Intel Macs, which build mbx from crates.io through thecargo:mbxalias inmise.macos-x64.toml. Only the version is recorded, the same layout as ci: adopt mbx (mr-boxington) build cache locally and in CI shunt#894.mise run locktask and setsmin_version = "2026.11.1"inmise.toml.Scope
packslip:github.com/jdx/mr-boxington) with checksums for linux x64/arm64 (gnu and musl), macos-arm64, and windows-x64. There is no darwin x86_64 release asset.rust-toolchain.toml(out of scope per the issue).Tradeoffs
mise run locktask. On an Intel Mac,.miserc.toml'sauto_envloadsmise.macos-x64.toml, so a plainmise lockwrites mr-boxington into the basemise.lockunder thecargo:mbxbackend with no checksums. The task relocks withMISE_AUTO_ENV=falseand locks mr-boxington without macos-x64. Regenerating from scratch with the task reproduces the committed lockfile, and running it again is a no-op.--locked.jdx/mise-actionv4.2.0 (used inci.ymlanddocs.yml) adds--lockedtomise installwhen the repo has a mise lockfile, so CI installs node and bun from the recorded URLs and checksums. cargo:hk and mr-boxington stay disabled in CI throughMISE_DISABLE_TOOLS.Blast radius
Anyone running
mise installnow gets the locked versions and checksums. Contributors on a mise older than 2026.11.1 are blocked by the newmin_version. CI behavior changes only through the automatic--locked.Verification
mise run lockon an Intel Mac (mise 2026.11.1) and got the committed content. A second run changed nothing.Related issue
Closes #136
Checklist
mise run test) — N/A, no code changemise run lint) — N/A, config and lockfiles onlymise run locktask is self-describingBREAKING CHANGE:note is includedSummary by cubic
Commits the mise lockfiles so mise-installed tools are verified against recorded checksums and URLs instead of being resolved fresh on each install. Closes #136.
mise.lockrecords checksums and URLs for node, bun, and mr-boxington, plus the version for the cargo-builthk.mise.macos-x64.lockfor Intel Macs, where mbx is built from crates.io through thecargo:mbxalias (version only).mise run locktask so plainmise lockon Intel Macs doesn't fold the macos-x64 alias into the base lockfile.min_versionto2026.11.1, the first mise release that writes and reads lockfile format 4.Migration
--lockedautomatically viajdx/mise-actionv4.2.0.2026.11.1are blocked by the newmin_version.Written for commit 97573ea. Summary will update on new commits.