diff --git a/site/src/lib/dataloader.ts b/site/src/lib/dataloader.ts index 032c8b8..b37b8fb 100644 --- a/site/src/lib/dataloader.ts +++ b/site/src/lib/dataloader.ts @@ -62,12 +62,14 @@ function isYearShardUrl(url: string): boolean { } function rewriteActivityUrls(a: ActivitySummary, shardBase: string): ActivitySummary { + // Skip if URL is already absolute (http:// or root-relative /) — avoids + // double-rewriting when shards are nested (e.g. user shard → year shard). + const needsRewrite = (url: string | null | undefined): boolean => + !!url && !url.startsWith('http') && !url.startsWith('/'); return { ...a, - detail_url: a.detail_url && !a.detail_url.startsWith('http') - ? `${shardBase}${a.detail_url}` : a.detail_url, - track_url: a.track_url && !a.track_url.startsWith('http') - ? `${shardBase}${a.track_url}` : a.track_url, + detail_url: needsRewrite(a.detail_url) ? `${shardBase}${a.detail_url}` : a.detail_url, + track_url: needsRewrite(a.track_url) ? `${shardBase}${a.track_url}` : a.track_url, }; }