diff --git a/assets/app.js b/assets/app.js
index d38a028..e704882 100644
--- a/assets/app.js
+++ b/assets/app.js
@@ -451,16 +451,22 @@
/* ---------- auth ---------- */
+ /* Tells the boot-error handler in index.php that a UI is on screen, so later
+ failures get logged instead of buried under a full-screen error panel. */
+ function markBooted() { window.__chBooted = true; }
+
function showAuth() {
if (cleanupView) { cleanupView(); cleanupView = null; }
shell.hidden = true;
authEl.hidden = false;
renderLogin();
+ markBooted();
}
function showShell() {
authEl.hidden = true;
shell.hidden = false;
+ markBooted();
}
function renderLogin(error = '') {
diff --git a/index.php b/index.php
index 73468a1..a044565 100644
--- a/index.php
+++ b/index.php
@@ -26,16 +26,23 @@ function asset(string $path): string
-
-
+
+
+ hidden and the page simply blank, with the reason only in the console.
+
+ The report is a full-screen panel, so it is deliberately hard to trigger:
+ only resources carrying data-boot-critical count, and only until app.js
+ signals that it has put a UI on screen. Anything else — Cloudflare's
+ injected analytics beacon, a blocked font, a failing fetch long after
+ boot — goes to the console instead of over a working app. -->
-
-
+
+
+