fix(mise): gate node + npm tools to macOS, manage uv as tracked tool#199
Merged
Conversation
Node 26 prebuilt binaries link against libatomic.so.1, which TrueNAS appliances lack and where apt is disabled. With node missing, every shell invocation emitted npm-resolution warnings for npm:pyright and npm:typescript-language-server. Gate those three entries to darwin so Linux hosts skip them cleanly. Also restore the previously-drifted `usage = "latest"` entry so `chezmoi apply` does not strip it on the next run. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adopt uv into the mise config so it stops emitting the "installed but not activated" warning. uv is also a prerequisite for the pipx backend falling back to uvx on hosts where pipx is unavailable (TrueNAS, plain Linux without a pipx install). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
|
| Status | Count |
|---|---|
| 🔍 Total | 128 |
| ✅ Successful | 122 |
| ⏳ Timeouts | 0 |
| 🔀 Redirected | 0 |
| 👻 Excluded | 5 |
| ❓ Unknown | 0 |
| 🚫 Errors | 1 |
Errors per input
Errors in exact_dot_claude/docs/prds/daily-catchup.PRD.md
- [509] https://date-fns.org/ | Failed: Network error: Unknown status code
Full Github Actions output
Please fix the broken links before merging.
3 tasks
laurigates
added a commit
that referenced
this pull request
May 10, 2026
## Summary - Rewrite the misleading comment above the Python Tools block. Previous comment claimed mise's pipx backend "automatically uses uvx if uv is installed", but mise only detects mise-managed uv — system-PATH uv is invisible to the auto-detection (see [jdx/mise#7477](jdx/mise#7477)). - Add `pipx.uvx = true` under `[settings]` to make the routing explicit and version-independent. ## Why PR #199 surfaced this when `mise install pipx:pre-commit` failed on a host where uv was on `\$PATH` but not mise-managed. The fallback silently tried `pipx`, which wasn't installed → install failed. After PR #199 added `uv = "latest"` as a mise-managed tool, the fallback worked — but the behavior is still implicit and would break again if uv ever stops being mise-managed. ## Test plan - [x] `mise settings get pipx.uvx` returns `true` after apply - [x] `mise install pipx:pre-commit` succeeds without `MISE_PIPX_UVX=true` env override - [ ] On macOS: confirm same behavior (no regression) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Lauri Gates <lgates@truenas.intra.lakuz.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
laurigates
added a commit
that referenced
this pull request
May 11, 2026
## Summary - Switch the stylua pre-commit hook from `id: stylua` (language: rust, builds from source via `cargo install`) to `id: stylua-github` (downloads a prebuilt release binary from the upstream repo). - Unblocks commits on minimal Linux hosts without a system C linker, while leaving macOS and standard CI runners unaffected. ## Why The default upstream hook tries to `cargo install stylua` on first use. That requires `cc`, which isn't present on minimal Linux hosts where `apt` is disabled (notably TrueNAS appliances). Result: **every commit fails on those hosts** — even commits that don't touch any Lua files — because pre-commit installs hook envs eagerly. Workaround in use until now was `SKIP=stylua git commit …` per commit (see #199). The upstream repo ships three variants at `v2.1.0`: | id | language | works without `cc`? | |----|----------|---------------------| | `stylua` | rust | ❌ (current) | | `stylua-system` | system | ✅, but needs stylua on `$PATH` | | `stylua-github` | python | ✅, downloads release binary | `stylua-github` keeps the workflow uniform across machines without requiring a per-host stylua install, matching the preference in #200. ## Test plan - [x] On TrueNAS host (no `cc`): `pre-commit clean && pre-commit run --all-files` → `StyLua (Github) ... Passed` - [x] Conventional-commit hook passes against the commit message - [ ] CI smoke (ubuntu-latest) passes on PR Fixes #200 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Lauri Gates <lgates@truenas.intra.lakuz.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
node,npm:pyright,npm:typescript-language-servertodarwinin the mise template — node 26 prebuilt binaries link againstlibatomic.so.1, which TrueNAS (and other minimal Linux systems where apt is disabled) lack. With node missing, every shell invocation emitted four mise warnings while it tried to resolve the npm-backed tools.usage = "latest"entry in the template sochezmoi applydoesn't strip it.uv = "latest"as a managed tool so it stops emitting "installed but not activated" warnings, and so thepipx:backend can fall back touvxon hosts without apipxbinary.Test plan
chezmoi apply --force ~/.config/mise/config.tomlsucceeds on this Linux boxzsh -istartup is silent (nomise WARNlines, notask@3.50.0 extract …)mise lsshowsuvtracked to the config (no longer orphan)mise installstill installs node + pyright + typescript-language-server cleanly (needs a Mac)Notes
task 3.50.0(go-task) was uninstalled separately during diagnosis — it had been installed via a one-offmise install taskand was reinstalling on every shell hook.cc); committed withSKIP=stylua. Tracking that as a separate issue.🤖 Generated with Claude Code