@polishd/next 0.2.3-dev.1 → 0.2.3-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { after } from "next/server";
3
+ import { Suspense } from "react";
3
4
  import { registerPolishdDashboardRoute } from "../config";
4
5
  import { captureStatus } from "../shared/capture-status";
5
- import { getMonitoredComponents, getTelemetryInstalls, getTelemetryTopPaths, getTopInteractions, hasTelemetryInstalls, loadPolishdDashboardData, } from "../server/queries";
6
+ import { getTelemetryInstalls, getTelemetryTopPaths, hasTelemetryInstalls, } from "../server/queries";
7
+ import { loadDashboardData, loadDevices, loadElements, loadErrors, loadHealth, loadJourneys, loadMonitored, loadOverview, loadPages, loadTopUsed, loadTrends, } from "./data";
6
8
  import { polishdAuthContext, registerPolishdAuth, } from "../ai/guard";
7
9
  import { polishdDashboardToken, polishdTokenAuth, } from "./token-auth";
8
10
  import { unlockPolishdDashboard } from "./unlock";
@@ -15,7 +17,7 @@ import { loadProfileState } from "../ai/profile";
15
17
  import { generateSummary, getAISettingsPublic, loadSummaryState } from "../ai/summary";
16
18
  import { getDesignData } from "../server/design";
17
19
  import { listSnapshots, snapshotCaptureIssue } from "../server/snapshots";
18
- import DashboardChrome from "./chrome";
20
+ import DashboardChrome, { TabSkeleton } from "./chrome";
19
21
  import { DesignPanel } from "./design";
20
22
  import InstallsView from "./installs";
21
23
  import IssuesView from "./issues";
@@ -76,18 +78,204 @@ export { loadPolishdDashboardData } from "../server/queries";
76
78
  // Named explicitly by hosts that want token auth alongside their own options;
77
79
  // `createPolishdPage()` already applies it when POLISHD_DASHBOARD_TOKEN is set.
78
80
  export { polishdTokenAuth, POLISHD_DASHBOARD_COOKIE, } from "./token-auth";
79
- // ── Dashboard (presentational) ───────────────────────────────────────────────
80
- export function PolishdDashboard({ data, ai, showInstalls = false, showIssues = false, }) {
81
- const { overview, health, pages, trends, elements, devices, topUsed, journeys, errors, monitored, } = data;
81
+ // ── Analytics: header + status (shared by batch and streamed renders) ────────
82
+ function AnalyticsHeader({ pill }) {
83
+ return (_jsxs("div", { className: `mb-8 flex items-start justify-between gap-3 border-b ${border} pb-6`, children: [_jsxs("div", { children: [_jsx("h1", { className: "text-[22px] font-semibold tracking-tight text-white", children: "Analytics" }), _jsxs("p", { className: "mt-1 text-[13px] text-[#666]", children: ["Stage 1 \u2014 Capture. Hover", " ", _jsx("span", { className: "inline-flex h-3 w-3 items-center justify-center rounded-full border border-[#444] text-[8px] font-bold text-[#666]", children: "i" }), " ", "for calculation details."] })] }), pill] }));
84
+ }
85
+ function StatusPill({ ready }) {
86
+ return (_jsx("div", { className: `shrink-0 whitespace-nowrap rounded-full px-3 py-1 text-[11px] font-medium ${ready
87
+ ? "bg-emerald-950 text-emerald-400"
88
+ : "bg-[#1a1a1a] text-[#666]"}`, children: ready ? "● collecting" : "○ no store" }));
89
+ }
90
+ function StatusBanners({ overview, health, }) {
82
91
  // Events arriving without a session cookie mean the proxy didn't run on
83
92
  // those requests — or that something posted straight at the public endpoint.
84
93
  // Telling those apart is the whole job of `captureStatus`, which lives in
85
94
  // shared/capture-status.ts with the record ingest writes, and is tested.
86
95
  const capture = captureStatus(health, overview.totalEvents);
87
96
  const windowLabel = `${Math.round(health.windowMs / 3_600_000)}h`;
88
- return (_jsx(DashboardChrome, { active: "analytics", showInstalls: showInstalls, showIssues: showIssues, children: _jsxs("main", { className: "text-white", children: [_jsxs("div", { className: `mb-8 flex items-start justify-between gap-3 border-b ${border} pb-6`, children: [_jsxs("div", { children: [_jsx("h1", { className: "text-[22px] font-semibold tracking-tight text-white", children: "Analytics" }), _jsxs("p", { className: "mt-1 text-[13px] text-[#666]", children: ["Stage 1 \u2014 Capture. Hover", " ", _jsx("span", { className: "inline-flex h-3 w-3 items-center justify-center rounded-full border border-[#444] text-[8px] font-bold text-[#666]", children: "i" }), " ", "for calculation details."] })] }), _jsx("div", { className: `shrink-0 whitespace-nowrap rounded-full px-3 py-1 text-[11px] font-medium ${overview.ready
89
- ? "bg-emerald-950 text-emerald-400"
90
- : "bg-[#1a1a1a] text-[#666]"}`, children: overview.ready ? "● collecting" : "○ no store" })] }), !overview.ready && (_jsxs("div", { className: `mb-8 rounded-lg border border-amber-900/50 bg-amber-950/30 px-4 py-3 text-[13px] text-amber-400`, children: ["The analytics store isn't writable in this environment. Run locally or configure a database \u2014 see the ", _jsx("span", { className: "font-mono text-amber-300", children: "@polishd/next" }), " DATABASE.md guide."] })), capture.level === "broken" && (_jsxs("div", { className: "mb-8 rounded-lg border border-red-900/50 bg-red-950/30 px-4 py-3 text-[13px] text-red-400", children: [_jsx("p", { className: "font-medium text-red-300", children: "Receiving events, but no session cookie \u2014 your proxy isn't running." }), _jsxs("p", { className: "mt-1.5", children: [capture.droppedBatches.toLocaleString(), " ", capture.droppedBatches === 1 ? "batch has" : "batches have", " been dropped", capture.nothingStored ? "" : ` and nothing has been stored in the last ${windowLabel}`, ". Polishd attributes every event to the anonymous cookie the proxy mints", capture.nothingStored ? ", so nothing is being stored" : "", ". Check that you have a", " ", _jsx("span", { className: "font-mono text-red-300", children: "proxy.ts" }), " (Next 16+) or", " ", _jsx("span", { className: "font-mono text-red-300", children: "middleware.ts" }), " (Next 15) at your project root \u2014 matching your installed Next major \u2014 exporting a function of the same name, with", " ", _jsx("span", { className: "font-mono text-red-300", children: "config.matcher" }), " written as an inline literal that covers the pages you're capturing."] }), _jsxs("p", { className: "mt-1.5 text-red-500/80", children: ["Run", " ", _jsx("span", { className: "font-mono text-red-300", children: "npx @polishd/next doctor --url <your deployed origin>" }), " ", "to check this against the running site. Plain", " ", _jsx("span", { className: "font-mono text-red-300", children: "doctor" }), " only reads your source tree, so it can pass every check while the deployed build still doesn't mint a cookie \u2014", " ", _jsx("span", { className: "font-mono text-red-300", children: "--url" }), " is the part that proves it."] })] })), capture.level === "notice" && (_jsx("div", { className: `mb-8 rounded-lg border ${border} bg-[#0f0f0f] px-4 py-3 text-[13px] text-[#999]`, children: _jsxs("p", { children: [capture.droppedBatches.toLocaleString(), " ", capture.droppedBatches === 1 ? "batch" : "batches", " arrived without a session cookie in the last ", windowLabel, capture.sharePct !== null && ` — ${formatShare(capture.sharePct)} of traffic`, " (bots, or visitors with cookies blocked). Those events aren't stored; capture itself is working", capture.storedSinceDrop ? " — a batch has been stored since the most recent drop" : "", "."] }) })), _jsx(SummaryCard, { initialSummary: ai.summary, initialSettings: ai.settings, initialStale: ai.stale, initialProfile: ai.profile, initialGaps: ai.gaps, sourceAvailable: ai.sourceAvailable }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Overview", _jsx(InfoTip, { anchor: "left", text: "All-time totals for everything captured. Click any tile to open that metric as a chart over time, bucketed by hour or by day." })] }), children: _jsx(OverviewStatTiles, { overview: overview, trends: trends }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Device sizes", _jsx(InfoTip, { anchor: "left", text: "One viewport sample per session, taken at session start, bucketed by CSS width: mobile (<640px), tablet (640\u20131023px), desktop (\u22651024px). Shows what screen size visitors actually use." })] }), children: _jsx("div", { className: card, children: devices.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No viewport data yet \u2014 browse the site then refresh." })) : (devices.map((d) => _jsx(DeviceRow, { bucket: d }, d.category))) }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Top pages", _jsx(InfoTip, { anchor: "left", text: "The most-visited routes, ranked by distinct sessions. Click a page to open a chart of its sessions over time." })] }), children: _jsx(TopPagesTable, { pages: pages }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Monitored components", _jsx(InfoTip, { anchor: "left", text: "Components explicitly wrapped in <PolishdMonitor>. Shows viewport engagement (views, avg time visible, scroll depth, dimensions) alongside click activity. A high view count with low clicks often signals interest without commitment." })] }), children: _jsx("div", { className: card, children: monitored.length === 0 ? (_jsxs("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: ["No monitored components yet \u2014 wrap elements with", " ", _jsx("code", { className: "font-mono text-[#777]", children: "<PolishdMonitor name=\"…\">" }), " to track them here."] })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[820px]", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "The name prop passed to <PolishdMonitor>. Sessions and pages shown beneath.", children: "Component" }), _jsx(Th, { tip: "Times this region rendered (mount events). Only content-tracked monitors emit these.", children: "Mounts" }), _jsx(Th, { tip: "Times this component entered the viewport for \u2265500ms.", children: "Views" }), _jsx(Th, { tip: "Average time visible per viewport visit \u2014 a proxy for reading/engagement time.", children: "Avg time" }), _jsx(Th, { tip: "Average % of the component's height scrolled through per visit. 100% = user reached the bottom. Only measured for components taller than one screen \u2014 shorter ones show no value.", children: "Scroll depth" }), _jsx(Th, { tip: "Largest rendered height in px seen for this component \u2014 for an article, its full content height.", children: "Height" }), _jsx(Th, { tip: "Normal (non-rage, non-dead) clicks.", children: "Clicks" }), _jsx(Th, { tip: "Deliberate pointer hovers (\u2265200ms dwell).", children: "Hovers" }), _jsx(Th, { tip: "Rage clicks (3+ rapid clicks) \u2014 frustration signal.", children: "Rage" })] }) }), _jsx("tbody", { children: monitored.map((m) => (_jsx(MonitoredRow, { m: m }, m.name))) })] }) })) }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Sampled user journeys", _jsx(InfoTip, { anchor: "left", text: "Full sessions sampled and ranked by a composite score (rage\u00D73 + dead\u00D72 + errors\u00D72.5), preferring complete recordings and recent ones. Click a session to open its start-to-finish flow chart." })] }), children: _jsx(JourneyList, { journeys: journeys }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Most-used features", _jsx(InfoTip, { anchor: "left", text: "Interactive elements ranked by raw click volume (successful clicks only \u2014 rage and dead clicks excluded). The buttons and features visitors actually use most." })] }), children: _jsx("div", { className: card, children: topUsed.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No clicks captured yet \u2014 browse the site then refresh." })) : (_jsx(TopFeaturesTable, { features: topUsed, header: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "Component name (from data-component) or DOM selector. Sample text and selector shown beneath.", children: "Element" }), _jsx(Th, { tip: "Total successful (interactive) clicks across all pages.", children: "Clicks" }), _jsx(Th, { tip: "Distinct sessions that clicked this element.", children: "Sessions" }), _jsx(Th, { tip: "How many distinct pages this element was clicked on.", children: "Pages" })] }) })) }) }), _jsx(Section, { title: _jsxs(_Fragment, { children: ["Interactions by element", _jsx(InfoTip, { anchor: "left", text: "Click-type events grouped by DOM selector. This is which UI element the issues are on \u2014 the primary input to Stage 2 synthesis. Components wrapped in <PolishdMonitor> are listed separately under Monitored components." })] }), children: _jsx("div", { className: card, children: elements.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No interactions captured yet \u2014 browse the site then refresh." })) : (_jsx(ElementsTable, { elements: elements, header: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "DOM selector path for the interacted element. Sample text shown beneath.", children: "Element" }), _jsx(Th, { tip: "rage\u00D73 + dead\u00D72 for this element across all pages.", children: "Score" }), _jsx(Th, { tip: "Normal (non-rage, non-dead) clicks.", children: "Clicks" }), _jsx(Th, { tip: "Rage clicks on this element.", children: "Rage" }), _jsx(Th, { tip: "Dead clicks on this element.", children: "Dead" }), _jsx(Th, { tip: "How many distinct pages this element appeared on.", children: "Pages" })] }) })) }) }), errors.length > 0 && (_jsx(Section, { title: "Recent errors", children: _jsx("div", { className: card, children: errors.map((e, i) => (_jsx("div", { className: i > 0 ? divider : "", children: _jsxs("div", { className: "px-5 py-3", children: [_jsx("div", { className: `font-mono text-[13px] ${e.origin ? "text-[#8a6a6a]" : "text-red-400"}`, children: e.message }), _jsxs("div", { className: "mt-0.5 text-[11px] text-[#555]", children: [e.path, e.component ? ` · ${e.component}` : "", e.origin === "foreign" ? " · not your code" : "", e.origin === "unknown" ? " · unattributable" : ""] })] }) }, i))) }) }))] }) }));
97
+ return (_jsxs(_Fragment, { children: [!overview.ready && (_jsxs("div", { className: `mb-8 rounded-lg border border-amber-900/50 bg-amber-950/30 px-4 py-3 text-[13px] text-amber-400`, children: ["The analytics store isn't writable in this environment. Run locally or configure a database \u2014 see the ", _jsx("span", { className: "font-mono text-amber-300", children: "@polishd/next" }), " DATABASE.md guide."] })), capture.level === "broken" && (_jsxs("div", { className: "mb-8 rounded-lg border border-red-900/50 bg-red-950/30 px-4 py-3 text-[13px] text-red-400", children: [_jsx("p", { className: "font-medium text-red-300", children: "Receiving events, but no session cookie \u2014 your proxy isn't running." }), _jsxs("p", { className: "mt-1.5", children: [capture.droppedBatches.toLocaleString(), " ", capture.droppedBatches === 1 ? "batch has" : "batches have", " been dropped", capture.nothingStored ? "" : ` and nothing has been stored in the last ${windowLabel}`, ". Polishd attributes every event to the anonymous cookie the proxy mints", capture.nothingStored ? ", so nothing is being stored" : "", ". Check that you have a", " ", _jsx("span", { className: "font-mono text-red-300", children: "proxy.ts" }), " (Next 16+) or", " ", _jsx("span", { className: "font-mono text-red-300", children: "middleware.ts" }), " (Next 15) at your project root \u2014 matching your installed Next major \u2014 exporting a function of the same name, with", " ", _jsx("span", { className: "font-mono text-red-300", children: "config.matcher" }), " written as an inline literal that covers the pages you're capturing."] }), _jsxs("p", { className: "mt-1.5 text-red-500/80", children: ["Run", " ", _jsx("span", { className: "font-mono text-red-300", children: "npx @polishd/next doctor --url <your deployed origin>" }), " ", "to check this against the running site. Plain", " ", _jsx("span", { className: "font-mono text-red-300", children: "doctor" }), " only reads your source tree, so it can pass every check while the deployed build still doesn't mint a cookie \u2014", " ", _jsx("span", { className: "font-mono text-red-300", children: "--url" }), " is the part that proves it."] })] })), capture.level === "notice" && (_jsx("div", { className: `mb-8 rounded-lg border ${border} bg-[#0f0f0f] px-4 py-3 text-[13px] text-[#999]`, children: _jsxs("p", { children: [capture.droppedBatches.toLocaleString(), " ", capture.droppedBatches === 1 ? "batch" : "batches", " arrived without a session cookie in the last ", windowLabel, capture.sharePct !== null && ` — ${formatShare(capture.sharePct)} of traffic`, " (bots, or visitors with cookies blocked). Those events aren't stored; capture itself is working", capture.storedSinceDrop ? " — a batch has been stored since the most recent drop" : "", "."] }) }))] }));
98
+ }
99
+ // ── Analytics: section shells ────────────────────────────────────────────────
100
+ // The titles render before their data arrives, so each shell takes the card
101
+ // as children — the batch render passes it resolved, the streamed render
102
+ // passes a Suspense boundary.
103
+ function OverviewSection({ children }) {
104
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Overview", _jsx(InfoTip, { anchor: "left", text: "All-time totals for everything captured. Click any tile to open that metric as a chart over time, bucketed by hour or by day." })] }), children: children }));
105
+ }
106
+ function DevicesSection({ children }) {
107
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Device sizes", _jsx(InfoTip, { anchor: "left", text: "One viewport sample per session, taken at session start, bucketed by CSS width: mobile (<640px), tablet (640\u20131023px), desktop (\u22651024px). Shows what screen size visitors actually use." })] }), children: children }));
108
+ }
109
+ function PagesSection({ children }) {
110
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Top pages", _jsx(InfoTip, { anchor: "left", text: "The most-visited routes, ranked by distinct sessions. Click a page to open a chart of its sessions over time." })] }), children: children }));
111
+ }
112
+ function DevicesCard({ devices }) {
113
+ return (_jsx("div", { className: card, children: devices.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No viewport data yet \u2014 browse the site then refresh." })) : (devices.map((d) => _jsx(DeviceRow, { bucket: d }, d.category))) }));
114
+ }
115
+ function MonitoredSection({ children }) {
116
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Monitored components", _jsx(InfoTip, { anchor: "left", text: "Components explicitly wrapped in <PolishdMonitor>. Shows viewport engagement (views, avg time visible, scroll depth, dimensions) alongside click activity. A high view count with low clicks often signals interest without commitment." })] }), children: children }));
117
+ }
118
+ function MonitoredCard({ monitored }) {
119
+ return (_jsx("div", { className: card, children: monitored.length === 0 ? (_jsxs("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: ["No monitored components yet \u2014 wrap elements with", " ", _jsx("code", { className: "font-mono text-[#777]", children: "<PolishdMonitor name=\"…\">" }), " to track them here."] })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[820px]", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "The name prop passed to <PolishdMonitor>. Sessions and pages shown beneath.", children: "Component" }), _jsx(Th, { tip: "Times this region rendered (mount events). Only content-tracked monitors emit these.", children: "Mounts" }), _jsx(Th, { tip: "Times this component entered the viewport for \u2265500ms.", children: "Views" }), _jsx(Th, { tip: "Average time visible per viewport visit \u2014 a proxy for reading/engagement time.", children: "Avg time" }), _jsx(Th, { tip: "Average % of the component's height scrolled through per visit. 100% = user reached the bottom. Only measured for components taller than one screen \u2014 shorter ones show no value.", children: "Scroll depth" }), _jsx(Th, { tip: "Largest rendered height in px seen for this component \u2014 for an article, its full content height.", children: "Height" }), _jsx(Th, { tip: "Normal (non-rage, non-dead) clicks.", children: "Clicks" }), _jsx(Th, { tip: "Deliberate pointer hovers (\u2265200ms dwell).", children: "Hovers" }), _jsx(Th, { tip: "Rage clicks (3+ rapid clicks) \u2014 frustration signal.", children: "Rage" })] }) }), _jsx("tbody", { children: monitored.map((m) => (_jsx(MonitoredRow, { m: m }, m.name))) })] }) })) }));
120
+ }
121
+ function JourneysSection({ children }) {
122
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Sampled user journeys", _jsx(InfoTip, { anchor: "left", text: "Full sessions sampled and ranked by a composite score (rage\u00D73 + dead\u00D72 + errors\u00D72.5), preferring complete recordings and recent ones. Click a session to open its start-to-finish flow chart." })] }), children: children }));
123
+ }
124
+ function FeaturesSection({ children }) {
125
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Most-used features", _jsx(InfoTip, { anchor: "left", text: "Interactive elements ranked by raw click volume (successful clicks only \u2014 rage and dead clicks excluded). The buttons and features visitors actually use most." })] }), children: children }));
126
+ }
127
+ function FeaturesCard({ topUsed }) {
128
+ return (_jsx("div", { className: card, children: topUsed.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No clicks captured yet \u2014 browse the site then refresh." })) : (_jsx(TopFeaturesTable, { features: topUsed, header: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "Component name (from data-component) or DOM selector. Sample text and selector shown beneath.", children: "Element" }), _jsx(Th, { tip: "Total successful (interactive) clicks across all pages.", children: "Clicks" }), _jsx(Th, { tip: "Distinct sessions that clicked this element.", children: "Sessions" }), _jsx(Th, { tip: "How many distinct pages this element was clicked on.", children: "Pages" })] }) })) }));
129
+ }
130
+ function ElementsSection({ children }) {
131
+ return (_jsx(Section, { title: _jsxs(_Fragment, { children: ["Interactions by element", _jsx(InfoTip, { anchor: "left", text: "Click-type events grouped by DOM selector. This is which UI element the issues are on \u2014 the primary input to Stage 2 synthesis. Components wrapped in <PolishdMonitor> are listed separately under Monitored components." })] }), children: children }));
132
+ }
133
+ function ElementsCard({ elements }) {
134
+ return (_jsx("div", { className: card, children: elements.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No interactions captured yet \u2014 browse the site then refresh." })) : (_jsx(ElementsTable, { elements: elements, header: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "DOM selector path for the interacted element. Sample text shown beneath.", children: "Element" }), _jsx(Th, { tip: "rage\u00D73 + dead\u00D72 for this element across all pages.", children: "Score" }), _jsx(Th, { tip: "Normal (non-rage, non-dead) clicks.", children: "Clicks" }), _jsx(Th, { tip: "Rage clicks on this element.", children: "Rage" }), _jsx(Th, { tip: "Dead clicks on this element.", children: "Dead" }), _jsx(Th, { tip: "How many distinct pages this element appeared on.", children: "Pages" })] }) })) }));
135
+ }
136
+ function RecentErrors({ errors }) {
137
+ if (errors.length === 0)
138
+ return null;
139
+ return (_jsx(Section, { title: "Recent errors", children: _jsx("div", { className: card, children: errors.map((e, i) => (_jsx("div", { className: i > 0 ? divider : "", children: _jsxs("div", { className: "px-5 py-3", children: [_jsx("div", { className: `font-mono text-[13px] ${e.origin ? "text-[#8a6a6a]" : "text-red-400"}`, children: e.message }), _jsxs("div", { className: "mt-0.5 text-[11px] text-[#555]", children: [e.path, e.component ? ` · ${e.component}` : "", e.origin === "foreign" ? " · not your code" : "", e.origin === "unknown" ? " · unattributable" : ""] })] }) }, i))) }) }));
140
+ }
141
+ // ── Dashboard (presentational) ───────────────────────────────────────────────
142
+ // Renders from a fully resolved dataset in one pass. `createPolishdPage()` no
143
+ // longer uses this — it streams each section independently — but the component
144
+ // remains for hosts that already load the data themselves.
145
+ export function PolishdDashboard({ data, ai, showInstalls = false, showIssues = false, }) {
146
+ return (_jsx(DashboardChrome, { active: "analytics", showInstalls: showInstalls, showIssues: showIssues, children: _jsxs("main", { className: "text-white", children: [_jsx(AnalyticsHeader, { pill: _jsx(StatusPill, { ready: data.overview.ready }) }), _jsx(StatusBanners, { overview: data.overview, health: data.health }), _jsx(SummaryCard, { initialSummary: ai.summary, initialSettings: ai.settings, initialStale: ai.stale, initialProfile: ai.profile, initialGaps: ai.gaps, sourceAvailable: ai.sourceAvailable }), _jsx(OverviewSection, { children: _jsx(OverviewStatTiles, { overview: data.overview, trends: data.trends }) }), _jsx(DevicesSection, { children: _jsx(DevicesCard, { devices: data.devices }) }), _jsx(PagesSection, { children: _jsx(TopPagesTable, { pages: data.pages }) }), _jsx(MonitoredSection, { children: _jsx(MonitoredCard, { monitored: data.monitored }) }), _jsx(JourneysSection, { children: _jsx(JourneyList, { journeys: data.journeys }) }), _jsx(FeaturesSection, { children: _jsx(FeaturesCard, { topUsed: data.topUsed }) }), _jsx(ElementsSection, { children: _jsx(ElementsCard, { elements: data.elements }) }), _jsx(RecentErrors, { errors: data.errors })] }) }));
147
+ }
148
+ // ── Streaming render ─────────────────────────────────────────────────────────
149
+ // The page used to await every query before sending a byte, so the whole tab
150
+ // arrived at the speed of its slowest aggregate. Instead, each section below
151
+ // is its own async server component behind its own Suspense boundary: the
152
+ // chrome, header, and section titles stream out immediately, and each card
153
+ // replaces its skeleton the moment its own data resolves. The per-request
154
+ // cache in ./data keeps sections that share inputs from re-running queries.
155
+ function CardSkeleton({ rows = 4 }) {
156
+ return (_jsx("div", { className: `${card} animate-pulse overflow-hidden`, "aria-hidden": "true", children: Array.from({ length: rows }, (_, i) => (_jsxs("div", { className: "flex items-center justify-between gap-4 border-t border-[#2e2e2e] px-5 py-3.5 first:border-t-0", children: [_jsx("div", { className: "h-3 flex-1 rounded bg-[#141414]", style: { maxWidth: `${70 - i * 12}%` } }), _jsx("div", { className: "h-3 w-12 shrink-0 rounded bg-[#141414]" })] }, i))) }));
157
+ }
158
+ function TileGridSkeleton() {
159
+ return (_jsx("div", { className: "grid animate-pulse grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6", "aria-hidden": "true", children: Array.from({ length: 6 }, (_, i) => (_jsxs("div", { className: `${card} px-4 py-4`, children: [_jsx("div", { className: "h-6 w-14 rounded bg-[#1a1a1a]" }), _jsx("div", { className: "mt-3 h-2.5 w-16 rounded bg-[#141414]" })] }, i))) }));
160
+ }
161
+ function SummarySkeleton() {
162
+ return (_jsxs("section", { className: `mb-8 ${card} animate-pulse overflow-hidden px-4 py-5 sm:px-5`, "aria-hidden": "true", children: [_jsx("div", { className: "h-3 w-32 rounded bg-[#1a1a1a]" }), _jsxs("div", { className: "mt-4 space-y-2", children: [_jsx("div", { className: "h-3 w-full rounded bg-[#141414]" }), _jsx("div", { className: "h-3 w-[92%] rounded bg-[#141414]" }), _jsx("div", { className: "h-3 w-[68%] rounded bg-[#141414]" })] })] }));
163
+ }
164
+ function PillSkeleton() {
165
+ return (_jsx("div", { className: "h-6 w-24 shrink-0 animate-pulse rounded-full bg-[#141414]", "aria-hidden": "true" }));
166
+ }
167
+ async function StatusPillData() {
168
+ const overview = await loadOverview();
169
+ return _jsx(StatusPill, { ready: overview.ready });
170
+ }
171
+ async function StatusBannersData() {
172
+ const [overview, health] = await Promise.all([loadOverview(), loadHealth()]);
173
+ return _jsx(StatusBanners, { overview: overview, health: health });
174
+ }
175
+ async function SummaryData() {
176
+ // The summary genuinely needs the whole dataset (its staleness fingerprint
177
+ // hashes it), so this is the one section that waits for everything — behind
178
+ // its own boundary, where it can't hold up the sections around it.
179
+ const data = await loadDashboardData();
180
+ const [summaryState, settings, profileState] = await Promise.all([
181
+ loadSummaryState(data),
182
+ getAISettingsPublic(),
183
+ loadProfileState(data),
184
+ ]);
185
+ // Cadence-based auto-refresh: when the owner opted into daily/weekly and
186
+ // the summary is both past its cadence AND built from different data,
187
+ // regenerate in the background after this response is sent. Unchanged data
188
+ // never triggers a model call, so the cadence only spends tokens when
189
+ // there's genuinely new behavior to narrate.
190
+ const cadence = settings.refreshCadence ?? "manual";
191
+ if (cadence !== "manual" &&
192
+ settings.hasApiKey &&
193
+ data.overview.ready &&
194
+ data.overview.totalEvents > 0) {
195
+ const cadenceMs = cadence === "daily" ? 86_400_000 : 604_800_000;
196
+ const due = summaryState.summary === null ||
197
+ (summaryState.stale &&
198
+ Date.now() - summaryState.summary.generatedAt > cadenceMs);
199
+ if (due) {
200
+ after(async () => {
201
+ try {
202
+ await generateSummary();
203
+ }
204
+ catch (err) {
205
+ console.warn("[polishd] scheduled summary refresh failed:", err);
206
+ }
207
+ });
208
+ }
209
+ }
210
+ return (_jsx(SummaryCard, { initialSummary: summaryState.summary, initialSettings: settings, initialStale: summaryState.stale, initialProfile: profileState.profile, initialGaps: profileState.gaps, sourceAvailable: profileState.sourceAvailable }));
211
+ }
212
+ async function OverviewData() {
213
+ const [overview, trends] = await Promise.all([loadOverview(), loadTrends()]);
214
+ return _jsx(OverviewStatTiles, { overview: overview, trends: trends });
215
+ }
216
+ async function DevicesData() {
217
+ return _jsx(DevicesCard, { devices: await loadDevices() });
218
+ }
219
+ async function PagesData() {
220
+ return _jsx(TopPagesTable, { pages: await loadPages() });
221
+ }
222
+ async function MonitoredData() {
223
+ return _jsx(MonitoredCard, { monitored: await loadMonitored() });
224
+ }
225
+ async function JourneysData() {
226
+ return _jsx(JourneyList, { journeys: await loadJourneys() });
227
+ }
228
+ async function FeaturesData() {
229
+ return _jsx(FeaturesCard, { topUsed: await loadTopUsed() });
230
+ }
231
+ async function ElementsData() {
232
+ return _jsx(ElementsCard, { elements: await loadElements() });
233
+ }
234
+ async function ErrorsData() {
235
+ return _jsx(RecentErrors, { errors: await loadErrors() });
236
+ }
237
+ /** The analytics tab, streamed section by section. */
238
+ function AnalyticsStream() {
239
+ return (_jsxs("main", { className: "text-white", children: [_jsx(AnalyticsHeader, { pill: _jsx(Suspense, { fallback: _jsx(PillSkeleton, {}), children: _jsx(StatusPillData, {}) }) }), _jsx(Suspense, { fallback: null, children: _jsx(StatusBannersData, {}) }), _jsx(Suspense, { fallback: _jsx(SummarySkeleton, {}), children: _jsx(SummaryData, {}) }), _jsx(OverviewSection, { children: _jsx(Suspense, { fallback: _jsx(TileGridSkeleton, {}), children: _jsx(OverviewData, {}) }) }), _jsx(DevicesSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, { rows: 3 }), children: _jsx(DevicesData, {}) }) }), _jsx(PagesSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: _jsx(PagesData, {}) }) }), _jsx(MonitoredSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, { rows: 3 }), children: _jsx(MonitoredData, {}) }) }), _jsx(JourneysSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: _jsx(JourneysData, {}) }) }), _jsx(FeaturesSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: _jsx(FeaturesData, {}) }) }), _jsx(ElementsSection, { children: _jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: _jsx(ElementsData, {}) }) }), _jsx(Suspense, { fallback: null, children: _jsx(ErrorsData, {}) })] }));
240
+ }
241
+ // ── The other tabs, each loading behind the chrome ───────────────────────────
242
+ async function DesignTabData() {
243
+ const [design, settings, snapshots, captureIssue] = await Promise.all([
244
+ getDesignData(),
245
+ getAISettingsPublic(),
246
+ listSnapshots(),
247
+ snapshotCaptureIssue(),
248
+ ]);
249
+ const reviewState = await loadDesignReviewState(design);
250
+ return (_jsx(DesignPanel, { data: design, review: reviewState.review, reviewStale: reviewState.stale, settings: settings, snapshots: snapshots, captureIssue: captureIssue }));
251
+ }
252
+ async function IssuesTabData({ connected }) {
253
+ // Reachable by URL with nothing connected, in which case the listing is
254
+ // empty and the view says how to fix that.
255
+ const [issues, settings] = await Promise.all([
256
+ listFiledIssues(),
257
+ getAISettingsPublic(),
258
+ ]);
259
+ return _jsx(IssuesView, { issues: issues, repo: settings.githubRepo, connected: connected });
260
+ }
261
+ async function InstallsTabData() {
262
+ const [installs, topPaths] = await Promise.all([
263
+ getTelemetryInstalls(),
264
+ getTelemetryTopPaths(),
265
+ ]);
266
+ return _jsx(InstallsView, { installs: installs, topPaths: topPaths });
267
+ }
268
+ async function SettingsTabData() {
269
+ // `loadProfileState` only reads component identifiers out of the dashboard
270
+ // data, so this tab loads those two queries rather than the whole analytics
271
+ // set it would otherwise never look at.
272
+ const [settings, monitored, topUsed] = await Promise.all([
273
+ getAISettingsPublic(),
274
+ loadMonitored(),
275
+ loadTopUsed(),
276
+ ]);
277
+ const profileState = await loadProfileState({ monitored, topUsed });
278
+ return (_jsx(SettingsView, { initialSettings: settings, initialProfile: profileState.profile, initialGaps: profileState.gaps, sourceAvailable: profileState.sourceAvailable }));
91
279
  }
92
280
  // ── Built-in fallback for a failed auth check ────────────────────────────────
93
281
  function Unauthorized() {
@@ -252,83 +440,19 @@ export function createPolishdPage(opts = {}) {
252
440
  const telemetryUi = (_jsxs(_Fragment, { children: [telemetry.status === "granted" && (_jsx(PolishdTelemetryEmitter, { endpoint: telemetry.endpoint, installState: telemetry.installState })), telemetry.status === "unset" && _jsx(PolishdTelemetryConsent, {})] }));
253
441
  // Which tab to render, from the `?tab=` query the sidebar links carry.
254
442
  const rawTab = Array.isArray(sp.tab) ? sp.tab[0] : sp.tab;
255
- if (rawTab === "design") {
256
- const [design, settings, snapshots, captureIssue] = await Promise.all([
257
- getDesignData(),
258
- getAISettingsPublic(),
259
- listSnapshots(),
260
- snapshotCaptureIssue(),
261
- ]);
262
- const reviewState = await loadDesignReviewState(design);
263
- return wrap(_jsxs(_Fragment, { children: [_jsx(DashboardChrome, { active: "design", showInstalls: showInstalls, showIssues: showIssues, children: _jsx(DesignPanel, { data: design, review: reviewState.review, reviewStale: reviewState.stale, settings: settings, snapshots: snapshots, captureIssue: captureIssue }) }), telemetryUi] }));
264
- }
265
- if (rawTab === "issues") {
266
- // Reachable by URL with nothing connected, in which case the listing is
267
- // empty and the view says how to fix that.
268
- const [issues, settings] = await Promise.all([
269
- listFiledIssues(),
270
- getAISettingsPublic(),
271
- ]);
272
- return wrap(_jsxs(_Fragment, { children: [_jsx(DashboardChrome, { active: "issues", showInstalls: showInstalls, showIssues: showIssues, children: _jsx(IssuesView, { issues: issues, repo: settings.githubRepo, connected: showIssues }) }), telemetryUi] }));
273
- }
274
- if (rawTab === "installs") {
275
- const [installs, topPaths] = await Promise.all([
276
- getTelemetryInstalls(),
277
- getTelemetryTopPaths(),
278
- ]);
279
- return wrap(_jsxs(_Fragment, { children: [_jsx(DashboardChrome, { active: "installs", showInstalls: showInstalls, showIssues: showIssues, children: _jsx(InstallsView, { installs: installs, topPaths: topPaths }) }), telemetryUi] }));
280
- }
281
- if (rawTab === "settings") {
282
- // `loadProfileState` only reads component identifiers out of the
283
- // dashboard data, so this tab loads those two queries rather than the
284
- // whole analytics set it would otherwise never look at.
285
- const [settings, monitored, topUsed] = await Promise.all([
286
- getAISettingsPublic(),
287
- getMonitoredComponents(),
288
- getTopInteractions(),
289
- ]);
290
- const profileState = await loadProfileState({ monitored, topUsed });
291
- return wrap(_jsxs(_Fragment, { children: [_jsx(DashboardChrome, { active: "settings", showInstalls: showInstalls, showIssues: showIssues, children: _jsx(SettingsView, { initialSettings: settings, initialProfile: profileState.profile, initialGaps: profileState.gaps, sourceAvailable: profileState.sourceAvailable }) }), telemetryUi] }));
292
- }
293
- const data = await loadPolishdDashboardData();
294
- const [summaryState, settings, profileState] = await Promise.all([
295
- loadSummaryState(data),
296
- getAISettingsPublic(),
297
- loadProfileState(data),
298
- ]);
299
- // Cadence-based auto-refresh: when the owner opted into daily/weekly and
300
- // the summary is both past its cadence AND built from different data,
301
- // regenerate in the background after this response is sent. Unchanged data
302
- // never triggers a model call, so the cadence only spends tokens when
303
- // there's genuinely new behavior to narrate.
304
- const cadence = settings.refreshCadence ?? "manual";
305
- if (cadence !== "manual" &&
306
- settings.hasApiKey &&
307
- data.overview.ready &&
308
- data.overview.totalEvents > 0) {
309
- const cadenceMs = cadence === "daily" ? 86_400_000 : 604_800_000;
310
- const due = summaryState.summary === null ||
311
- (summaryState.stale &&
312
- Date.now() - summaryState.summary.generatedAt > cadenceMs);
313
- if (due) {
314
- after(async () => {
315
- try {
316
- await generateSummary();
317
- }
318
- catch (err) {
319
- console.warn("[polishd] scheduled summary refresh failed:", err);
320
- }
321
- });
322
- }
323
- }
324
- return wrap(_jsxs(_Fragment, { children: [_jsx(PolishdDashboard, { data: data, showInstalls: showInstalls, showIssues: showIssues, ai: {
325
- summary: summaryState.summary,
326
- settings,
327
- stale: summaryState.stale,
328
- profile: profileState.profile,
329
- gaps: profileState.gaps,
330
- sourceAvailable: profileState.sourceAvailable,
331
- } }), telemetryUi] }));
443
+ const tab = rawTab === "design" || rawTab === "issues" || rawTab === "installs" || rawTab === "settings"
444
+ ? rawTab
445
+ : "analytics";
446
+ // Every tab streams: the chrome and rail go out immediately, and the
447
+ // tab's data loads behind a Suspense boundary showing the same skeleton
448
+ // the client paints while navigating — so a slow query never blanks the
449
+ // frame, it just holds the skeleton a beat longer.
450
+ const body = tab === "design" ? (_jsx(Suspense, { fallback: _jsx(TabSkeleton, { name: "Design" }), children: _jsx(DesignTabData, {}) })) : tab === "issues" ? (_jsx(Suspense, { fallback: _jsx(TabSkeleton, { name: "Issues" }), children: _jsx(IssuesTabData, { connected: showIssues }) })) : tab === "installs" ? (_jsx(Suspense, { fallback: _jsx(TabSkeleton, { name: "Installs" }), children: _jsx(InstallsTabData, {}) })) : tab === "settings" ? (_jsx(Suspense, { fallback: _jsx(TabSkeleton, { name: "Settings" }), children: _jsx(SettingsTabData, {}) })) : (
451
+ // Analytics carries per-section boundaries instead of one big one, so
452
+ // its header and section titles paint before any query has finished
453
+ // and each card fills in on its own schedule.
454
+ _jsx(AnalyticsStream, {}));
455
+ return wrap(_jsxs(_Fragment, { children: [_jsx(DashboardChrome, { active: tab, showInstalls: showInstalls, showIssues: showIssues, children: body }), telemetryUi] }));
332
456
  };
333
457
  }
334
458
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,20 @@
1
- import { type CaptureSnapshotResult } from "../server/snapshots";
1
+ import { type BeginSnapshotResult, type CaptureRouteResult, type CaptureSnapshotResult } from "../server/snapshots";
2
2
  /**
3
- * Shoot the site as it stands: every scanned route (the pages real visitors
4
- * actually rendered), phone and desktop, light and dark. Long-running — a
5
- * dozen routes takes on the order of a minute.
3
+ * Capture is chunked into one action call per route — begin, then one
4
+ * `captureSnapshotRouteAction` per returned route, then finish — so no single
5
+ * request has to outlive a serverless host's function time limit. The client
6
+ * drives the loop; every per-route call is validated against the plan the
7
+ * begin call parked server-side, so the client contributes nothing but ids.
8
+ *
9
+ * Everything after auth reduces to a message rather than a thrown error: a
10
+ * rejected action crashes the dashboard tab into Next's error boundary with
11
+ * an opaque digest, while a returned message renders in the card.
6
12
  */
7
- export declare function captureSnapshotAction(): Promise<CaptureSnapshotResult>;
13
+ export declare function beginSnapshotCaptureAction(): Promise<BeginSnapshotResult>;
14
+ /** Shoot one route of the capture in progress — both devices, both themes. */
15
+ export declare function captureSnapshotRouteAction(id: string, route: string): Promise<CaptureRouteResult>;
16
+ /** Record the accumulated shots as a snapshot and prune old ones. */
17
+ export declare function finishSnapshotCaptureAction(id: string): Promise<CaptureSnapshotResult>;
8
18
  export type SnapshotImageResult = {
9
19
  ok: true;
10
20
  dataUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-actions.d.ts","sourceRoot":"","sources":["../../src/dashboard/snapshot-actions.ts"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAoB7B;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CA+B5E;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhF,8EAA8E;AAC9E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}
1
+ {"version":3,"file":"snapshot-actions.d.ts","sourceRoot":"","sources":["../../src/dashboard/snapshot-actions.ts"],"names":[],"mappings":"AAuBA,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAoB7B;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CA0C/E;AAED,8EAA8E;AAC9E,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED,qEAAqE;AACrE,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,qBAAqB,CAAC,CAYhC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhF,8EAA8E;AAC9E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}