From 4232424b232f84715e3b67f95fa0da207f776007 Mon Sep 17 00:00:00 2001 From: archipelago Date: Sun, 14 Jun 2026 07:58:24 -0400 Subject: [PATCH] fix(ui): suppress app-unreachable overlay while ElectrumX sync screen shows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When ElectrumX is still building its index (or waiting on the Bitcoin node), AppSessionFrame shows a sync 'pre UI'. The iframe-blocked fallback ('App not reachable / retrying') was not gated on electrsSync, so it painted over the sync screen and read as a hard connection error. Gate it on !electrsSync, mirroring the iframe's own guard. Also harden the lifecycle health probe: container_health used jq '// "unknown"', which only catches null/false — an empty-string health (a brief window under load) rendered as a blank 'bad health: X is '. Map empty to 'unknown' so the retry loop keeps waiting instead of failing on a transient. Co-Authored-By: Claude Opus 4.8 (1M context) --- neode-ui/src/views/appSession/AppSessionFrame.vue | 7 +++++-- tests/lifecycle/remote-lifecycle.sh | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/neode-ui/src/views/appSession/AppSessionFrame.vue b/neode-ui/src/views/appSession/AppSessionFrame.vue index 39a577af..d3a3f49f 100644 --- a/neode-ui/src/views/appSession/AppSessionFrame.vue +++ b/neode-ui/src/views/appSession/AppSessionFrame.vue @@ -60,9 +60,12 @@ /> - + -
+
diff --git a/tests/lifecycle/remote-lifecycle.sh b/tests/lifecycle/remote-lifecycle.sh index ffabf2f0..1eb9fa0b 100755 --- a/tests/lifecycle/remote-lifecycle.sh +++ b/tests/lifecycle/remote-lifecycle.sh @@ -250,7 +250,7 @@ container_health() { health=$( ARCHY_RPC_TIMEOUT="${ARCHY_HEALTH_RPC_TIMEOUT:-20}" \ rpc_result container-health "$(jq -nc --arg app "$app" '{app_id:$app}')" \ - | jq -r --arg app "$app" '.[$app] // "unknown" | ascii_downcase' + | jq -r --arg app "$app" '(.[$app] // "") | if . == "" then "unknown" else ascii_downcase end' ) || health=unknown if [[ "$app" == "indeedhub" && "$health" != "healthy" ]] && probe_launch "$app" >/dev/null 2>&1; then health=healthy