feat(startup): name an Edge blocker instead of hanging

Confirmed on the machine that started this: an 'Edge blocker' utility was
in the way, and unblocking Edge fixed the launch.

Those tools work by registering a Debugger entry under Image File
Execution Options for msedge.exe and msedgewebview2.exe, so Windows
refuses to run the process. The runtime is installed and registers its
version quite happily — which is why the logs showed WebView2 present —
and then never starts. OpsLog draws its whole interface with that engine,
so the window never opened: no error, no crash, a process sitting there
doing nothing.

That entry is read at startup now and said plainly, in the log and on
screen, with the one thing that helps: unblock Edge in the tool that
blocked it. Reinstalling OpsLog cannot fix a machine in this state, and
that is where an unexplained silence sends people.

Also logs the Windows build and which Edge policies are set — value names
only, never their contents: a policy key holds URLs and account names
that are nobody's business here.
This commit is contained in:
2026-08-25 21:19:37 +02:00
parent 9887b2aa78
commit 14bb92fac0
5 changed files with 96 additions and 2 deletions
+11
View File
@@ -213,3 +213,14 @@ func findWebView2Binary(dir string) string {
}
return ""
}
// edgeBlockedMessage is shown when an Edge blocker is found in the way.
//
// It names the tool rather than the symptom: OpsLog draws its whole interface
// with the WebView2 engine, which is Edge's, so a machine where Edge is blocked
// cannot run it — and no amount of reinstalling OpsLog will change that.
const edgeBlockedMessage = "OpsLog cannot start because Edge is blocked on this PC.\n\n" +
"A blocker tool (or a policy) is stopping msedgewebview2.exe from running. " +
"OpsLog draws its whole interface with that engine, so it cannot open its window.\n\n" +
"Unblock Edge — in the tool that blocked it — and start OpsLog again. " +
"The details are in the OpsLog folder under LOCALAPPDATA (startup.log)."