You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Smaller items from the Status tab review, bundled:
Gratuitous as any casts that compile fine without them (AnalyticsDataPoint already has an unknown index signature): pipeline.ts:99,105,151,343, connection.tsx:67-78; plus TrafficByTypeRenderer.tsx:164yAxis={spec.yAxis as any} — narrow MetricSpec so stacked-area specs carry AxisSpec rather than the dual-axis union.
Replication perf: buildLineSeries re-scans all records per surviving cell and parseReplicationPath re-sorts knownNodes per record (O(cells × records × n log n)) — parse once and hoist the sort (replication-latency.tsx, pathParser.ts:31).
Replication confidence thresholds {greyBelow: 40, suppressBelow: 100} hardcoded in four places in replication-latency.tsx (:37, :116, :169, :315) — one constant; the spec even carries a TODO about re-tuning them.
Dead/unread spec fields that mislead spec authors: bucket.source is never read (two of its three variants unimplemented — narrow the type) and confidence.field is populated by every spec but the pipeline hardcodes r.count (types/analytics.ts:154,159, pipeline.ts:158,196-201).
AnalyticsOnboardingHint.tsx:47 claims "heatmap cells are clickable for drilldown" — they aren't (no handler, cursor: default). Reword, or close via the drilldown enhancement issue.
FallbackRenderer.tsx:69 maps records lacking time to x: 0 (plots at 1970, drags the x-domain back 56 years); also declares unused window/nodes props.
AnalyticsContext.tsx:23-30 re-memoizes an already-memoized value keyed on entityId only — a replaced instanceClient for the same entity keeps a stale client. Pass the value through.
OverviewTab.tsx:17-23 uses useSuspenseQuery with no error boundary — wrap like the chart tabs do.
StatusTabs.tsx:112void tick; memo hack — a refreshEpoch state holding the timestamp is clearer (may be subsumed by the frozen-window fix).
useAnalyticsRecords.ts:64-67 comment says "startup jitter" but the jitter is added to the recurring interval — fix the comment or implement an initial-delay stagger.
StorageTab.tsx:73,156 — hardcoded rankBy, dead onRankChange={() => {}} prop, and an import placed below a function declaration.
HeatmapMatrix.tsx:138-139 legend hardcodes "p95 latency" copy in a generically-named primitive — take the measure label from data.axis/a prop.
lib/crawlData.ts is a generic object walker used only by OverviewTab, with magic heuristics (startOf2025 timestamp sniffing, parentName === 'memory') — move nearer its caller.
Smaller items from the Status tab review, bundled:
as anycasts that compile fine without them (AnalyticsDataPointalready has anunknownindex signature):pipeline.ts:99,105,151,343,connection.tsx:67-78; plusTrafficByTypeRenderer.tsx:164yAxis={spec.yAxis as any}— narrowMetricSpecso stacked-area specs carryAxisSpecrather than the dual-axis union.buildLineSeriesre-scans all records per surviving cell andparseReplicationPathre-sortsknownNodesper record (O(cells × records × n log n)) — parse once and hoist the sort (replication-latency.tsx,pathParser.ts:31).{greyBelow: 40, suppressBelow: 100}hardcoded in four places inreplication-latency.tsx(:37, :116, :169, :315) — one constant; the spec even carries a TODO about re-tuning them.bucket.sourceis never read (two of its three variants unimplemented — narrow the type) andconfidence.fieldis populated by every spec but the pipeline hardcodesr.count(types/analytics.ts:154,159,pipeline.ts:158,196-201).AnalyticsOnboardingHint.tsx:47claims "heatmap cells are clickable for drilldown" — they aren't (no handler,cursor: default). Reword, or close via the drilldown enhancement issue.FallbackRenderer.tsx:69maps records lackingtimetox: 0(plots at 1970, drags the x-domain back 56 years); also declares unusedwindow/nodesprops.AnalyticsContext.tsx:23-30re-memoizes an already-memoized value keyed onentityIdonly — a replacedinstanceClientfor the same entity keeps a stale client. Pass the value through.OverviewTab.tsx:17-23usesuseSuspenseQuerywith no error boundary — wrap like the chart tabs do.StatusTabs.tsx:112void tick;memo hack — arefreshEpochstate holding the timestamp is clearer (may be subsumed by the frozen-window fix).useAnalyticsRecords.ts:64-67comment says "startup jitter" but the jitter is added to the recurring interval — fix the comment or implement an initial-delay stagger.StorageTab.tsx:73,156— hardcodedrankBy, deadonRankChange={() => {}}prop, and an import placed below a function declaration.HeatmapMatrix.tsx:138-139legend hardcodes "p95 latency" copy in a generically-named primitive — take the measure label fromdata.axis/a prop.lib/crawlData.tsis a generic object walker used only by OverviewTab, with magic heuristics (startOf2025timestamp sniffing,parentName === 'memory') — move nearer its caller.Filed from a Status tab code review.
Comment generated by kAIle (Claude Fable 5)