diff --git a/packages/web/src/components/chat/ChatPage.tsx b/packages/web/src/components/chat/ChatPage.tsx index 4a51dd1..2b5ae78 100644 --- a/packages/web/src/components/chat/ChatPage.tsx +++ b/packages/web/src/components/chat/ChatPage.tsx @@ -80,7 +80,7 @@ export function ChatPage() { params={{ workspaceId, peerId } as never} className="hover:underline font-mono" > - {peerId} + {mask(peerId)} / Chat @@ -92,7 +92,8 @@ export function ChatPage() {

- Honcho responds using accumulated context for {peerId} + Honcho responds using accumulated context for{" "} + {mask(peerId)}

diff --git a/packages/web/src/components/conclusions/ConclusionBrowser.tsx b/packages/web/src/components/conclusions/ConclusionBrowser.tsx index 49f52e6..2cd756f 100644 --- a/packages/web/src/components/conclusions/ConclusionBrowser.tsx +++ b/packages/web/src/components/conclusions/ConclusionBrowser.tsx @@ -115,7 +115,7 @@ export function ConclusionBrowser() { style={{ color: "var(--text-3)" }} > - {workspaceId} + {mask(workspaceId)}
diff --git a/packages/web/src/components/dashboard/Dashboard.tsx b/packages/web/src/components/dashboard/Dashboard.tsx index ba7c8fd..f38fb56 100644 --- a/packages/web/src/components/dashboard/Dashboard.tsx +++ b/packages/web/src/components/dashboard/Dashboard.tsx @@ -7,6 +7,7 @@ import type { components } from "@/api/schema.d.ts"; import { ErrorAlert } from "@/components/shared/ErrorAlert"; import { PageLoader } from "@/components/shared/LoadingSpinner"; import { Body, Muted, PageTitle, SectionHeading } from "@/components/ui/typography"; +import { useDemo } from "@/hooks/useDemo"; import { COLOR } from "@/lib/constants"; import { formatCount } from "@/lib/utils"; @@ -15,6 +16,7 @@ type QueueStatus = components["schemas"]["QueueStatus"]; // ─── Per-workspace queue row ───────────────────────────────────────────────── function WorkspaceQueueRow({ workspaceId }: { workspaceId: string }) { + const { mask } = useDemo(); const { data, isLoading } = useQueueStatus(workspaceId); const pending = data?.pending_work_units ?? 0; @@ -40,7 +42,7 @@ function WorkspaceQueueRow({ workspaceId }: { workspaceId: string }) { className="font-mono text-xs truncate max-w-[200px] group-hover:underline" style={{ color: "var(--accent-text)" }} > - {workspaceId} + {mask(workspaceId)} - ).map(({ val, color }, i) => ( + { key: "total", val: total, color: "var(--text-2)" }, + { key: "done", val: done, color: COLOR.success }, + { key: "active", val: active, color: COLOR.warning }, + { key: "pending", val: pending, color: "var(--text-3)" }, + ] satisfies Array<{ key: string; val: number; color: string }> + ).map(({ key, val, color }) => ( diff --git a/packages/web/src/components/layout/Sidebar.tsx b/packages/web/src/components/layout/Sidebar.tsx index 3f05c78..139cd5e 100644 --- a/packages/web/src/components/layout/Sidebar.tsx +++ b/packages/web/src/components/layout/Sidebar.tsx @@ -25,7 +25,7 @@ export function Sidebar() { const matchRoute = useMatchRoute(); const config = loadConfig(); const { theme, toggle } = useTheme(); - const { demo, toggle: toggleDemo } = useDemo(); + const { demo, toggle: toggleDemo, mask } = useDemo(); return ( - {config.baseUrl.replace(/^https?:\/\//, "")} + {mask(config.baseUrl.replace(/^https?:\/\//, ""))}

)}
diff --git a/packages/web/src/components/peers/PeerDetail.tsx b/packages/web/src/components/peers/PeerDetail.tsx index 0cc6f45..4e7f5fe 100644 --- a/packages/web/src/components/peers/PeerDetail.tsx +++ b/packages/web/src/components/peers/PeerDetail.tsx @@ -88,7 +88,7 @@ export function PeerDetail() { params={{ workspaceId } as never} className="hover:underline font-mono" > - {workspaceId} + {mask(workspaceId)} /
- {peerId} + {mask(peerId)} {observeMe !== undefined && ( {repTarget ? ( <> - {peerId} + {mask(peerId)} - {repTarget} + {mask(repTarget)} ) : ( "Memory Representation" diff --git a/packages/web/src/components/peers/PeerList.tsx b/packages/web/src/components/peers/PeerList.tsx index 08669e5..d3387bb 100644 --- a/packages/web/src/components/peers/PeerList.tsx +++ b/packages/web/src/components/peers/PeerList.tsx @@ -112,7 +112,7 @@ export function PeerList() { style={{ color: COLOR.dimText }} > - {workspaceId} + {mask(workspaceId)}
@@ -139,7 +139,7 @@ export function PeerList() {
- {workspaceId} + {mask(workspaceId)} diff --git a/packages/web/src/components/sessions/SessionDetail.tsx b/packages/web/src/components/sessions/SessionDetail.tsx index 38cf27f..8213279 100644 --- a/packages/web/src/components/sessions/SessionDetail.tsx +++ b/packages/web/src/components/sessions/SessionDetail.tsx @@ -116,7 +116,7 @@ export function SessionDetail() { params={{ workspaceId } as never} className="hover:underline font-mono" > - {workspaceId} + {mask(workspaceId)} / - {sessionId} + {mask(sessionId)}
- {workspaceId} + {mask(workspaceId)} @@ -142,7 +144,7 @@ export function SessionList() { className="font-mono text-sm font-medium truncate" style={{ color: COLOR.accentSoft }} > - {session.id} + {mask(session.id)}
{session.is_active && ( @@ -189,7 +191,7 @@ export function SessionList() { color: COLOR.dimText, }} > - {(session.metadata as Record).source} + {mask((session.metadata as Record).source)} )}
diff --git a/packages/web/src/components/workspaces/WebhookManager.tsx b/packages/web/src/components/workspaces/WebhookManager.tsx index 459da22..91c7f97 100644 --- a/packages/web/src/components/workspaces/WebhookManager.tsx +++ b/packages/web/src/components/workspaces/WebhookManager.tsx @@ -11,6 +11,7 @@ import { PageLoader } from "@/components/shared/LoadingSpinner"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Body, Muted, PageTitle, SectionHeading } from "@/components/ui/typography"; +import { useDemo } from "@/hooks/useDemo"; import { COLOR } from "@/lib/constants"; const urlSchema = z.string().url({ message: "Must be a valid URL" }); @@ -20,6 +21,7 @@ interface Props { } export function WebhookManager({ workspaceId }: Props) { + const { mask } = useDemo(); const { data: webhooks, isLoading, error } = useWebhooks(workspaceId); const createWebhook = useCreateWebhook(workspaceId); const deleteWebhook = useDeleteWebhook(workspaceId); @@ -60,7 +62,7 @@ export function WebhookManager({ workspaceId }: Props) { style={{ color: "var(--text-3)" }} > - {workspaceId} + {mask(workspaceId)}
@@ -163,7 +165,7 @@ export function WebhookManager({ workspaceId }: Props) { className="text-xs font-mono truncate" style={{ color: "var(--accent-text)" }} > - {(wh as { url: string }).url} + {mask((wh as { url: string }).url)}
- {(wh as { id: string }).id} + {mask((wh as { id: string }).id)}