You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pin was added on 2026-06-16 in 31e28e2 ("optimize"). clud optimize wrote it at a time when its --soldr-version flag had a hardcoded default of 0.7.11 (zackees/clud PR fix(zccache): bound ensure_running with a 30s timeout (#346) #349, commit 83ea446). Nobody chose that version on purpose. soldr 0.7.11 was released on 2026-04-23, and 0.7.55 was already out when the pin was written.
The pin was dormant at first because clud only installed soldr when it was missing. That changed in zackees/clud commit 09b4fc0 (2026-08-25, clud issue pybuild: upgrade PyO3 to 0.29 and remove Windows import-library workaround #1025). Since then, clud's soldr activation (crates/clud-bin/src/soldr_activate.rs) checks an explicit pin on every launch. If the installed soldr doesn't match the pin, it runs uv tool install --force soldr==0.7.11.
As a result, starting clud in this repo downgrades the user's global soldr, and every other project on the machine shares that soldr. On 2026-09-14, a clud launch in fbuild replaced soldr 0.9.15 with 0.7.11.
Proposal
Delete only the soldr_version key from .clud/settings.json. Keep install_soldr: true and use_soldr_shims: true. With no pin, clud floats: it uses whatever soldr is already installed and installs the latest soldr only if none is present.
Add a small guard test so a later clud optimize run can't quietly bring the pin back.
Out of scope: the uv.lock dev-group entry for soldr (currently 0.8.30). It only sets soldr inside the project venv (pyproject.toml requires >=0.8.19) and never changes the global uv tool, so it doesn't cause this downgrade.
Acceptance criteria
.clud/settings.json has no soldr_version key at any depth, and install_soldr / use_soldr_shims are still true.
A guard test in ci/ fails while the pin is present (RED) and passes after it is removed (GREEN). The PR includes both outputs.
CI runs the guard.
Decisions
Float instead of bumping the pin. Any fixed version goes stale and then downgrades every newer global install. Floating matches clud's default behavior.
Context
.clud/settings.jsononmainpins soldr:clud optimizewrote it at a time when its--soldr-versionflag had a hardcoded default of0.7.11(zackees/clud PR fix(zccache): bound ensure_running with a 30s timeout (#346) #349, commit 83ea446). Nobody chose that version on purpose. soldr 0.7.11 was released on 2026-04-23, and 0.7.55 was already out when the pin was written.crates/clud-bin/src/soldr_activate.rs) checks an explicit pin on every launch. If the installed soldr doesn't match the pin, it runsuv tool install --force soldr==0.7.11.Proposal
Delete only the
soldr_versionkey from.clud/settings.json. Keepinstall_soldr: trueanduse_soldr_shims: true. With no pin, clud floats: it uses whatever soldr is already installed and installs the latestsoldronly if none is present.Add a small guard test so a later
clud optimizerun can't quietly bring the pin back.Out of scope: the
uv.lockdev-group entry for soldr (currently 0.8.30). It only sets soldr inside the project venv (pyproject.tomlrequires>=0.8.19) and never changes the global uv tool, so it doesn't cause this downgrade.Acceptance criteria
.clud/settings.jsonhas nosoldr_versionkey at any depth, andinstall_soldr/use_soldr_shimsare stilltrue.ci/fails while the pin is present (RED) and passes after it is removed (GREEN). The PR includes both outputs.Decisions
unittestinci/, likeci/test_rust_toolchain_pins.py, so it runs withuv run --no-projectand no extra dependencies.