{formatDate(rangeValue[0])} to{' '}
{formatDate(rangeValue[1])}
diff --git a/ui/src/lib/ranges.ts b/ui/src/lib/ranges.ts
index c15fe8c..84093f1 100644
--- a/ui/src/lib/ranges.ts
+++ b/ui/src/lib/ranges.ts
@@ -7,12 +7,35 @@
// from the baked snapshot; loads on a later day compute a different key and
// refetch live — the intended freshness tradeoff for the activity data.
-import type { SourceSummary } from '../api/client';
+import type { SourceSummary, SummaryBucket } from '../api/client';
export function fmtDate(d: Date): string {
return d.toISOString().slice(0, 10);
}
+const DAY_MS = 24 * 60 * 60 * 1000;
+
+/** Fixed summary window per bucket (ms). In summary mode the range is not
+ * length-adjustable — only its position is, paging window-by-window. */
+export const SUMMARY_WINDOW_MS: Record