Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
a5aaf67
Initial plan
Copilot Aug 20, 2025
7dd9bc6
Initial plan
Copilot Aug 20, 2025
ca5d248
Initial plan
Copilot Aug 20, 2025
fc72ab7
Initial plan
Copilot Aug 20, 2025
dd1d4cf
Initial plan
Copilot Aug 22, 2025
7436b56
Initial plan
Copilot Aug 22, 2025
f68ead8
Initial plan
Copilot Aug 23, 2025
f2407bc
Initial plan
Copilot Aug 23, 2025
96be37c
Initial plan
Copilot Aug 20, 2025
ff02ac8
Initial plan
Copilot Aug 23, 2025
f7a70c4
Initial plan
Copilot Aug 24, 2025
6304c9f
Initial plan
Copilot Aug 23, 2025
c1192b3
Initial plan
Copilot Aug 23, 2025
4afdd76
Initial plan
Copilot Sep 9, 2025
2b3d574
Initial plan
Copilot Sep 11, 2025
1d91027
Initial plan
Copilot Sep 10, 2025
daf95e4
Initial plan
Copilot Sep 11, 2025
9a49503
Initial plan
Copilot Sep 12, 2025
4e7ef37
Initial plan
Copilot Oct 4, 2025
a5f9b81
Initial plan
Copilot Oct 17, 2025
220b005
Initial plan
Copilot Oct 17, 2025
e884ea3
Initial plan
Copilot Oct 18, 2025
6a38804
Initial plan
Copilot Oct 20, 2025
e5f0a08
Initial plan
Copilot Oct 25, 2025
cbe4c7b
Initial plan
Copilot Oct 26, 2025
8ec722c
Initial plan
Copilot Nov 18, 2025
147dd44
Initial plan
Copilot Nov 6, 2025
25561c8
Initial plan
Copilot Nov 6, 2025
81131c8
Initial plan
Copilot Nov 8, 2025
3ae1d9e
Initial plan
Copilot Nov 8, 2025
2764d40
Initial plan
Copilot Nov 9, 2025
31f0b18
Initial plan
Copilot Nov 9, 2025
48d861f
Initial plan
Copilot Nov 11, 2025
b28db83
Initial plan
Copilot Nov 11, 2025
507ee4e
Initial plan
Copilot Nov 11, 2025
be10ad0
Initial plan
Copilot Nov 11, 2025
a076cc2
Initial plan
Copilot Nov 18, 2025
c20b714
Initial plan
Copilot Nov 18, 2025
3ba0a56
Initial plan
Copilot Nov 18, 2025
ee1af13
Initial plan
Copilot Nov 18, 2025
e575de0
Initial plan
Copilot Nov 18, 2025
74b5e11
Initial plan
Copilot Nov 18, 2025
1c7d616
Initial plan
Copilot Nov 18, 2025
5d2088c
Initial plan
Copilot Nov 18, 2025
b48c1dc
Initial plan
Copilot Nov 18, 2025
fa56bfd
Initial plan
Copilot Nov 18, 2025
2e311d0
Initial plan
Copilot Nov 18, 2025
86c0fd4
Initial plan
Copilot Nov 18, 2025
d50e2c4
Initial plan
Copilot Nov 18, 2025
43c3e34
Initial plan
Copilot Dec 2, 2025
223398d
Initial plan
Copilot Dec 13, 2025
26cc6cf
Initial plan
Copilot Mar 9, 2026
ae9f017
Initial plan
Copilot Mar 9, 2026
e8439dd
Initial plan
Copilot Mar 9, 2026
2d40dce
Initial plan
Copilot Mar 10, 2026
f2d7cb0
Initial plan
Copilot Mar 9, 2026
9aabab8
Initial plan
Copilot Mar 10, 2026
53492fe
Initial plan
Copilot Feb 21, 2026
c787421
Initial plan
Copilot Feb 27, 2026
d5e3a81
Initial plan
Copilot Mar 10, 2026
b39022d
Initial plan
Copilot Mar 7, 2026
2184d27
Initial plan
Copilot Mar 10, 2026
d61fbb3
Initial plan
Copilot Mar 11, 2026
8ee1677
Initial plan
Copilot Mar 9, 2026
fae179a
Initial plan
Copilot Mar 9, 2026
e08d766
Initial plan
Copilot Mar 13, 2026
ff4f307
Initial plan
Copilot Mar 13, 2026
86a1f43
Initial plan
Copilot Mar 13, 2026
3a66371
Initial plan
Copilot Mar 13, 2026
ef8ac67
fix(expo/CreatePackItemForm): default quantity to 1 instead of 0
mikib0 Mar 13, 2026
75943d0
Initial plan
Copilot Mar 13, 2026
ceac134
Initial plan
Copilot Mar 16, 2026
afe5309
Initial plan
Copilot Mar 9, 2026
b7bb4bf
Initial plan
Copilot Mar 13, 2026
aac852c
Initial plan
Copilot Mar 13, 2026
f7e55b4
Initial plan
Copilot Mar 9, 2026
84ffcf5
Initial plan
Copilot Mar 9, 2026
c50e320
Initial plan
Copilot Apr 1, 2026
de03ce8
Initial plan
Copilot Mar 21, 2026
98fe064
Initial plan
Copilot Mar 9, 2026
00bce2c
Initial plan
Copilot Mar 9, 2026
765420c
Initial plan
Copilot Mar 9, 2026
c75bcc8
Initial plan
Copilot Mar 9, 2026
b01a626
Initial plan
Copilot Mar 9, 2026
f0a391d
Initial plan
Copilot Mar 9, 2026
7bc17fb
Initial plan
Copilot Mar 9, 2026
48c0fc2
Initial plan
Copilot Mar 9, 2026
9c1dc69
Initial plan
Copilot Mar 9, 2026
16a064e
Initial plan
Copilot Mar 9, 2026
5547538
Initial plan
Copilot Aug 22, 2025
e8e2242
Initial plan
Copilot Feb 27, 2026
f5d9e04
chore: reopen trigger (no-op commit to restore PR state)
andrew-bierman Apr 11, 2026
313ed2d
ci: trigger biome check
andrew-bierman Apr 11, 2026
e024244
ci: retrigger CI after biome fixes
andrew-bierman Apr 11, 2026
8e7f2f6
Initial plan
Copilot Mar 9, 2026
f34276d
ci: trigger checks for dependabot merges
andrew-bierman Apr 13, 2026
9681d38
Initial plan
Copilot Apr 13, 2026
8952df8
ci: retrigger checks after copilot merge-conflict fix
andrew-bierman Apr 14, 2026
913308f
ci: trigger CI on Copilot bot's expo-symbols type fixes
andrew-bierman Apr 14, 2026
bb37756
Initial plan
Copilot Apr 14, 2026
b71551b
trigger: retrigger CI after node_modules clean install verified vites…
andrew-bierman Apr 15, 2026
2b666bc
Initial plan
Copilot Apr 14, 2026
8f88e86
trigger: retrigger CI after node_modules clean install verified vites…
andrew-bierman Apr 15, 2026
e90358c
ci: re-trigger checks after @types/react alignment fix
claude Apr 16, 2026
f40247d
Initial plan
Copilot Apr 14, 2026
5ea7e8a
Initial plan
Copilot Apr 16, 2026
81efd65
ci: trigger CI run on updated branch
claude Apr 16, 2026
6d5eb05
Initial plan
Copilot Sep 22, 2025
395e7c7
Initial plan
Copilot Sep 22, 2025
99fdc15
ci: trigger workflows
andrew-bierman Apr 14, 2026
ce4ef78
ci: retrigger CI after suspected transient runner failure
claude Apr 26, 2026
1b96ae7
ci: retrigger workflows
andrew-bierman Apr 29, 2026
8c7f16a
chore(lint): restore no-owned-max-params custom check script
andrew-bierman May 13, 2026
ee56422
refactor: convert all owned functions to single object-param signatures
andrew-bierman May 13, 2026
db5a180
fix(casts): move safe-cast annotations inside object literals to sati…
andrew-bierman May 13, 2026
f7badf3
fix(admin): convert adminFetch and queryKeys.osm.search to object params
andrew-bierman May 14, 2026
04fe23c
fix(types): correct missed callers from object-param refactor
andrew-bierman May 14, 2026
badec43
fix(auth): update timingSafeEqual call to object-param signature
andrew-bierman May 14, 2026
5d9c863
Merge branch 'development' into chore-biome-max-params-one
andrew-bierman May 16, 2026
fbcf432
Merge branch 'development' into chore-biome-max-params-one (re-rebase)
andrew-bierman May 17, 2026
a95f8df
Merge branch 'development' into chore-biome-max-params-one (after #23…
andrew-bierman May 17, 2026
75e0680
chore(ci): retrigger CF Pages after transient build failure
andrew-bierman May 17, 2026
4bdcd7e
Merge branch 'development' into chore-biome-max-params-one
andrew-bierman May 17, 2026
ec9ccf1
chore: pin Bun version via .bun-version
andrew-bierman May 17, 2026
7f6ccf8
Merge branch 'development' into chore-biome-max-params-one (after #24…
andrew-bierman May 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion apps/admin/app/dashboard/trails/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function TrailSearchSection({
const [activeSport, setActiveSport] = useState('');

const { data, isLoading, isError } = useQuery({
queryKey: queryKeys.osm.search(activeQ, activeSport || undefined),
queryKey: queryKeys.osm.search({ q: activeQ, sport: activeSport || undefined }),
queryFn: () => searchTrails({ q: activeQ, sport: activeSport || undefined }),
enabled: activeQ.length > 0,
});
Expand Down
2 changes: 1 addition & 1 deletion apps/admin/components/analytics/catalog-analytics.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ function statusBadgeVariant(status: string): 'default' | 'secondary' | 'destruct

function EtlJobFailuresDialog({ jobId, totalInvalid }: { jobId: string; totalInvalid: number }) {
const [open, setOpen] = useState(false);
const { data, isLoading } = useEtlJobFailures(jobId, { enabled: open });
const { data, isLoading } = useEtlJobFailures({ jobId, opts: { enabled: open } });

return (
<Dialog open={open} onOpenChange={setOpen}>
Expand Down
6 changes: 3 additions & 3 deletions apps/admin/components/analytics/platform-analytics.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const BREAKDOWN_COLORS = [
type Period = 'day' | 'week' | 'month';
const PERIODS = ['day', 'week', 'month'] as const satisfies readonly Period[];

function formatPeriodLabel(v: string, period: Period) {
function formatPeriodLabel({ v, period }: { v: string; period: Period }) {
const d = new Date(v);
if (period === 'day') return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
if (period === 'week') return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
Expand Down Expand Up @@ -122,7 +122,7 @@ export function PlatformAnalytics() {
dataKey="period"
tickLine={false}
axisLine={false}
tickFormatter={(v: string) => formatPeriodLabel(v, period)}
tickFormatter={(v: string) => formatPeriodLabel({ v, period })}
/>
<YAxis tickLine={false} axisLine={false} width={40} />
<ChartTooltip content={<ChartTooltipContent />} />
Expand Down Expand Up @@ -177,7 +177,7 @@ export function PlatformAnalytics() {
dataKey="period"
tickLine={false}
axisLine={false}
tickFormatter={(v: string) => formatPeriodLabel(v, period)}
tickFormatter={(v: string) => formatPeriodLabel({ v, period })}
/>
<YAxis tickLine={false} axisLine={false} width={40} />
<ChartTooltip content={<ChartTooltipContent />} />
Expand Down
4 changes: 2 additions & 2 deletions apps/admin/components/edit-catalog-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
import { Input } from '@packrat/web-ui/components/input';
import { Label } from '@packrat/web-ui/components/label';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import type { AdminCatalogItem } from 'admin-app/lib/api';
import type { AdminCatalogItem, UpdateCatalogItemInput } from 'admin-app/lib/api';
import { updateCatalogItem } from 'admin-app/lib/api';
import { queryKeys } from 'admin-app/lib/queryKeys';
import { Pencil } from 'lucide-react';
Expand All @@ -27,7 +27,7 @@ export function EditCatalogDialog({ item }: EditCatalogDialogProps) {
const queryClient = useQueryClient();

const { mutate, isPending } = useMutation({
mutationFn: (data: Parameters<typeof updateCatalogItem>[1]) => updateCatalogItem(item.id, data),
mutationFn: (data: UpdateCatalogItemInput) => updateCatalogItem({ id: item.id, body: data }),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: queryKeys.admin.catalog.all() });
setOpen(false);
Expand Down
12 changes: 9 additions & 3 deletions apps/admin/hooks/use-catalog-analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,17 @@ export function useEtlFailureSummary(limit = 20) {
});
}

export function useEtlJobFailures(jobId: string, opts: { enabled?: boolean; limit?: number } = {}) {
export function useEtlJobFailures({
jobId,
opts = {},
}: {
jobId: string;
opts?: { enabled?: boolean; limit?: number };
}) {
const { enabled = false, limit = 50 } = opts;
return useQuery({
queryKey: queryKeys.catalogAnalytics.etl.jobFailures(jobId, limit),
queryFn: () => getEtlJobFailures(jobId, limit),
queryKey: queryKeys.catalogAnalytics.etl.jobFailures({ jobId, limit }),
queryFn: () => getEtlJobFailures({ jobId, limit }),
enabled,
});
}
4 changes: 2 additions & 2 deletions apps/admin/hooks/use-platform-analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import { queryKeys } from 'admin-app/lib/queryKeys';
export function usePlatformGrowth(period: 'day' | 'week' | 'month') {
return useQuery({
queryKey: queryKeys.platform.growth(period),
queryFn: () => getPlatformGrowth(period),
queryFn: () => getPlatformGrowth({ period }),
});
}

export function usePlatformActivity(period: 'day' | 'week' | 'month') {
return useQuery({
queryKey: queryKeys.platform.activity(period),
queryFn: () => getPlatformActivity(period),
queryFn: () => getPlatformActivity({ period }),
});
}

Expand Down
Loading
Loading