("spawn_server", { binary: store.settings.serverBinary }).catch((err: any) => {
if (err?.kind === "NotConfigured") {
notConfigured = true;
} else {
- // SpawnFailed — process couldn't be launched (permissions, bad path, etc.)
- console.error("spawn_server failed:", err);
- failed = true;
+ console.warn("Could not start server:", err);
}
+ });
+ }
+
+ if (!serverProbeOk) {
+ let cancelled = false, tries = 0;
+ async function probe() {
+ if (cancelled) return;
+ tries++;
+ try {
+ const res = await fetch(`${store.settings.serverUrl}/api/graphql`, {
+ method: "POST", headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ query: "{ __typename }" }),
+ signal: AbortSignal.timeout(2000),
+ });
+ if (res.ok && !cancelled) { serverProbeOk = true; return; }
+ } catch {}
+ if (tries >= MAX_ATTEMPTS && !cancelled) { failed = true; return; }
+ if (!cancelled) setTimeout(probe, 500);
}
- } else {
- // autoStartServer is off — user manages the server themselves, just probe.
- cancelProbe = startProbe();
+ setTimeout(probe, 800);
}
type P = { chapterId: number; mangaId: number; progress: number }[];
unlistenDownload = await listen("download-progress", e => { setActiveDownloads(e.payload); });
return () => {
- cancelProbe();
+ cancelled = true;
if (store.settings.autoStartServer) invoke("kill_server").catch(() => {});
if (idleTimer) clearTimeout(idleTimer);
if (pollInterval) clearInterval(pollInterval);
@@ -148,13 +142,7 @@
};
});
- function handleRetry() {
- failed = false;
- notConfigured = false;
- serverProbeOk = false;
- // Re-run the full startup flow by reloading — simplest way to reset all state cleanly.
- window.location.reload();
- }
+ function handleRetry() { failed = false; notConfigured = false; serverProbeOk = false; }
{#if devSplash}
diff --git a/src/assets/logo.png b/src/assets/logo.png
deleted file mode 100644
index 24f8180..0000000
Binary files a/src/assets/logo.png and /dev/null differ
diff --git a/src/assets/moku-icon-rounded.svg b/src/assets/moku-icon-splash.svg
similarity index 75%
rename from src/assets/moku-icon-rounded.svg
rename to src/assets/moku-icon-splash.svg
index a215c63..e88a390 100644
--- a/src/assets/moku-icon-rounded.svg
+++ b/src/assets/moku-icon-splash.svg
@@ -1,13 +1,5 @@
-
-