mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-17 02:05:22 -04:00
Fix Windows Cookbook background tasks, exit statuses, and empty SSH logs wrapper (#1389)
This commit consolidates all Windows Cookbook background fixes into a single comprehensive commit based on the latest main branch. Key fixes included: 1. React looksSuccessful Mismatch: Append 'DOWNLOAD_OK' for pip install commands in routes/cookbook_routes.py. 2. Local Windows SSH Wrapper & Log Directory Mismatch: Bypassed ssh wrappers and dynamically selected odysseus-tmux logs for local tasks in static/js/cookbookRunning.js. 3. WSL Bash Filtration: Filtered out the WSL bash stub at C:\Windows\System32\bash.exe in core/platform_compat.py. 4. Drive-Colon Path Normalization: Replaced .as_posix() with git_bash_path() in routes/shell_routes.py and src/bg_jobs.py. 5. GGUF-Only Hardware Fitting: Restructured local Windows recommendations to rank GGUF only in services/hwfit/fit.py. 6. Safe Win32 Process Liveness Probe: Replaced os.kill(pid, 0) with a safe Win32 API probe using GetExitCodeProcess in core/platform_compat.py. 7. Prebuilt llama-cpp-python Wheels: Supply the CPU extra index during compilation failure fallback. 8. Enforce UTF-8 log encoding: Set PYTHONIOENCODING=utf-8 on Windows bootstrap runners. 9. Fix Linux Llama.cpp Build script syntax error in routes/cookbook_helpers.py. 10. Page Reload Status Check: Run sys.executable instead of 'python3' to bypass Microsoft Store execution stubs on local Windows hosts. 11. Llama.cpp serve build bypass: Bypassed cmake compilation checks on local Windows and verified python bindings directly. 12. Serve Command Path Validation: Masked safe GGUF path printf subshells '' inside the serve command validator. 13. CPU Mismatch Diagnostics: Intercepted AVX2-lacking '0xc000001d' (Illegal Instruction) crashes in static/js/cookbook-diagnosis.js and guided users to Ollama. 14. Windows Pytest stability: Fixed stub import leakage in test files.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
import sys
|
||||
for mod_name in ["src.endpoint_resolver", "src.database", "core.database"]:
|
||||
_mod = sys.modules.get(mod_name)
|
||||
if _mod is not None and not getattr(_mod, "__file__", None):
|
||||
sys.modules.pop(mod_name, None)
|
||||
|
||||
import json
|
||||
from types import SimpleNamespace
|
||||
|
||||
|
||||
@@ -238,6 +238,8 @@ def test_pip_install_attempt_failure_propagates_real_exit_code():
|
||||
"""Run the generated snippet against a deliberately broken pip install
|
||||
to confirm the subshell exits with pip's non-zero status."""
|
||||
snippet = _pip_install_attempt("python3 -m pip install __nonexistent_package_12345__")
|
||||
if sys.platform == "win32":
|
||||
snippet = snippet.replace("$", "\\$")
|
||||
result = subprocess.run(
|
||||
["bash", "-c", snippet],
|
||||
capture_output=True,
|
||||
@@ -250,6 +252,8 @@ def test_pip_install_attempt_failure_propagates_real_exit_code():
|
||||
def test_pip_install_attempt_success_exits_zero():
|
||||
"""When pip succeeds, the subshell should exit 0."""
|
||||
snippet = _pip_install_attempt("python3 -c 'pass'")
|
||||
if sys.platform == "win32":
|
||||
snippet = snippet.replace("$", "\\$")
|
||||
result = subprocess.run(
|
||||
["bash", "-c", snippet],
|
||||
capture_output=True,
|
||||
@@ -262,6 +266,8 @@ def test_pip_install_attempt_success_exits_zero():
|
||||
def test_pip_install_attempt_surfaces_stderr_on_failure():
|
||||
"""On failure, the last 5 lines of pip output should appear in stdout."""
|
||||
snippet = _pip_install_attempt("python3 -m pip install __nonexistent_package_12345__")
|
||||
if sys.platform == "win32":
|
||||
snippet = snippet.replace("$", "\\$")
|
||||
result = subprocess.run(
|
||||
["bash", "-c", snippet],
|
||||
capture_output=True,
|
||||
@@ -354,6 +360,15 @@ def test_validate_serve_cmd_accepts_llama_advanced_controls():
|
||||
assert _validate_serve_cmd(cmd) == cmd
|
||||
|
||||
|
||||
def test_validate_serve_cmd_accepts_windows_printf_format():
|
||||
cmd = (
|
||||
"python -m llama_cpp.server --model "
|
||||
"\"$(printf %s ${HOME}'/.cache/huggingface/hub/models--unsloth--Qwen3.5-2B-GGUF/snapshots/f6d5376be1edb4d416d56da11e5397a961aca8ae/Qwen3.5-2B-Q4_K_M.gguf')\" "
|
||||
"--host 0.0.0.0 --port 8000 --n_gpu_layers 99 --n_ctx 32768 --flash_attn true --type_k q4_0 --type_v q4_0"
|
||||
)
|
||||
assert _validate_serve_cmd(cmd) == cmd
|
||||
|
||||
|
||||
def test_ollama_serve_defaults_to_loopback_bind():
|
||||
assert _ollama_bind_from_cmd("ollama serve") == ("127.0.0.1", "11434")
|
||||
assert _ollama_bind_from_cmd("ollama run qwen2.5:0.5b") == ("127.0.0.1", "11434")
|
||||
@@ -481,11 +496,13 @@ def test_llama_cpp_rebuild_cmd_clears_cached_build_paths():
|
||||
def test_llama_cpp_rebuild_cmd_runs_clean_on_a_fresh_home(tmp_path):
|
||||
"""The command should succeed even when neither path exists yet."""
|
||||
import os
|
||||
from core.platform_compat import find_bash, git_bash_path
|
||||
|
||||
bash = find_bash() or "bash"
|
||||
env = dict(os.environ)
|
||||
env["HOME"] = str(tmp_path)
|
||||
env["HOME"] = git_bash_path(tmp_path)
|
||||
result = subprocess.run(
|
||||
["bash", "-c", _llama_cpp_rebuild_cmd()],
|
||||
[bash, "-c", _llama_cpp_rebuild_cmd()],
|
||||
capture_output=True, text=True, env=env, timeout=10,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user