@polishd/next 0.2.2 → 0.2.3-dev.1
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.
- package/AGENTS.md +2 -1
- package/CHANGELOG.md +238 -0
- package/README.md +63 -0
- package/bin/doctor.mjs +8 -1
- package/dist/ai/digest.d.ts.map +1 -1
- package/dist/ai/digest.js +3 -2
- package/dist/ai/digest.js.map +1 -1
- package/dist/ai/github.d.ts +22 -1
- package/dist/ai/github.d.ts.map +1 -1
- package/dist/ai/github.js +99 -3
- package/dist/ai/github.js.map +1 -1
- package/dist/ai/issue-pages.d.ts +52 -0
- package/dist/ai/issue-pages.d.ts.map +1 -0
- package/dist/ai/issue-pages.js +50 -0
- package/dist/ai/issue-pages.js.map +1 -0
- package/dist/ai/issues.d.ts +13 -1
- package/dist/ai/issues.d.ts.map +1 -1
- package/dist/ai/issues.js +60 -4
- package/dist/ai/issues.js.map +1 -1
- package/dist/ai/summary.d.ts.map +1 -1
- package/dist/ai/summary.js +7 -0
- package/dist/ai/summary.js.map +1 -1
- package/dist/ai/types.d.ts +43 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/client/dom.d.ts +23 -0
- package/dist/client/dom.d.ts.map +1 -1
- package/dist/client/dom.js +45 -2
- package/dist/client/dom.js.map +1 -1
- package/dist/client/init.d.ts.map +1 -1
- package/dist/client/init.js +54 -14
- package/dist/client/init.js.map +1 -1
- package/dist/client/monitor.d.ts.map +1 -1
- package/dist/client/monitor.js +5 -1
- package/dist/client/monitor.js.map +1 -1
- package/dist/client/script-provenance.d.ts +21 -0
- package/dist/client/script-provenance.d.ts.map +1 -0
- package/dist/client/script-provenance.js +127 -0
- package/dist/client/script-provenance.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/dashboard/chrome.d.ts +4 -2
- package/dist/dashboard/chrome.d.ts.map +1 -1
- package/dist/dashboard/chrome.js +15 -5
- package/dist/dashboard/chrome.js.map +1 -1
- package/dist/dashboard/design-review-card.d.ts.map +1 -1
- package/dist/dashboard/design-review-card.js +3 -3
- package/dist/dashboard/design-review-card.js.map +1 -1
- package/dist/dashboard/design.d.ts +5 -1
- package/dist/dashboard/design.d.ts.map +1 -1
- package/dist/dashboard/design.js +3 -2
- package/dist/dashboard/design.js.map +1 -1
- package/dist/dashboard/drawer.d.ts +34 -0
- package/dist/dashboard/drawer.d.ts.map +1 -0
- package/dist/dashboard/drawer.js +44 -0
- package/dist/dashboard/drawer.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +48 -37
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/installs.d.ts.map +1 -1
- package/dist/dashboard/installs.js +2 -1
- package/dist/dashboard/installs.js.map +1 -1
- package/dist/dashboard/issues.d.ts +9 -0
- package/dist/dashboard/issues.d.ts.map +1 -0
- package/dist/dashboard/issues.js +81 -0
- package/dist/dashboard/issues.js.map +1 -0
- package/dist/dashboard/journeys.d.ts.map +1 -1
- package/dist/dashboard/journeys.js +4 -2
- package/dist/dashboard/journeys.js.map +1 -1
- package/dist/dashboard/metric-trends.d.ts +6 -0
- package/dist/dashboard/metric-trends.d.ts.map +1 -0
- package/dist/dashboard/metric-trends.js +236 -0
- package/dist/dashboard/metric-trends.js.map +1 -0
- package/dist/dashboard/pages.d.ts.map +1 -1
- package/dist/dashboard/pages.js +8 -46
- package/dist/dashboard/pages.js.map +1 -1
- package/dist/dashboard/settings.d.ts.map +1 -1
- package/dist/dashboard/settings.js +6 -2
- package/dist/dashboard/settings.js.map +1 -1
- package/dist/dashboard/show-more.d.ts.map +1 -1
- package/dist/dashboard/show-more.js +1 -1
- package/dist/dashboard/show-more.js.map +1 -1
- package/dist/dashboard/snapshot-actions.d.ts +16 -0
- package/dist/dashboard/snapshot-actions.d.ts.map +1 -0
- package/dist/dashboard/snapshot-actions.js +79 -0
- package/dist/dashboard/snapshot-actions.js.map +1 -0
- package/dist/dashboard/snapshots.d.ts +13 -0
- package/dist/dashboard/snapshots.d.ts.map +1 -0
- package/dist/dashboard/snapshots.js +88 -0
- package/dist/dashboard/snapshots.js.map +1 -0
- package/dist/dashboard/summary.d.ts.map +1 -1
- package/dist/dashboard/summary.js +11 -6
- package/dist/dashboard/summary.js.map +1 -1
- package/dist/dashboard/telemetry.d.ts +3 -1
- package/dist/dashboard/telemetry.d.ts.map +1 -1
- package/dist/dashboard/telemetry.js +55 -12
- package/dist/dashboard/telemetry.js.map +1 -1
- package/dist/dashboard/ui.d.ts +33 -6
- package/dist/dashboard/ui.d.ts.map +1 -1
- package/dist/dashboard/ui.js +44 -6
- package/dist/dashboard/ui.js.map +1 -1
- package/dist/dashboard.css +193 -2
- package/dist/server/ingest.d.ts +2 -5
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +47 -10
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/queries.d.ts +64 -11
- package/dist/server/queries.d.ts.map +1 -1
- package/dist/server/queries.js +207 -37
- package/dist/server/queries.js.map +1 -1
- package/dist/server/reclassify.d.ts +3 -0
- package/dist/server/reclassify.d.ts.map +1 -0
- package/dist/server/reclassify.js +65 -0
- package/dist/server/reclassify.js.map +1 -0
- package/dist/server/snapshots.d.ts +81 -0
- package/dist/server/snapshots.d.ts.map +1 -0
- package/dist/server/snapshots.js +371 -0
- package/dist/server/snapshots.js.map +1 -0
- package/dist/server/store.d.ts +5 -0
- package/dist/server/store.d.ts.map +1 -1
- package/dist/server/store.js +17 -0
- package/dist/server/store.js.map +1 -1
- package/dist/server/telemetry.d.ts +13 -0
- package/dist/server/telemetry.d.ts.map +1 -1
- package/dist/server/telemetry.js +28 -7
- package/dist/server/telemetry.js.map +1 -1
- package/dist/shared/capture-status.d.ts +99 -0
- package/dist/shared/capture-status.d.ts.map +1 -0
- package/dist/shared/capture-status.js +133 -0
- package/dist/shared/capture-status.js.map +1 -0
- package/dist/shared/error-noise.d.ts +39 -0
- package/dist/shared/error-noise.d.ts.map +1 -0
- package/dist/shared/error-noise.js +101 -0
- package/dist/shared/error-noise.js.map +1 -0
- package/dist/shared/metric-buckets.d.ts +31 -0
- package/dist/shared/metric-buckets.d.ts.map +1 -0
- package/dist/shared/metric-buckets.js +49 -0
- package/dist/shared/metric-buckets.js.map +1 -0
- package/dist/shared/text-signals.d.ts +56 -0
- package/dist/shared/text-signals.d.ts.map +1 -0
- package/dist/shared/text-signals.js +80 -0
- package/dist/shared/text-signals.js.map +1 -0
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +4 -0
- package/dist/shared/types.js.map +1 -1
- package/docs/SETUP.md +25 -0
- package/package.json +9 -2
package/dist/server/queries.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CaptureHealth } from "../shared/capture-status";
|
|
1
2
|
import type { PolishdEventType } from "../shared/types";
|
|
2
3
|
/**
|
|
3
4
|
* The events table with the dashboard's own route filtered out, aliased back to
|
|
@@ -46,6 +47,13 @@ export interface RecentError {
|
|
|
46
47
|
message: string;
|
|
47
48
|
component?: string;
|
|
48
49
|
ts: number;
|
|
50
|
+
/**
|
|
51
|
+
* Who the client attributed the throw to. Absent means the site's own code —
|
|
52
|
+
* the common case, left unlabeled. `foreign` is a script this page never
|
|
53
|
+
* loaded (injected from somewhere), `unknown` is an error with nothing
|
|
54
|
+
* attributable at all. Confident extension errors never make it this far.
|
|
55
|
+
*/
|
|
56
|
+
origin?: "foreign" | "unknown";
|
|
49
57
|
}
|
|
50
58
|
export interface ElementStat {
|
|
51
59
|
/** The DOM selector this element was interacted with as. */
|
|
@@ -125,6 +133,45 @@ export interface TopPage {
|
|
|
125
133
|
* top paths, bucketed by UTC day in JS so it stays backend-portable.
|
|
126
134
|
*/
|
|
127
135
|
export declare function getTopPages(limit?: number): Promise<TopPage[]>;
|
|
136
|
+
/** The overview tiles, each of which has a series in `MetricPoint`. */
|
|
137
|
+
export type MetricKey = "sessions" | "pageViews" | "rageClicks" | "deadClicks" | "jsErrors" | "totalEvents";
|
|
138
|
+
/** How wide one bucket is. Both are always computed; the reader picks. */
|
|
139
|
+
export type TrendGranularity = "hour" | "day";
|
|
140
|
+
/**
|
|
141
|
+
* One time bucket, carrying every overview metric at once.
|
|
142
|
+
*
|
|
143
|
+
* All six ride together because they come from one grouped scan and the chart
|
|
144
|
+
* lets you flip between metrics — paying for six columns once is cheaper than
|
|
145
|
+
* six queries, and much cheaper than a fetch per switch.
|
|
146
|
+
*/
|
|
147
|
+
export interface MetricPoint {
|
|
148
|
+
/** Bucket start — UTC, ms since epoch. */
|
|
149
|
+
ts: number;
|
|
150
|
+
/** Short axis label: "Jun 14" daily, "15:00" hourly. */
|
|
151
|
+
label: string;
|
|
152
|
+
/** Unambiguous label for the tooltip: "Jun 14, 15:00 UTC". */
|
|
153
|
+
title: string;
|
|
154
|
+
/**
|
|
155
|
+
* Distinct sessions *active* in the bucket. A session that spans two hours
|
|
156
|
+
* is counted in both, so hourly totals sum to more than the daily figure —
|
|
157
|
+
* each bucket answers "how many people were here then", not a share of one.
|
|
158
|
+
*/
|
|
159
|
+
sessions: number;
|
|
160
|
+
pageViews: number;
|
|
161
|
+
rageClicks: number;
|
|
162
|
+
deadClicks: number;
|
|
163
|
+
jsErrors: number;
|
|
164
|
+
/** Every captured event in the bucket, of any type. */
|
|
165
|
+
totalEvents: number;
|
|
166
|
+
}
|
|
167
|
+
export interface MetricTrends {
|
|
168
|
+
/** Hourly buckets, oldest → newest, gap-filled. Empty when there's no data. */
|
|
169
|
+
hour: MetricPoint[];
|
|
170
|
+
/** Daily buckets, oldest → newest, gap-filled. Empty when there's no data. */
|
|
171
|
+
day: MetricPoint[];
|
|
172
|
+
}
|
|
173
|
+
/** Both granularities of the overview series, for the stat tiles' charts. */
|
|
174
|
+
export declare function getMetricTrends(): Promise<MetricTrends>;
|
|
128
175
|
/**
|
|
129
176
|
* Per-element interaction breakdown, grouped by DOM selector path. This is the
|
|
130
177
|
* data that makes Stage 2 synthesis possible: it tells you *which UI element*
|
|
@@ -247,19 +294,18 @@ export interface MonitoredComponent {
|
|
|
247
294
|
* matching how `getSessionJourneys` and `getTopPages` keep their SQL portable.
|
|
248
295
|
*/
|
|
249
296
|
export declare function getMonitoredComponents(): Promise<MonitoredComponent[]>;
|
|
250
|
-
|
|
251
|
-
export interface CaptureHealth {
|
|
252
|
-
/** Beacons dropped because the request carried no session cookie. */
|
|
253
|
-
noSessionCount: number;
|
|
254
|
-
/** When the most recent such drop happened (ms epoch), or null for none. */
|
|
255
|
-
lastNoSessionAt: number | null;
|
|
256
|
-
}
|
|
297
|
+
export type { CaptureHealth } from "../shared/capture-status";
|
|
257
298
|
/**
|
|
258
|
-
* Read the proxy-health
|
|
299
|
+
* Read the proxy-health counters: the drop record ingest writes, plus what
|
|
300
|
+
* the events table says about storing over the same window.
|
|
259
301
|
*
|
|
260
|
-
*
|
|
261
|
-
* "everybody
|
|
262
|
-
*
|
|
302
|
+
* The pair is the point. A drop count on its own cannot tell "nobody has
|
|
303
|
+
* visited yet" from "everybody visited and every event was thrown away" —
|
|
304
|
+
* that is why it is recorded — but neither can it tell a broken proxy from a
|
|
305
|
+
* crawler POSTing at a public endpoint. `lastStoredAt` settles that outright:
|
|
306
|
+
* every event is attributed to the cookie the proxy mints, so a store dated
|
|
307
|
+
* after the most recent drop means the proxy is minting right now. The
|
|
308
|
+
* windowed counts let the dashboard describe the rest in proportion.
|
|
263
309
|
*/
|
|
264
310
|
export declare function getCaptureHealth(): Promise<CaptureHealth>;
|
|
265
311
|
/** Everything the dashboard (and the AI summary) reads, in one shape. */
|
|
@@ -267,6 +313,8 @@ export interface PolishdDashboardData {
|
|
|
267
313
|
overview: Awaited<ReturnType<typeof getOverview>>;
|
|
268
314
|
health: CaptureHealth;
|
|
269
315
|
pages: Awaited<ReturnType<typeof getTopPages>>;
|
|
316
|
+
/** Overview metrics over time, at both granularities. */
|
|
317
|
+
trends: MetricTrends;
|
|
270
318
|
elements: Awaited<ReturnType<typeof getElementStats>>;
|
|
271
319
|
devices: Awaited<ReturnType<typeof getDeviceBreakdown>>;
|
|
272
320
|
topUsed: Awaited<ReturnType<typeof getTopInteractions>>;
|
|
@@ -292,6 +340,11 @@ export interface TelemetryInstall {
|
|
|
292
340
|
deadClicks: number;
|
|
293
341
|
/** Server receive time of the most recent event, ms since epoch. */
|
|
294
342
|
lastSeen: number;
|
|
343
|
+
/** Whether a model is connected there; null = never reported (old emitter). */
|
|
344
|
+
hasModel: boolean | null;
|
|
345
|
+
/** Provider/model in use, from the latest install_state report. */
|
|
346
|
+
provider: string | null;
|
|
347
|
+
model: string | null;
|
|
295
348
|
}
|
|
296
349
|
/** One row per reporting installation, most recently active first. */
|
|
297
350
|
export declare function getTelemetryInstalls(limit?: number): Promise<TelemetryInstall[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/server/queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/server/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/server/queries.js
CHANGED
|
@@ -10,9 +10,13 @@
|
|
|
10
10
|
* spelled `SUM(CASE WHEN … THEN 1 ELSE 0 END)` rather than SQLite's `SUM(x = y)`.
|
|
11
11
|
*/
|
|
12
12
|
import { getMeta, parseMeta, query, storeReady } from "./store";
|
|
13
|
+
import { ensureReclassifiedHistory } from "./reclassify";
|
|
14
|
+
import { CAPTURE_WINDOW_MS, noSessionCountSince, parseNoSessionRecord, } from "../shared/capture-status";
|
|
13
15
|
import { NO_SESSION_META_KEY } from "./ingest";
|
|
14
16
|
import { resolveAnalyticsSource } from "./telemetry";
|
|
15
17
|
import { resolveDashboardRoute } from "../config";
|
|
18
|
+
import { isIgnorableError } from "../shared/error-noise";
|
|
19
|
+
import { trendWindow } from "../shared/metric-buckets";
|
|
16
20
|
/**
|
|
17
21
|
* The events table with the dashboard's own route filtered out, aliased back to
|
|
18
22
|
* `events` so every query below reads from it unchanged.
|
|
@@ -231,6 +235,87 @@ export async function getTopPages(limit = 8) {
|
|
|
231
235
|
};
|
|
232
236
|
return pages.map((p) => ({ ...p, trend: buildTrend(byPath.get(p.path)) }));
|
|
233
237
|
}
|
|
238
|
+
const HOUR_MS = 3_600_000;
|
|
239
|
+
/** Cap the hourly window so the chart stays readable — two days of detail. */
|
|
240
|
+
const MAX_TREND_HOURS = 48;
|
|
241
|
+
function fmtHour(ts) {
|
|
242
|
+
return `${String(new Date(ts).getUTCHours()).padStart(2, "0")}:00`;
|
|
243
|
+
}
|
|
244
|
+
function fmtLongDay(ts) {
|
|
245
|
+
return new Date(ts).toLocaleDateString(undefined, {
|
|
246
|
+
weekday: "short",
|
|
247
|
+
month: "short",
|
|
248
|
+
day: "numeric",
|
|
249
|
+
timeZone: "UTC",
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* One granularity of the overview series.
|
|
254
|
+
*
|
|
255
|
+
* Bucketing is `ts / bucketMs` integer division, which both backends do the
|
|
256
|
+
* same way on an integer column, so the grouping happens in the database and
|
|
257
|
+
* only one row per bucket comes back — unlike the page trend, which pulls raw
|
|
258
|
+
* page_view rows because it also needs per-path session sets.
|
|
259
|
+
*
|
|
260
|
+
* Buckets are UTC, matching the daily page trend: the label is rendered on the
|
|
261
|
+
* server, and any local-timezone rendering would depend on where the server
|
|
262
|
+
* happens to run rather than where the reader is.
|
|
263
|
+
*/
|
|
264
|
+
async function metricSeries(bucketMs, maxBuckets, fmt) {
|
|
265
|
+
const rows = await query(`SELECT (ts / ${bucketMs}) AS bucket,
|
|
266
|
+
COUNT(*) AS "totalEvents",
|
|
267
|
+
COUNT(DISTINCT session_id) AS sessions,
|
|
268
|
+
SUM(CASE WHEN type = 'page_view' THEN 1 ELSE 0 END) AS "pageViews",
|
|
269
|
+
SUM(CASE WHEN type = 'rage_click' THEN 1 ELSE 0 END) AS "rageClicks",
|
|
270
|
+
SUM(CASE WHEN type = 'dead_click' THEN 1 ELSE 0 END) AS "deadClicks",
|
|
271
|
+
SUM(CASE WHEN type = 'js_error' THEN 1 ELSE 0 END) AS "jsErrors"
|
|
272
|
+
FROM ${polishdEventsSource()}
|
|
273
|
+
GROUP BY (ts / ${bucketMs})`);
|
|
274
|
+
const counts = new Map();
|
|
275
|
+
for (const r of rows) {
|
|
276
|
+
counts.set(num(r, "bucket"), {
|
|
277
|
+
sessions: num(r, "sessions"),
|
|
278
|
+
pageViews: num(r, "pageViews"),
|
|
279
|
+
rageClicks: num(r, "rageClicks"),
|
|
280
|
+
deadClicks: num(r, "deadClicks"),
|
|
281
|
+
jsErrors: num(r, "jsErrors"),
|
|
282
|
+
totalEvents: num(r, "totalEvents"),
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
// Which buckets get drawn — gap filling, the cap and clock skew — is decided
|
|
286
|
+
// in shared/metric-buckets.ts, which is pure and tested. Buckets with no row
|
|
287
|
+
// are the zeros it filled in.
|
|
288
|
+
return trendWindow(counts.keys(), maxBuckets, Math.floor(Date.now() / bucketMs)).map((b) => {
|
|
289
|
+
const ts = b * bucketMs;
|
|
290
|
+
const c = counts.get(b);
|
|
291
|
+
return {
|
|
292
|
+
ts,
|
|
293
|
+
...fmt(ts),
|
|
294
|
+
sessions: c?.sessions ?? 0,
|
|
295
|
+
pageViews: c?.pageViews ?? 0,
|
|
296
|
+
rageClicks: c?.rageClicks ?? 0,
|
|
297
|
+
deadClicks: c?.deadClicks ?? 0,
|
|
298
|
+
jsErrors: c?.jsErrors ?? 0,
|
|
299
|
+
totalEvents: c?.totalEvents ?? 0,
|
|
300
|
+
};
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/** Both granularities of the overview series, for the stat tiles' charts. */
|
|
304
|
+
export async function getMetricTrends() {
|
|
305
|
+
if (!(await storeReady()))
|
|
306
|
+
return { hour: [], day: [] };
|
|
307
|
+
const [hour, day] = await Promise.all([
|
|
308
|
+
metricSeries(HOUR_MS, MAX_TREND_HOURS, (ts) => ({
|
|
309
|
+
label: fmtHour(ts),
|
|
310
|
+
title: `${fmtDay(ts)}, ${fmtHour(ts)} UTC`,
|
|
311
|
+
})),
|
|
312
|
+
metricSeries(DAY_MS, MAX_TREND_DAYS, (ts) => ({
|
|
313
|
+
label: fmtDay(ts),
|
|
314
|
+
title: fmtLongDay(ts),
|
|
315
|
+
})),
|
|
316
|
+
]);
|
|
317
|
+
return { hour, day };
|
|
318
|
+
}
|
|
234
319
|
/**
|
|
235
320
|
* Per-element interaction breakdown, grouped by DOM selector path. This is the
|
|
236
321
|
* data that makes Stage 2 synthesis possible: it tells you *which UI element*
|
|
@@ -528,7 +613,12 @@ export async function getMonitoredComponents() {
|
|
|
528
613
|
if (meta.height > acc.hMax)
|
|
529
614
|
acc.hMax = meta.height;
|
|
530
615
|
}
|
|
531
|
-
|
|
616
|
+
// Current clients only send scrollDepth for components taller than the
|
|
617
|
+
// viewport; older ones sent it always, so a component that fit on screen
|
|
618
|
+
// reported a trivial 100%. Apply the same rule to history: ignore depth
|
|
619
|
+
// from rows whose recorded height fits a typical viewport.
|
|
620
|
+
if (typeof meta.scrollDepth === "number" &&
|
|
621
|
+
!(typeof meta.height === "number" && meta.height <= 700)) {
|
|
532
622
|
acc.dSum += meta.scrollDepth;
|
|
533
623
|
acc.dN++;
|
|
534
624
|
}
|
|
@@ -563,39 +653,74 @@ export async function getMonitoredComponents() {
|
|
|
563
653
|
});
|
|
564
654
|
}
|
|
565
655
|
/**
|
|
566
|
-
* Read the proxy-health
|
|
656
|
+
* Read the proxy-health counters: the drop record ingest writes, plus what
|
|
657
|
+
* the events table says about storing over the same window.
|
|
567
658
|
*
|
|
568
|
-
*
|
|
569
|
-
* "everybody
|
|
570
|
-
*
|
|
659
|
+
* The pair is the point. A drop count on its own cannot tell "nobody has
|
|
660
|
+
* visited yet" from "everybody visited and every event was thrown away" —
|
|
661
|
+
* that is why it is recorded — but neither can it tell a broken proxy from a
|
|
662
|
+
* crawler POSTing at a public endpoint. `lastStoredAt` settles that outright:
|
|
663
|
+
* every event is attributed to the cookie the proxy mints, so a store dated
|
|
664
|
+
* after the most recent drop means the proxy is minting right now. The
|
|
665
|
+
* windowed counts let the dashboard describe the rest in proportion.
|
|
571
666
|
*/
|
|
572
667
|
export async function getCaptureHealth() {
|
|
573
|
-
const
|
|
668
|
+
const windowMs = CAPTURE_WINDOW_MS;
|
|
669
|
+
const empty = {
|
|
670
|
+
noSessionCount: 0,
|
|
671
|
+
recentNoSessionCount: 0,
|
|
672
|
+
lastNoSessionAt: null,
|
|
673
|
+
lastStoredAt: null,
|
|
674
|
+
recentEvents: 0,
|
|
675
|
+
recentBatches: 0,
|
|
676
|
+
windowMs,
|
|
677
|
+
};
|
|
574
678
|
if (!(await storeReady()))
|
|
575
679
|
return empty;
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
680
|
+
const since = Date.now() - windowMs;
|
|
681
|
+
// `received_at` is stamped once per insert call, so distinct values count
|
|
682
|
+
// batches — approximately: two batches landing in the same millisecond
|
|
683
|
+
// collapse into one. Good enough for a percentage, and it costs no schema.
|
|
684
|
+
const [rows, raw] = await Promise.all([
|
|
685
|
+
query(`SELECT
|
|
686
|
+
MAX(received_at) AS "lastStoredAt",
|
|
687
|
+
SUM(CASE WHEN received_at >= ? THEN 1 ELSE 0 END) AS "recentEvents",
|
|
688
|
+
COUNT(DISTINCT CASE WHEN received_at >= ? THEN received_at END) AS "recentBatches"
|
|
689
|
+
FROM ${polishdEventsSource()}`, [since, since]),
|
|
690
|
+
getMeta(NO_SESSION_META_KEY),
|
|
691
|
+
]);
|
|
692
|
+
const row = rows[0];
|
|
693
|
+
// MAX() over an empty table is NULL, which `num` would flatten to 0 — and a
|
|
694
|
+
// stored-at of 0 reads as "stored in 1970", i.e. older than any drop. Keep
|
|
695
|
+
// the absence.
|
|
696
|
+
const everStored = row?.lastStoredAt !== null && row?.lastStoredAt !== undefined;
|
|
697
|
+
const rec = parseNoSessionRecord(raw);
|
|
698
|
+
return {
|
|
699
|
+
noSessionCount: rec?.count ?? 0,
|
|
700
|
+
recentNoSessionCount: noSessionCountSince(rec, since),
|
|
701
|
+
lastNoSessionAt: rec && rec.lastAt > 0 ? rec.lastAt : null,
|
|
702
|
+
lastStoredAt: everStored ? num(row, "lastStoredAt") : null,
|
|
703
|
+
recentEvents: num(row, "recentEvents"),
|
|
704
|
+
recentBatches: num(row, "recentBatches"),
|
|
705
|
+
windowMs,
|
|
706
|
+
};
|
|
589
707
|
}
|
|
590
708
|
/**
|
|
591
709
|
* Fetch every dashboard query in parallel. Server-only. Lives here (not in the
|
|
592
710
|
* dashboard) so the AI summary layer can reuse it without importing React.
|
|
593
711
|
*/
|
|
594
712
|
export async function loadPolishdDashboardData() {
|
|
595
|
-
|
|
713
|
+
// One-time sweep retyping historical text clicks recorded as dead/rage under
|
|
714
|
+
// the old rules — after it, every aggregate below reads corrected history.
|
|
715
|
+
// The trend series count the same dead_click/rage_click rows the tiles do, so
|
|
716
|
+
// they have to be on this side of the sweep too, or the chart would contradict
|
|
717
|
+
// the number above it.
|
|
718
|
+
await ensureReclassifiedHistory();
|
|
719
|
+
const [overview, health, pages, trends, elements, devices, topUsed, journeys, errors, monitored,] = await Promise.all([
|
|
596
720
|
getOverview(),
|
|
597
721
|
getCaptureHealth(),
|
|
598
722
|
getTopPages(8),
|
|
723
|
+
getMetricTrends(),
|
|
599
724
|
getElementStats(12),
|
|
600
725
|
getDeviceBreakdown(),
|
|
601
726
|
getTopInteractions(12),
|
|
@@ -603,24 +728,45 @@ export async function loadPolishdDashboardData() {
|
|
|
603
728
|
getRecentErrors(8),
|
|
604
729
|
getMonitoredComponents(),
|
|
605
730
|
]);
|
|
606
|
-
return {
|
|
731
|
+
return {
|
|
732
|
+
overview,
|
|
733
|
+
health,
|
|
734
|
+
pages,
|
|
735
|
+
trends,
|
|
736
|
+
elements,
|
|
737
|
+
devices,
|
|
738
|
+
topUsed,
|
|
739
|
+
journeys,
|
|
740
|
+
errors,
|
|
741
|
+
monitored,
|
|
742
|
+
};
|
|
607
743
|
}
|
|
608
744
|
export async function getRecentErrors(limit = 10) {
|
|
745
|
+
// Extension errors are dropped at capture and again at ingest, but rows
|
|
746
|
+
// written before that filter existed are still in the table — and this list
|
|
747
|
+
// is where they were loudest. Over-fetch and drop them on the way out, so
|
|
748
|
+
// the fix applies to history and not just to new sessions.
|
|
609
749
|
const rows = await query(`SELECT path, component, meta, ts
|
|
610
750
|
FROM ${polishdEventsSource()} WHERE type = 'js_error'
|
|
611
|
-
ORDER BY id DESC LIMIT ?`, [limit]);
|
|
612
|
-
return rows
|
|
613
|
-
|
|
751
|
+
ORDER BY id DESC LIMIT ?`, [limit * 4]);
|
|
752
|
+
return rows
|
|
753
|
+
.map((r) => {
|
|
614
754
|
const meta = parseMeta(r.meta);
|
|
615
|
-
|
|
616
|
-
|
|
755
|
+
const message = meta && typeof meta.message === "string" ? meta.message : "Unknown error";
|
|
756
|
+
const source = meta && typeof meta.source === "string" ? meta.source : "";
|
|
757
|
+
const origin = meta?.origin === "foreign" || meta?.origin === "unknown" ? meta.origin : undefined;
|
|
617
758
|
return {
|
|
618
759
|
path: r.path,
|
|
619
760
|
component: r.component ?? undefined,
|
|
620
761
|
message,
|
|
762
|
+
source,
|
|
763
|
+
origin,
|
|
621
764
|
ts: num(r, "ts"),
|
|
622
765
|
};
|
|
623
|
-
})
|
|
766
|
+
})
|
|
767
|
+
.filter(({ message, source }) => !isIgnorableError({ message, source }))
|
|
768
|
+
.slice(0, limit)
|
|
769
|
+
.map(({ source: _source, ...error }) => error);
|
|
624
770
|
}
|
|
625
771
|
/** One row per reporting installation, most recently active first. */
|
|
626
772
|
export async function getTelemetryInstalls(limit = 100) {
|
|
@@ -637,16 +783,40 @@ export async function getTelemetryInstalls(limit = 100) {
|
|
|
637
783
|
GROUP BY install_id
|
|
638
784
|
ORDER BY last_seen DESC
|
|
639
785
|
LIMIT ?`, [limit]);
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
786
|
+
// The newest install_state per install answers "is a model connected, and
|
|
787
|
+
// which one" — state the click stream can't carry. Latest wins so an
|
|
788
|
+
// install that connects (or disconnects) a model reads correctly.
|
|
789
|
+
const stateRows = await query(`SELECT install_id, meta FROM events e
|
|
790
|
+
WHERE type = 'install_state' AND install_id IS NOT NULL
|
|
791
|
+
AND id = (SELECT MAX(id) FROM events e2
|
|
792
|
+
WHERE e2.type = 'install_state' AND e2.install_id = e.install_id)`);
|
|
793
|
+
const states = new Map();
|
|
794
|
+
for (const r of stateRows) {
|
|
795
|
+
const meta = parseMeta(r.meta);
|
|
796
|
+
if (!meta)
|
|
797
|
+
continue;
|
|
798
|
+
states.set(r.install_id, {
|
|
799
|
+
hasModel: meta.hasModel === true,
|
|
800
|
+
provider: typeof meta.provider === "string" && meta.provider ? meta.provider : null,
|
|
801
|
+
model: typeof meta.model === "string" && meta.model ? meta.model : null,
|
|
802
|
+
});
|
|
803
|
+
}
|
|
804
|
+
return rows.map((r) => {
|
|
805
|
+
const state = states.get(r.install_id);
|
|
806
|
+
return {
|
|
807
|
+
install: r.install_id,
|
|
808
|
+
sessions: num(r, "sessions"),
|
|
809
|
+
events: num(r, "events"),
|
|
810
|
+
pageViews: num(r, "page_views"),
|
|
811
|
+
clicks: num(r, "clicks"),
|
|
812
|
+
rageClicks: num(r, "rage_clicks"),
|
|
813
|
+
deadClicks: num(r, "dead_clicks"),
|
|
814
|
+
lastSeen: num(r, "last_seen"),
|
|
815
|
+
hasModel: state ? state.hasModel : null,
|
|
816
|
+
provider: state?.hasModel ? state.provider : null,
|
|
817
|
+
model: state?.hasModel ? state.model : null,
|
|
818
|
+
};
|
|
819
|
+
});
|
|
650
820
|
}
|
|
651
821
|
/** Which dashboard tabs get used, across every reporting installation. */
|
|
652
822
|
export async function getTelemetryTopPaths(limit = 10) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/server/queries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/server/queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reclassify.d.ts","sourceRoot":"","sources":["../../src/server/reclassify.ts"],"names":[],"mappings":"AAgCA,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CASzD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polishd — one-time history reclassification (server only).
|
|
3
|
+
*
|
|
4
|
+
* The capture layer stopped recording clicks on text as dead/rage clicks —
|
|
5
|
+
* reading isn't friction. Rows stored by older clients still carry the old
|
|
6
|
+
* semantics though, and the precedent here (see `getRecentErrors`) is that a
|
|
7
|
+
* fix applies to history, not just to new sessions. Deleting the owner's data
|
|
8
|
+
* is off the table, so misclassified rows are retyped to `text_click`: kept in
|
|
9
|
+
* the table, visible to raw debugging, counted by nothing — exactly as if the
|
|
10
|
+
* new client had captured them.
|
|
11
|
+
*
|
|
12
|
+
* The stored columns carry enough to re-run the live decision: `selector`
|
|
13
|
+
* keeps the same 4-level tag path the client's ancestor walk saw, and `text`
|
|
14
|
+
* holds the target's label — see `shared/text-signals.ts`, which both sides
|
|
15
|
+
* import so they can't drift.
|
|
16
|
+
*
|
|
17
|
+
* Runs once per database, guarded by a `polishd_meta` version key, triggered
|
|
18
|
+
* lazily from the dashboard read path so the ingest hot path never pays for
|
|
19
|
+
* it. Idempotent and chunked, so a crash mid-way (the key is only written at
|
|
20
|
+
* the end) or two serverless instances racing just redo harmless UPDATEs.
|
|
21
|
+
*/
|
|
22
|
+
import { reclassifiedClickType } from "../shared/text-signals";
|
|
23
|
+
import { exec, getMeta, query, setMeta, storeReady } from "./store";
|
|
24
|
+
/** Bump when the classification rules change and history should be re-swept. */
|
|
25
|
+
const SEMANTICS_KEY = "signal_semantics";
|
|
26
|
+
const SEMANTICS_VERSION = "2";
|
|
27
|
+
const UPDATE_CHUNK = 500;
|
|
28
|
+
let sweep = null;
|
|
29
|
+
/** Kick off (or join) the one-time sweep. Never throws, never blocks ingest. */
|
|
30
|
+
export function ensureReclassifiedHistory() {
|
|
31
|
+
return (sweep ??= run().catch((err) => {
|
|
32
|
+
// Leave the meta key unwritten and let a later dashboard load retry.
|
|
33
|
+
sweep = null;
|
|
34
|
+
console.warn("[polishd] history reclassification failed, will retry:", err instanceof Error ? err.message : err);
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
async function run() {
|
|
38
|
+
if (!(await storeReady()))
|
|
39
|
+
return;
|
|
40
|
+
if ((await getMeta(SEMANTICS_KEY)) === SEMANTICS_VERSION)
|
|
41
|
+
return;
|
|
42
|
+
// All rows, including cross-install telemetry — every writer used the same
|
|
43
|
+
// client classification, so every writer's history has the same skew.
|
|
44
|
+
const rows = await query(`SELECT id, type, selector, text FROM events WHERE type IN ('dead_click', 'rage_click')`);
|
|
45
|
+
const ids = [];
|
|
46
|
+
for (const r of rows) {
|
|
47
|
+
const selector = typeof r.selector === "string" ? r.selector : undefined;
|
|
48
|
+
const text = typeof r.text === "string" ? r.text : undefined;
|
|
49
|
+
if (reclassifiedClickType(String(r.type), selector, text) === "text_click") {
|
|
50
|
+
ids.push(Number(r.id));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (let i = 0; i < ids.length; i += UPDATE_CHUNK) {
|
|
54
|
+
const chunk = ids.slice(i, i + UPDATE_CHUNK);
|
|
55
|
+
const ok = await exec(`UPDATE events SET type = 'text_click' WHERE id IN (${chunk.map(() => "?").join(", ")})`, chunk);
|
|
56
|
+
if (!ok)
|
|
57
|
+
return; // no key written — retried on the next dashboard load
|
|
58
|
+
}
|
|
59
|
+
if (ids.length > 0) {
|
|
60
|
+
console.log(`[polishd] reclassified ${ids.length} historical dead/rage click(s) as text clicks — ` +
|
|
61
|
+
`clicks on text are reading, not friction, and no longer count.`);
|
|
62
|
+
}
|
|
63
|
+
await setMeta(SEMANTICS_KEY, SEMANTICS_VERSION);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=reclassify.js.map
|