From e864d47eca98057890b356fc500f0cab05dc44f5 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Mon, 21 Sep 2026 14:37:21 +0200 Subject: Mark fix-mason-installer-deps tasks done, sync specs, archive change Manual verification (nix flake check, home-manager switch, Mason reinstall) confirmed on a Nix-capable host. Synced the new editor-toolchain capability into main specs and archived the change. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn --- .../proposal.md | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 openspec/changes/archive/2026-09-21-fix-mason-installer-deps/proposal.md (limited to 'openspec/changes/archive/2026-09-21-fix-mason-installer-deps/proposal.md') diff --git a/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/proposal.md b/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/proposal.md new file mode 100644 index 0000000..5734f55 --- /dev/null +++ b/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/proposal.md @@ -0,0 +1,39 @@ +## Why + +`mason.nvim` (managed by the externally-owned, Stow-linked Neovim dotfiles config) +fails to install several LSP/tooling packages on this flake's Home Manager profile: +`pyright`, `bash-language-server`, `yaml-language-server`, +`typescript-language-server`, `css-lsp`, and `html-lsp` fail because `npm` is not on +`PATH`; `debugpy` fails because no `python3`/`python` is on `PATH`; `terraform-ls` +fails because `unzip` is not on `PATH`. `programs.neovim.withPython3 = true` only +wires up Neovim's Python *provider* (pynvim) and does not put a `python3` binary on +`PATH`, so it does not cover this. `js-debug-adapter` and `lua-language-server` +already install successfully and need no change. + +## What Changes + +- Provision `nodejs` (for `npm`), `python3`, and `unzip` on `PATH` via the shared + Home Manager profile, so `mason.nvim`'s installers can find the interpreters/tools + they shell out to. + +## Capabilities + +### New Capabilities +- `editor-toolchain`: The shared home-manager profile provisions the runtime + toolchain (interpreters, package managers, archive tools) that the externally + Stow-managed Neovim/mason.nvim config depends on to install and run LSP servers + and debug adapters, without home-manager owning any of that config itself. + +### Modified Capabilities +(none — `developer-environment` covers general most-used CLI tools, not the +Neovim/mason.nvim dependency contract, so a new capability is used instead of +overloading that one.) + +## Impact + +- `modules/home/editor.nix`: extend the existing `home.packages` list (already used + for `tree-sitter`/`stdenv.cc`, the same "tools the dotfiles-owned nvim config + needs" pattern) with `nodejs`, `python3`, `unzip`. +- Applies to both Home Manager configs that import this module — `tom@linux` and + `tom@darwin` (per `flake.nix`) — covering all supported systems. +- No changes to the externally-managed dotfiles/Neovim Lua config itself. -- cgit v1.3