From 17f4e86539d1cf574ade7c4b97e8f8181052d6d6 Mon Sep 17 00:00:00 2001 From: Molecule AI Infra-Runtime-BE Date: Mon, 11 May 2026 03:49:39 +0000 Subject: [PATCH] fix(workspace): align PLATFORM_URL default to host.docker.internal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove Docker-detection localhost fallbacks across 5 workspace source files. When PLATFORM_URL is unset the container always runs in Docker, so host.docker.internal is the correct default — no local-dev fallback needed. Files: a2a_cli.py, a2a_client.py, consolidation.py, coordinator.py, main.py Co-Authored-By: Claude Opus 4.7 --- workspace/a2a_cli.py | 5 +---- workspace/a2a_client.py | 5 +---- workspace/consolidation.py | 5 +---- workspace/coordinator.py | 5 +---- workspace/main.py | 7 +------ 5 files changed, 5 insertions(+), 22 deletions(-) diff --git a/workspace/a2a_cli.py b/workspace/a2a_cli.py index 5ba7381c..768431f7 100644 --- a/workspace/a2a_cli.py +++ b/workspace/a2a_cli.py @@ -25,10 +25,7 @@ _WORKSPACE_ID_raw = os.environ.get("WORKSPACE_ID") if not _WORKSPACE_ID_raw: raise RuntimeError("WORKSPACE_ID environment variable is required but not set") WORKSPACE_ID = _WORKSPACE_ID_raw -if os.path.exists("/.dockerenv") or os.environ.get("DOCKER_VERSION"): - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") -else: - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://localhost:8080") +PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") async def discover(target_id: str) -> dict | None: diff --git a/workspace/a2a_client.py b/workspace/a2a_client.py index 8e499f40..09c507c0 100644 --- a/workspace/a2a_client.py +++ b/workspace/a2a_client.py @@ -26,10 +26,7 @@ _WORKSPACE_ID_raw = os.environ.get("WORKSPACE_ID") if not _WORKSPACE_ID_raw: raise RuntimeError("WORKSPACE_ID environment variable is required but not set") WORKSPACE_ID = _WORKSPACE_ID_raw -if os.path.exists("/.dockerenv") or os.environ.get("DOCKER_VERSION"): - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") -else: - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://localhost:8080") +PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") # Cache workspace ID → name mappings (populated by list_peers calls) _peer_names: dict[str, str] = {} diff --git a/workspace/consolidation.py b/workspace/consolidation.py index 81e9ec88..841b430e 100644 --- a/workspace/consolidation.py +++ b/workspace/consolidation.py @@ -18,10 +18,7 @@ from platform_auth import auth_headers logger = logging.getLogger(__name__) -if os.path.exists("/.dockerenv") or os.environ.get("DOCKER_VERSION"): - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") -else: - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://localhost:8080") +PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") _WORKSPACE_ID_raw = os.environ.get("WORKSPACE_ID") if not _WORKSPACE_ID_raw: raise RuntimeError("WORKSPACE_ID environment variable is required but not set") diff --git a/workspace/coordinator.py b/workspace/coordinator.py index 12d317ef..1189e897 100644 --- a/workspace/coordinator.py +++ b/workspace/coordinator.py @@ -22,10 +22,7 @@ from policies.routing import build_team_routing_payload logger = logging.getLogger(__name__) -if os.path.exists("/.dockerenv") or os.environ.get("DOCKER_VERSION"): - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") -else: - PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://localhost:8080") +PLATFORM_URL = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") _WORKSPACE_ID_raw = os.environ.get("WORKSPACE_ID") if not _WORKSPACE_ID_raw: raise RuntimeError("WORKSPACE_ID environment variable is required but not set") diff --git a/workspace/main.py b/workspace/main.py index 77c2d2d6..9ce7eaf9 100644 --- a/workspace/main.py +++ b/workspace/main.py @@ -58,12 +58,7 @@ async def main(): # pragma: no cover if not workspace_id: raise SystemExit("FATAL: WORKSPACE_ID env var is not set. Aborting.") config_path = os.environ.get("WORKSPACE_CONFIG_PATH", "/configs") - # Docker-aware default — host.docker.internal resolves the platform service - # from inside the Docker network mesh; falls back to localhost for local dev. - if os.path.exists("/.dockerenv") or os.environ.get("DOCKER_VERSION"): - platform_url = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") - else: - platform_url = os.environ.get("PLATFORM_URL", "http://localhost:8080") + platform_url = os.environ.get("PLATFORM_URL", "http://host.docker.internal:8080") awareness_config = get_awareness_config() # 0. Initialise OpenTelemetry (no-op if packages not installed) -- 2.45.2