Skip to content

chore: unpin soldr in .clud/settings.json so clud stops downgrading the global soldr - #1213

Open
zackees wants to merge 1 commit into
mainfrom
chore/unpin-soldr
Open

zackees wants to merge 1 commit into
mainfrom
chore/unpin-soldr

Conversation

@zackees

@zackees zackees commented Sep 14, 2026

Copy link
Copy Markdown
Owner

What was wrong

.clud/settings.json pinned "soldr_version": "0.7.11" under optimize.rust. The pin was added on 2026-06-16 (1ec6ecd), when clud optimize wrote its old hardcoded --soldr-version default (zackees/clud#349). Until recently the pin did nothing. zackees/clud 09b4fc0 (clud#1025) changed that: clud now checks an explicit pin on every launch and runs uv tool install --force soldr==0.7.11 whenever the installed version differs. That downgrades the global soldr for anyone with a newer one. On 2026-09-14, the same pin in FastLED/fbuild replaced soldr 0.9.15 with 0.7.11.

Fix

  • Remove only the soldr_version key. clud now uses whatever soldr is installed, and installs the latest soldr only when it's missing. install_soldr: true and use_soldr_shims: true stay as they are.
  • Add tests/test_clud_settings.py. It loads the JSON and fails if soldr_version appears at any depth, and it also asserts that install and shims stay enabled. It is pure file I/O and spawns no processes.

RED -> GREEN

RED (test added, pin still present):

E       AssertionError: .../.clud/settings.json pins soldr at ['optimize.rust.soldr_version']; clud force-reinstalls that exact version on every launch and downgrades the global soldr. ...
FAILED tests/test_clud_settings.py::test_clud_settings_does_not_pin_soldr_version
========================= 1 failed, 1 passed in 0.04s ==========================

GREEN (key removed):

tests/test_clud_settings.py::test_clud_settings_does_not_pin_soldr_version PASSED [ 50%]
tests/test_clud_settings.py::test_clud_settings_keeps_soldr_install_and_shims_enabled PASSED [100%]
============================== 2 passed in 0.03s ===============================

Both runs used running-process -- python -m pytest tests/test_clud_settings.py -v. On the new file, ruff check passes and ruff format --check reports it already formatted.

FastLED/fbuild has the same pin and is being fixed in a separate PR.

Closes #1212

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fg9EZEUZcM8uc6ibJc3WSX

…he global soldr

Remove the stale `soldr_version: 0.7.11` pin written by `clud optimize`
(its old hardcoded default, zackees/clud#349). Since zackees/clud 09b4fc0
(clud#1025) clud reconciles an explicit pin on every launch with
`uv tool install --force soldr==0.7.11`, downgrading the user's global
soldr. Without the key clud uses the installed soldr and installs the
latest only when soldr is missing. `install_soldr` and `use_soldr_shims`
stay enabled.

Add tests/test_clud_settings.py, a no-subprocess guard that fails if
`soldr_version` reappears anywhere in the file.

Closes #1212

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fg9EZEUZcM8uc6ibJc3WSX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: unpin soldr in .clud/settings.json so clud stops downgrading the global soldr

1 participant