From fc366cf4ac32ff4e94700c31ff4a0a8a8828ceb5 Mon Sep 17 00:00:00 2001 From: Mark Kreyman Date: Sun, 12 Apr 2026 22:50:24 -0600 Subject: [PATCH] Fix discovery npm_version: use File.cwd! instead of __DIR__ traversal The @external_resource path used __DIR__/../../../../ which resolves outside the Docker WORKDIR (/app). Using File.cwd! resolves to the project root in both local dev and Docker builds. Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/loopctl_web/controllers/well_known_controller.ex | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/loopctl_web/controllers/well_known_controller.ex b/lib/loopctl_web/controllers/well_known_controller.ex index 90b4b6c..8a58bd8 100644 --- a/lib/loopctl_web/controllers/well_known_controller.ex +++ b/lib/loopctl_web/controllers/well_known_controller.ex @@ -12,7 +12,10 @@ defmodule LoopctlWeb.WellKnownController do @base_url "https://loopctl.com" # Read the MCP server version from package.json at compile time. - @external_resource mcp_package = Path.join([__DIR__, "../../../../mcp-server/package.json"]) + # Use project root (File.cwd!) rather than __DIR__ traversal — the latter + # breaks in Docker where __DIR__ is /app/lib/loopctl_web/controllers and + # ../../../../ resolves outside the /app WORKDIR. + @external_resource mcp_package = Path.join(File.cwd!(), "mcp-server/package.json") @mcp_version (case File.read(mcp_package) do {:ok, contents} -> contents |> Jason.decode!() |> Map.get("version", "0.0.0")