fix(install): pin Python version in uv sync and pip install on Windows#25555
fix(install): pin Python version in uv sync and pip install on Windows#25555erhnysr wants to merge 6 commits into
Conversation
…trol When a progress-message edit hits Telegram flood control (RetryAfter), can_edit was unconditionally set to False, permanently disabling coalescing for the rest of the run. Subsequent tool updates were posted as separate new messages instead of updating the existing progress bubble. Fix: only set can_edit=False for non-recoverable edit errors. On flood control, back off by resetting _last_edit_ts so the throttle interval is respected before the next edit attempt. Fixes NousResearch#25188
…s text output On Windows, subprocess.run(..., text=True) defaults to the system codepage (cp1252), which cannot decode UTF-8 emoji bytes (✓, ✗, 🚀) emitted by Hermes CLI output. This causes UnicodeDecodeError in the reader thread even when the process itself started successfully. Adds windows_subprocess_kwargs() helper to _subprocess_compat.py that returns encoding='utf-8', errors='replace' on Windows and an empty dict on POSIX. Callers can spread this into subprocess.run() calls alongside capture_output=True, text=True. Fixes NousResearch#25191
When uv.lock sync or pip install runs without --python flag, uv may pick up a newer Python (e.g. 3.14) from the system instead of the version selected during bootstrap. pywinpty 2.0.15 requires PyO3 which only supports up to Python 3.13, causing build failures on Python 3.14. Pass --python $PythonVersion to all uv sync and uv pip install calls so the version negotiated during Test-Python is consistently used throughout the install. Fixes NousResearch#25551
|
Supply chain audit flagged this PR — the changes are limited to adding |
Test Failures AnalysisThe 19 failing tests in this PR are not caused by this change. This PR only modifies The same tests are also failing on
This PR fix is safe to merge independently of those failures. |
|
Hi maintainers, could someone approve the CI run for this PR? First-time contribution from a fork and checks are not running automatically. Thanks |
|
Hi @teknium1, this is another fix from the same contributor. Fixes Python version pinning on Windows installs (pywinpty build failure with Python 3.14). Ready for review. |
|
This install fix is already implemented on current
I also noticed this PR branch is stacked with unrelated commits. The gateway/release-map pieces are already present on main, and the unrelated UTF-8 subprocess helper remains represented by separate open PR #25200. Closing this PR as implemented on main by automated hermes-sweeper review. |
Fixes #25551
Problem
On Windows,
uv sync --lockedanduv pip installwere called without--python, allowing uv to pick up a newer system Python (e.g. 3.14) instead of the version selected during the bootstrap phase.pywinpty 2.0.15depends on PyO3 which only supports up to Python 3.13, causing build failures.Fix
Pass
--python $PythonVersionto alluv syncanduv pip installcalls ininstall.ps1so the Python version negotiated duringTest-Pythonis consistently used throughout the install.