From b50ed2b8be2f7b83a1ccf960d6a08be7093b2f95 Mon Sep 17 00:00:00 2001 From: Andreas Molnar Date: Sun, 26 Jul 2026 09:13:12 +0000 Subject: [PATCH 1/2] fix monitoring link names --- apps/backend/src/lib/data/monitoring.ts | 16 ++++++++++++++-- .../apps/monitoring/[monitorId]/page.tsx | 4 ++-- .../(authenticated)/apps/monitoring/layout.tsx | 2 +- .../app/(authenticated)/apps/monitoring/page.tsx | 2 +- packages/types/sdk-types.ts | 7 +++++++ 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/apps/backend/src/lib/data/monitoring.ts b/apps/backend/src/lib/data/monitoring.ts index 2c9130b5..9b20e162 100644 --- a/apps/backend/src/lib/data/monitoring.ts +++ b/apps/backend/src/lib/data/monitoring.ts @@ -39,6 +39,13 @@ export interface MonitorRecord extends Pick< > { method?: string; linkId?: string; + expand?: { + sourcelinkId?: { + title?: string; + url?: string; + }; + [key: string]: unknown; + }; [key: string]: unknown; } @@ -181,14 +188,19 @@ function getLatestMonitorStatus(monitor: any): MonitorStatusSummary { export async function getMonitors(userId: string) { const pb = await getSuperuserPB(); - return pb.collection("monitors").getFullList({ filter: `userId = "${userId}"` }); + return pb.collection("monitors").getFullList({ + filter: `userId = "${userId}"`, + expand: "sourcelinkId", + }); } export async function getMonitorById(userId: string, monitorId: string) { const pb = await getSuperuserPB(); try { - const monitor = await pb.collection("monitors").getOne(monitorId); + const monitor = await pb.collection("monitors").getOne(monitorId, { + expand: "sourcelinkId", + }); return monitor?.userId === userId ? monitor : null; } catch { return null; diff --git a/apps/web/src/app/(authenticated)/apps/monitoring/[monitorId]/page.tsx b/apps/web/src/app/(authenticated)/apps/monitoring/[monitorId]/page.tsx index fb345ec8..7ac38e57 100644 --- a/apps/web/src/app/(authenticated)/apps/monitoring/[monitorId]/page.tsx +++ b/apps/web/src/app/(authenticated)/apps/monitoring/[monitorId]/page.tsx @@ -392,9 +392,9 @@ export default function MonitoringDetailPage() { ); } - const monitorTitle = linkEntry?.title || monitor.endpoint || + const monitorTitle = monitor.expand?.sourcelinkId?.title || linkEntry?.title || monitor.endpoint || monitor.sourcelinkId || monitor.source || monitor.id; - const monitoredUrl = linkEntry?.url || monitor.endpoint || "Unknown"; + const monitoredUrl = monitor.expand?.sourcelinkId?.url || linkEntry?.url || monitor.endpoint || "Unknown"; const method = String(monitor.method || "GET").toUpperCase(); const changeLabel = formatStatusLabel(currentStatus); diff --git a/apps/web/src/app/(authenticated)/apps/monitoring/layout.tsx b/apps/web/src/app/(authenticated)/apps/monitoring/layout.tsx index d3e1acd0..72516290 100644 --- a/apps/web/src/app/(authenticated)/apps/monitoring/layout.tsx +++ b/apps/web/src/app/(authenticated)/apps/monitoring/layout.tsx @@ -88,7 +88,7 @@ export default function MonitoringRootLayout() { key={monitor.id} dst={`/apps/monitoring/${monitor.id}`} icon="fa6-solid:server" - title={entry?.title || monitor.endpoint || monitor.sourcelinkId || monitor.source || monitor.id} + title={monitor.expand?.sourcelinkId?.title || entry?.title || monitor.endpoint || monitor.sourcelinkId || monitor.source || monitor.id} group="Monitors" badge={monitor.status ? monitor.status : undefined} /> diff --git a/apps/web/src/app/(authenticated)/apps/monitoring/page.tsx b/apps/web/src/app/(authenticated)/apps/monitoring/page.tsx index 3cba6866..2fee96a4 100644 --- a/apps/web/src/app/(authenticated)/apps/monitoring/page.tsx +++ b/apps/web/src/app/(authenticated)/apps/monitoring/page.tsx @@ -93,7 +93,7 @@ function formatStatusLabel(status?: string) { } function getMonitorTitle(monitor: MonitorRecord) { - return monitor.endpoint || monitor.sourcelinkId || monitor.source || monitor.id; + return monitor.expand?.sourcelinkId?.title || monitor.endpoint || monitor.sourcelinkId || monitor.source || monitor.id; } function getCurrentStatus(monitor: MonitorRecord) { diff --git a/packages/types/sdk-types.ts b/packages/types/sdk-types.ts index 8b2ec6a8..9b08e3c3 100644 --- a/packages/types/sdk-types.ts +++ b/packages/types/sdk-types.ts @@ -63,6 +63,13 @@ export type MonitorRecord = { updated: string; method?: string; linkId?: string; + expand?: { + sourcelinkId?: { + title?: string; + url?: string; + }; + [key: string]: unknown; + }; [key: string]: unknown; }; From ed52d5d68f58f2cac6373e5171fdf742b68667ae Mon Sep 17 00:00:00 2001 From: Andreas Molnar Date: Sun, 26 Jul 2026 09:19:08 +0000 Subject: [PATCH 2/2] Fix typo in AGENTS.md --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index a997e34c..700f3715 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,7 +32,7 @@ This repository is a Bun-based monorepo for `dashwise`, a self-hosted homelab da - Avoid introducing new package managers or build systems. - Prefer modifying existing shared packages in `packages/` when changes affect both apps. - Preserve PocketBase migration structure in `pocketbase/migrations` when updating schema or collection configuration. -- Use design.md standars for designing uis. +- Use design.md standards for designing uis. ## Useful commands