@rotriz/pi-web-ui 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extension.mjs +13 -8
- package/package.json +1 -1
package/extension.mjs
CHANGED
|
@@ -36,6 +36,12 @@ export default function (pi) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
async function ensureServer() {
|
|
39
|
+
// Check if server is already running (from a previous session or manual start)
|
|
40
|
+
try {
|
|
41
|
+
const res = await fetch(`${origin}/api/tabs`);
|
|
42
|
+
if (res.ok) return; // Already running, reuse it
|
|
43
|
+
} catch {}
|
|
44
|
+
|
|
39
45
|
if (serverProcess && !serverProcess.killed) return;
|
|
40
46
|
const serverPath = join(extDir, "server.mjs");
|
|
41
47
|
if (!existsSync(serverPath)) {
|
|
@@ -48,9 +54,9 @@ export default function (pi) {
|
|
|
48
54
|
});
|
|
49
55
|
serverProcess.unref();
|
|
50
56
|
serverProcess.on("exit", () => { serverProcess = null; });
|
|
51
|
-
// Wait for the server to be ready
|
|
52
|
-
for (let i = 0; i <
|
|
53
|
-
await new Promise((r) => setTimeout(r,
|
|
57
|
+
// Wait for the server to be ready (up to 30 seconds for slow machines)
|
|
58
|
+
for (let i = 0; i < 60; i++) {
|
|
59
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
54
60
|
try {
|
|
55
61
|
const res = await fetch(`${origin}/api/tabs`);
|
|
56
62
|
if (res.ok) return;
|
|
@@ -68,11 +74,10 @@ export default function (pi) {
|
|
|
68
74
|
|
|
69
75
|
// ── Lifecycle ────────────────────────────────────────────────────────
|
|
70
76
|
pi.on("session_start", async (_event, ctx) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
77
|
+
// Start server in background — don't block Pi's session startup
|
|
78
|
+
ensureServer().catch((err) => {
|
|
79
|
+
ctx.ui?.notify?.(`pi-web-ui: ${err?.message ?? err}`, "warning");
|
|
80
|
+
});
|
|
76
81
|
});
|
|
77
82
|
|
|
78
83
|
pi.on("session_shutdown", async (event) => {
|
package/package.json
CHANGED