From f7df315695ae5d102e9b0196be839703aee8284d Mon Sep 17 00:00:00 2001 From: DanS Date: Tue, 1 Sep 2026 00:15:27 -0500 Subject: [PATCH] fix(ui): remove the "Taking longer than expected" startup stall notice It added clutter to the loading screen (the yellow title + two lines of explanatory text). The live daemon-output panel below it is the real progress signal. connect_stall_since_ stays maintained in app_network.cpp for connection bookkeeping; it just no longer drives any on-screen text (loading_stall_* i18n strings + util::connectHasStalled are now unused). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app.cpp | 52 ++++------------------------------------------------ 1 file changed, 4 insertions(+), 48 deletions(-) diff --git a/src/app.cpp b/src/app.cpp index 4d25ca5..6f8053d 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -6511,54 +6511,10 @@ void App::renderLoadingOverlay(float contentH) } } - // ------------------------------------------------------------------- - // 3d. "Taking longer than expected" notice — the daemon is reachable/launching but - // hasn't become ready within the stall threshold. The connect loop keeps retrying - // underneath (this notice clears itself the instant it connects); it just stops the - // user staring at a silent spinner forever. Guarded off while the daemon is in the - // Error state — that case is owned by the crash block (3c) above. - // ------------------------------------------------------------------- - if (connect_stall_since_ > 0.0 && - !(daemon_controller_ && - daemon_controller_->state() == daemon::EmbeddedDaemon::State::Error) && - util::connectHasStalled(connect_stall_since_, ImGui::GetTime(), - loadElem("stall-timeout-sec", util::kConnectStallDefaultSeconds))) { - curY += gap; - ImFont* bodyFont2 = Type().body2(); - if (!bodyFont2) bodyFont2 = ImGui::GetFont(); - ImFont* capFont = Type().caption(); - if (!capFont) capFont = ImGui::GetFont(); - - // Title - const char* title = TR("loading_stall_title"); - ImVec2 ts = bodyFont2->CalcTextSizeA(bodyFont2->LegacySize, FLT_MAX, 0.0f, title); - dl->AddText(bodyFont2, bodyFont2->LegacySize, - ImVec2(wp.x + cx - ts.x * 0.5f, curY), - IM_COL32(255, 210, 90, 235), title); - curY += ts.y + gap * 0.5f; - - // Body (wrapped) — reassure + show elapsed seconds - char stallBody[256]; - snprintf(stallBody, sizeof(stallBody), TR("loading_stall_body"), - (float)(ImGui::GetTime() - connect_stall_since_)); - float wrapW = ws.x * 0.8f; - if (wrapW > 640.0f * dpi) wrapW = 640.0f * dpi; - ImVec2 bs = capFont->CalcTextSizeA(capFont->LegacySize, FLT_MAX, wrapW, stallBody); - dl->AddText(capFont, capFont->LegacySize, - ImVec2(wp.x + cx - wrapW * 0.5f, curY), - IM_COL32(200, 200, 200, 210), stallBody, nullptr, wrapW); - curY += bs.y + gap * 0.5f; - - // Actionable guidance (full-node only — lite has no daemon to restart) - if (supportsFullNodeLifecycleActions()) { - const char* hint = TR("loading_stall_hint"); - ImVec2 hs = capFont->CalcTextSizeA(capFont->LegacySize, FLT_MAX, 0.0f, hint); - dl->AddText(capFont, capFont->LegacySize, - ImVec2(wp.x + cx - hs.x * 0.5f, curY), - IM_COL32(180, 180, 180, 190), hint); - curY += hs.y + gap; - } - } + // 3d. The "Taking longer than expected" stall notice was intentionally removed — it added + // clutter to the startup screen. The live daemon-output panel below is the real signal that + // the node is making progress. (connect_stall_since_ is still maintained in app_network.cpp + // for connection bookkeeping; it just no longer drives any on-screen text.) // ------------------------------------------------------------------- // 4. Daemon output snippet (last few lines, if embedded)