fix(desktop): ship the VC++ runtime the Windows voice wheels need
onnxruntime (wake word) and ctranslate2 (local speech-to-text) link against msvcp140.dll and msvcp140_1.dll, which the managed CPython does not ship. On Windows without the system VC++ Redistributable both imports failed with "DLL load failed: The specified module could not be found", so "Hey Hermes" and voice chat transcription never worked. - Bundle the Microsoft-signed VC143 CRT set (14.44.35211, matching the managed CPython's vcruntime140) as a Windows extra resource with a SHA-256 manifest. - Before every local backend start, copy missing or mismatching CRT files beside the managed python.exe (the process image directory, searched first), verifying digests; never overwrite the interpreter's own vcruntime and never block boot. Existing installs heal on their next launch. - Report an unloadable native voice wheel as a VC++ runtime problem in the wake-word requirements, local transcription and `hermes doctor`, instead of treating installed package metadata as proof the wheel loads. - Bump AITURK IDE to 1.0.0-beta.12. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9a1d831d4b
commit
233885d3a7
20 files changed
+684
-5
No files matched your search
@@ -625,6 +625,19 @@ def _neutralize_webbrowser(monkeypatch):
|
||||
return opened
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _neutralize_native_runtime_probe(monkeypatch):
|
||||
"""Report native voice wheels as loadable unless a test says otherwise.
|
||||
|
||||
The real probe imports onnxruntime/ctranslate2 in a child interpreter, so
|
||||
its answer depends on the host's VC++ runtime rather than the code under
|
||||
test. tests/tools/test_windows_native_runtime.py exercises the real probe.
|
||||
"""
|
||||
import tools.windows_native_runtime as _native_runtime
|
||||
|
||||
monkeypatch.setattr(_native_runtime, "native_load_error", lambda module: None)
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _neutralize_macos_keychain_creds(request, monkeypatch):
|
||||
"""Default Anthropic credential resolution away from the real macOS Keychain."""
|
||||
|
||||
Reference in new issue
Block a user