From f376b24106982753b22bf8b1a714d1bb6d856a10 Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Wed, 15 Apr 2026 14:44:34 +0200 Subject: [PATCH] fix: handle absolute detail_url paths in loadActivity and loadTimeseries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit resolveShards rewrites detail_url to absolute paths (e.g. /data/brut/_merged/activities/{id}.json) when fetching from a user shard. loadActivity and loadTimeseries only checked for http:// prefixes and treated /data/... paths as relative, producing double /data//data/... in the fetch URL → 404. Fix: treat URLs starting with / as already absolute, same as http:// URLs. --- site/src/lib/dataloader.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/src/lib/dataloader.ts b/site/src/lib/dataloader.ts index f427981..a19dc87 100644 --- a/site/src/lib/dataloader.ts +++ b/site/src/lib/dataloader.ts @@ -168,7 +168,7 @@ export async function loadActivity( if (cached) return cached; try { - const url = detailUrl.startsWith('http') + const url = detailUrl.startsWith('http') || detailUrl.startsWith('/') ? detailUrl : `${baseUrl}data/${detailUrl}`; return await fetchJSON(url); @@ -199,7 +199,7 @@ export async function loadTimeseries( if (timeseriesUrl.startsWith('http')) { url = timeseriesUrl; - } else if (detailUrl.startsWith('http')) { + } else if (detailUrl.startsWith('http') || detailUrl.startsWith('/')) { // absolute detailUrl (browser shard resolution) → same directory const dir = detailUrl.substring(0, detailUrl.lastIndexOf('/') + 1); url = `${dir}${filename}`;