chore(root): add optional mise toolchain config - #1894
Conversation
Adds a checked-in mise.toml so contributors who use mise get both Node and pnpm provisioned on cd, without making mise a requirement for anyone else. The config is deliberately additive: Node resolves from .nvmrc via the idiomatic_version_file_enable_tools opt-in rather than a duplicate pin, and pnpm mirrors packageManager. CI and the nvm/Volta paths are untouched, so no toolchain source of truth moves. pnpm is the one pin mise has to duplicate, since mise does not read packageManager. check:workspace gains a "mise tool pins" check that no-ops without mise.toml and otherwise catches a stale pnpm pin, a node pin added to [tools], or a missing idiomatic-version-file opt-in — the last of which would silently leave mise users with no Node pin at all. mise.toml also puts the workspace node_modules/.bin on PATH and defines a single setup task; the pnpm scripts remain the documented interface.
|
@mmcc is attempting to deploy a commit to the Mux Team on Vercel. A member of the Team first needs to authorize it. |
✅ Deploy Preview for vjs10-site ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 286e914. Configure here.
| # mise is not required. `.node-version`/`.nvmrc` (Node) and `packageManager` | ||
| # (pnpm) stay the source of truth, so nvm, Volta, and CI never drift from this | ||
| # file. See "Using mise" in CONTRIBUTING.md. | ||
| min_version = "2025.1.0" |
There was a problem hiding this comment.
Incorrect mise min_version floor
Low Severity
min_version is set to 2025.1.0, but idiomatic_version_file_enable_tools only exists since mise 2025.4.6. Versions in between pass the floor, warn on an unknown field, and never get the loud failure this pin is meant to provide.
| min_version = "2025.1.0" | |
| min_version = "2025.4.6" |
Reviewed by Cursor Bugbot for commit 286e914. Configure here.
| } | ||
|
|
||
| // Without the opt-in, mise ignores the Node version files and pins no Node. | ||
| if (!/idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/.test(settings ?? '')) { |
There was a problem hiding this comment.
Settings check matches comments
Medium Severity
The idiomatic-version-file check matches the assignment anywhere in the [settings] body, including comments. Commenting out idiomatic_version_file_enable_tools = ["node"] still satisfies the regex, so check:workspace can pass while mise users get no Node pin.
| if (!/idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/.test(settings ?? '')) { | |
| if (!/^\s*idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/m.test(settings ?? '')) { |
Reviewed by Cursor Bugbot for commit 286e914. Configure here.


Adds a checked-in mise.toml so contributors who use mise get both Node and pnpm provisioned on cd, without making mise a requirement for anyone else.
The config is deliberately additive: Node resolves from .nvmrc via the idiomatic_version_file_enable_tools opt-in rather than a duplicate pin, and pnpm mirrors packageManager. CI and the nvm/Volta paths are untouched, so no toolchain source of truth moves.
pnpm is the one pin mise has to duplicate, since mise does not read packageManager. check:workspace gains a "mise tool pins" check that no-ops without mise.toml and otherwise catches a stale pnpm pin, a node pin added to [tools], or a missing idiomatic-version-file opt-in — the last of which would silently leave mise users with no Node pin at all.
mise.toml also puts the workspace node_modules/.bin on PATH and defines a single setup task; the pnpm scripts remain the documented interface.
Note
Low Risk
Contributor-only toolchain and docs; no runtime, CI, or application code changes.
Overview
Adds an optional mise path for contributors without replacing nvm/Volta or CI: a new root
mise.tomlpins pnpm to matchpackageManager, resolves Node from.nvmrc/.node-version(no duplicate Node pin in[tools]), prependsnode_modules/.bintoPATH, loads.env.local, and defines asetuptask (pnpm install+pnpm build:packages).CONTRIBUTING.md now lists mise alongside NVM (Volta removed from the prereq list) and documents trust/install/setup flow; personal overrides go in gitignored
mise.local.toml/mise.*.local.toml(added to.gitignore).pnpm check:workspacegains check 11 — mise tool pins: no-op ifmise.tomlis missing; otherwise warns when pnpm drifts frompackageManager, whennodeis pinned in[tools], or whenidiomatic_version_file_enable_toolsomits"node"(which would leave mise users without a Node pin).Reviewed by Cursor Bugbot for commit 286e914. Bugbot is set up for automated code reviews on this repo. Configure here.