From e606f5dcc9e519ee00f5bb6116cbcbe5283b66d5 Mon Sep 17 00:00:00 2001 From: Ben Vinegar Date: Sat, 7 Mar 2026 12:14:04 -0500 Subject: [PATCH] Normalize Pi session URLs --- pi/glance.test.ts | 12 +++++++++--- pi/glance.ts | 5 +++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pi/glance.test.ts b/pi/glance.test.ts index 565a208..af024b3 100644 --- a/pi/glance.test.ts +++ b/pi/glance.test.ts @@ -190,17 +190,23 @@ describe("pi/glance", () => { const session = { id: "session-1", - url: "https://glance.sh/s/session-1", + url: "/s/session-1", } satisfies SessionResponse; const fetchMock = vi.fn(async () => jsonResponse(session)); vi.stubGlobal("fetch", fetchMock); - await expect(__testing.createSession()).resolves.toEqual(session); + await expect(__testing.createSession()).resolves.toEqual({ + ...session, + url: "https://glance.sh/s/session-1", + }); expect(fetchMock).toHaveBeenCalledWith("https://glance.sh/api/session", { method: "POST", }); - expect(__testing.getState().currentSession).toEqual(session); + expect(__testing.getState().currentSession).toEqual({ + ...session, + url: "https://glance.sh/s/session-1", + }); expect(__testing.isSessionStale()).toBe(false); vi.setSystemTime(new Date("2026-03-07T15:08:00.001Z")); diff --git a/pi/glance.ts b/pi/glance.ts index d63e778..70b9045 100644 --- a/pi/glance.ts +++ b/pi/glance.ts @@ -46,6 +46,10 @@ interface GlanceDetails { expiresAt?: number; } +function normalizeSessionUrl(url: string): string { + return new URL(url, BASE_URL).toString(); +} + // ── Persistent background session ────────────────────────────────── let currentSession: SessionResponse | null = null; @@ -57,6 +61,7 @@ async function createSession(): Promise { const res = await fetch(`${BASE_URL}/api/session`, { method: "POST" }); if (!res.ok) throw new Error(`HTTP ${res.status}`); const session = (await res.json()) as SessionResponse; + session.url = normalizeSessionUrl(session.url); currentSession = session; sessionCreatedAt = Date.now(); return session;