fix preview runtime isolation and shutdown (#1088)

This commit is contained in:
ekko
2026-05-28 13:50:52 +08:00
committed by GitHub
parent 1734bac9b4
commit d610c3d1b9
17 changed files with 256 additions and 19 deletions
@@ -2413,8 +2413,9 @@ class WorkerProcess:
return _send_bridge_request(self.endpoint, req, request_timeout)
def _worker_endpoint(key: str) -> str:
safe = hashlib.sha256(key.encode("utf-8")).hexdigest()[:16]
def _worker_endpoint(key: str, namespace: str | None = None) -> str:
namespace_key = f"{namespace or ''}\0{key}"
safe = hashlib.sha256(namespace_key.encode("utf-8")).hexdigest()[:16]
if os.name == "nt":
port_base = int(os.environ.get("HERMES_AGENT_BRIDGE_WORKER_PORT_BASE", "18780"))
return f"tcp://127.0.0.1:{port_base + int(safe[:4], 16) % 1000}"
@@ -2637,7 +2638,7 @@ class BridgeBroker:
with self._lock:
worker = self._workers.get(key)
if worker is None:
worker = WorkerProcess(key, profile, _worker_endpoint(key), self.agent_root, self.hermes_home)
worker = WorkerProcess(key, profile, _worker_endpoint(key, self.endpoint), self.agent_root, self.hermes_home)
self._workers[key] = worker
return worker