@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.
Files changed (2) hide show
  1. package/extension.mjs +13 -8
  2. 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 < 30; i++) {
53
- await new Promise((r) => setTimeout(r, 200));
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
- try {
72
- await ensureServer();
73
- } catch (err) {
74
- ctx.ui?.notify?.(`pi-web-ui could not start: ${err?.message ?? err}`, "error");
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotriz/pi-web-ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Web UI extension for the Pi coding agent — browser-based session management, git integration, and task tracking",
5
5
  "type": "module",
6
6
  "license": "MIT",