From a68aed7443ad4314cff8008fc6cf890ed1d96c59 Mon Sep 17 00:00:00 2001 From: Waters Church Date: Tue, 8 Sep 2026 17:22:59 -0400 Subject: [PATCH] Launcher: bundled runtime, and take the port over from a prior instance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Start ProdDash.command now prefers ./runtime/bin/node (production machines have no system Node) and kills whatever already holds :24500 before starting — so relaunching from the GUI (which the LTC listener needs for microphone permission) is one double-click, not a port-conflict hunt. Co-Authored-By: Claude Fable 5 --- Start ProdDash.command | 7 +++++++ 1 file changed, 7 insertions(+) mode change 100644 => 100755 Start ProdDash.command diff --git a/Start ProdDash.command b/Start ProdDash.command old mode 100644 new mode 100755 index 0ca52ec..43cd9b5 --- a/Start ProdDash.command +++ b/Start ProdDash.command @@ -1,4 +1,11 @@ #!/bin/zsh # Double-click to start ProdDash (macOS) cd "$(dirname "$0")" +# One dashboard per machine: take the port over from any prior instance +# (an SSH- or launchd-started one has no microphone access for the LTC +# listener — launching from here fixes that). +OLD=$(lsof -t -iTCP:24500 -sTCP:LISTEN 2>/dev/null) +[[ -n "$OLD" ]] && kill $OLD 2>/dev/null && sleep 1 +# Prefer the bundled runtime (production machines have no system Node) +if [[ -x ./runtime/bin/node ]]; then exec ./runtime/bin/node server.js; fi exec node server.js