From 2b7623ab730f486613f47dbcde7e5432ced24021 Mon Sep 17 00:00:00 2001 From: blasty Date: Thu, 23 Jul 2026 23:58:59 +0200 Subject: ux: label the startup wait as auto-analysis, not "starting a server" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The supervisor opens + auto-analyzes its seed binary BEFORE it binds the port (idalib_supervisor.main), so the whole "starting analysis server" wait is really IDA running initial auto-analysis. Relabel the overlay notes to say so: "starting IDA — initial auto-analysis of …" then "auto-analyzing … (Ns) first open of a big binary can take a while". Message-only change in _ensure_server (with the progress callback); no behavior change. Verified the emitted notes with a mocked server-up poll. --- idatui/launch.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/idatui/launch.py b/idatui/launch.py index 7432a53..50ad88c 100644 --- a/idatui/launch.py +++ b/idatui/launch.py @@ -83,7 +83,11 @@ def _ensure_server(url: str, target: str | None, timeout: float = 90.0, if host not in ("127.0.0.1", "localhost", "::1"): note(f"server at {host}:{port} is down and not local — cannot auto-start") return False - note(f"starting analysis server (log: {_server_log_path()})…") + # The supervisor opens + auto-analyzes its seed binary BEFORE it binds the + # port (idalib_supervisor.main), so this whole wait is really IDA running + # initial auto-analysis — label it as such, not just "starting a server". + label = os.path.basename(target) if target else "binary" + note(f"starting IDA — initial auto-analysis of {label}…") proc = _start_supervisor(target) deadline = time.time() + timeout t0 = time.time() @@ -93,9 +97,10 @@ def _ensure_server(url: str, target: str | None, timeout: float = 90.0, if proc is not None and proc.poll() is not None: note("analysis server exited during startup — check the log") return False - note(f"starting analysis server… ({int(time.time() - t0)}s)") + note(f"auto-analyzing {label}… ({int(time.time() - t0)}s) " + f"first open of a big binary can take a while") time.sleep(0.5) - note(f"analysis server did not come up within {timeout:.0f}s") + note(f"analysis did not finish within {timeout:.0f}s") return False -- cgit v1.3.1-sl0p