mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-16 17:55:26 -04:00
Fix Cookbook dependency install completion state
* Fix Cookbook dependency install completion state Mark Cookbook dependency installs as complete when the background runner exits successfully, even when HuggingFace-specific download markers are absent. * Add focused regression coverage for cookbook dependency completion. Keep the fix narrowly scoped while carrying env_path through dependency tasks and locking the completion reconciliation behavior with targeted tests.
This commit is contained in:
committed by
GitHub
parent
acfdcf346c
commit
eda99360d1
@@ -1993,11 +1993,17 @@ def setup_cookbook_routes() -> APIRouter:
|
||||
status = "unknown"
|
||||
if is_alive or (local_win_task and full_snapshot):
|
||||
lower = full_snapshot.lower()
|
||||
has_exit = "=== process exited with code" in lower
|
||||
exit_match = re.search(r"=== process exited with code\s+(-?\d+)", full_snapshot, re.I)
|
||||
has_exit = exit_match is not None
|
||||
exit_code = int(exit_match.group(1)) if exit_match else None
|
||||
has_error = "error" in lower or "failed" in lower or "traceback" in lower
|
||||
if has_exit and task_type == "serve":
|
||||
# Serve tasks that exit are always errors — they should run indefinitely
|
||||
status = "error"
|
||||
elif has_exit and task_type == "download":
|
||||
# Dependency installs are tracked as download tasks but only
|
||||
# emit the generic runner exit marker, not HF download markers.
|
||||
status = "completed" if exit_code == 0 else "error"
|
||||
elif has_exit and "unrecognized arguments" in lower:
|
||||
status = "error"
|
||||
elif has_error and not ("application startup complete" in lower):
|
||||
|
||||
@@ -839,8 +839,15 @@ def setup_shell_routes() -> APIRouter:
|
||||
"""
|
||||
_require_admin(request)
|
||||
_reject_cross_site(request)
|
||||
import importlib, importlib.metadata as importlib_metadata, shlex, json as _json
|
||||
import importlib, importlib.metadata as importlib_metadata, shlex, json as _json, site, sys
|
||||
_prepend_user_install_bins_to_path()
|
||||
importlib.invalidate_caches()
|
||||
try:
|
||||
user_site = site.getusersitepackages()
|
||||
if user_site and os.path.isdir(user_site) and user_site not in sys.path:
|
||||
sys.path.append(user_site)
|
||||
except Exception:
|
||||
pass
|
||||
if ssh_port and str(ssh_port).strip() not in ("", "22"):
|
||||
_port = str(ssh_port).strip()
|
||||
if not _SSH_PORT_RE.match(_port) or not (1 <= int(_port) <= 65535):
|
||||
|
||||
Reference in New Issue
Block a user