From 6f6268a502ee6a0b2078504d4e0c2c624d75acc7 Mon Sep 17 00:00:00 2001 From: Jack Pollock Date: Sat, 6 Jun 2026 12:16:25 +0100 Subject: [PATCH 1/6] V3: Replace last character with whitespace if it's a colon Current implementation causes a trailing colon to be present before URL Path --- client-v3/src/components/user/settings/ApiToken.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/client-v3/src/components/user/settings/ApiToken.vue b/client-v3/src/components/user/settings/ApiToken.vue index 68a9442d..e2bd7226 100644 --- a/client-v3/src/components/user/settings/ApiToken.vue +++ b/client-v3/src/components/user/settings/ApiToken.vue @@ -127,6 +127,7 @@ const showRegenerateConfirm = ref(false); const showRevokeConfirm = ref(false); const apiBaseUrl = computed(() => baseURL()); +apiBaseUrl = apiBaseUrl.replace(/:\s*$/, ""); onMounted(async () => { await checkTokenStatus(); From a1cc7cdea7db6a3ceaf480dd75294f8e54e8a521 Mon Sep 17 00:00:00 2001 From: Jack Pollock Date: Sat, 6 Jun 2026 12:29:19 +0100 Subject: [PATCH 2/6] Fix baseURL helper function If no port used (e.g. serving on port 80 or 443), colon is still present in returned baseURL causing errors. --- client/src/js/platform/browser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/js/platform/browser.ts b/client/src/js/platform/browser.ts index 1ac2a2ea..584be53b 100644 --- a/client/src/js/platform/browser.ts +++ b/client/src/js/platform/browser.ts @@ -10,7 +10,7 @@ * @returns {string} Base URL (e.g., "http://localhost:8080") */ export function baseURL(): string { - return `${window.location.protocol}//${window.location.hostname}:${window.location.port}`; + return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : '' }`; } export function makeURL(path: string): string { From cfb560b66b929cc05951b5984f926c1ad5a30b42 Mon Sep 17 00:00:00 2001 From: Jack Pollock Date: Sat, 6 Jun 2026 12:30:17 +0100 Subject: [PATCH 3/6] V3: Update baseURL helper function --- client-v3/src/js/platform/browser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-v3/src/js/platform/browser.ts b/client-v3/src/js/platform/browser.ts index 1ac2a2ea..584be53b 100644 --- a/client-v3/src/js/platform/browser.ts +++ b/client-v3/src/js/platform/browser.ts @@ -10,7 +10,7 @@ * @returns {string} Base URL (e.g., "http://localhost:8080") */ export function baseURL(): string { - return `${window.location.protocol}//${window.location.hostname}:${window.location.port}`; + return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : '' }`; } export function makeURL(path: string): string { From c17efa62a746c4935f10f79e83a18fec4c200413 Mon Sep 17 00:00:00 2001 From: Jack Pollock Date: Sat, 6 Jun 2026 12:31:14 +0100 Subject: [PATCH 4/6] Remove initial regex fix for port separator Identified root cause of issue - removing workaround --- client-v3/src/components/user/settings/ApiToken.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client-v3/src/components/user/settings/ApiToken.vue b/client-v3/src/components/user/settings/ApiToken.vue index e2bd7226..68a9442d 100644 --- a/client-v3/src/components/user/settings/ApiToken.vue +++ b/client-v3/src/components/user/settings/ApiToken.vue @@ -127,7 +127,6 @@ const showRegenerateConfirm = ref(false); const showRevokeConfirm = ref(false); const apiBaseUrl = computed(() => baseURL()); -apiBaseUrl = apiBaseUrl.replace(/:\s*$/, ""); onMounted(async () => { await checkTokenStatus(); From f0f324de6b22a3024f95f2acffd68d47ad236bf7 Mon Sep 17 00:00:00 2001 From: Tim Bradgate Date: Sat, 6 Jun 2026 12:34:18 +0100 Subject: [PATCH 5/6] npm linting --- client-v3/src/js/platform/browser.ts | 2 +- client/src/js/platform/browser.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client-v3/src/js/platform/browser.ts b/client-v3/src/js/platform/browser.ts index 584be53b..84d05d71 100644 --- a/client-v3/src/js/platform/browser.ts +++ b/client-v3/src/js/platform/browser.ts @@ -10,7 +10,7 @@ * @returns {string} Base URL (e.g., "http://localhost:8080") */ export function baseURL(): string { - return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : '' }`; + return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : ''}`; } export function makeURL(path: string): string { diff --git a/client/src/js/platform/browser.ts b/client/src/js/platform/browser.ts index 584be53b..84d05d71 100644 --- a/client/src/js/platform/browser.ts +++ b/client/src/js/platform/browser.ts @@ -10,7 +10,7 @@ * @returns {string} Base URL (e.g., "http://localhost:8080") */ export function baseURL(): string { - return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : '' }`; + return `${window.location.protocol}//${window.location.hostname}${window.location.port ? ':' + window.location.port : ''}`; } export function makeURL(path: string): string { From 35e25ef43bb3dfba20344833d9565e05400910e4 Mon Sep 17 00:00:00 2001 From: Jack Pollock Date: Sat, 6 Jun 2026 12:50:33 +0100 Subject: [PATCH 6/6] Remove trailing comma from baseURL test in client V2 --- client/src/js/platform/browser.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/js/platform/browser.test.ts b/client/src/js/platform/browser.test.ts index 79edf07e..21b31990 100644 --- a/client/src/js/platform/browser.test.ts +++ b/client/src/js/platform/browser.test.ts @@ -39,7 +39,7 @@ describe('browser.js', () => { window.location.port = ''; const result = baseURL(); - expect(result).toBe('http://localhost:'); + expect(result).toBe('http://localhost'); }); });