diff --git a/AppImage/components/security.tsx b/AppImage/components/security.tsx index b35f4f93..dcb2a7a2 100644 --- a/AppImage/components/security.tsx +++ b/AppImage/components/security.tsx @@ -2433,19 +2433,26 @@ ${(report.sections && report.sections.length > 0) ? ` {/* Visual bar */} -
-
- {acceptCount > 0 && ( -
- )} - {dropCount > 0 && ( -
- )} - {rejectCount > 0 && ( -
- )} +
+
+
+ {acceptCount > 0 && ( +
+ )} + {dropCount > 0 && ( +
+ )} + {rejectCount > 0 && ( +
+ )} +
+
+ Accept + Drop + Reject +
-
+
Accept Drop Reject diff --git a/AppImage/components/temperature-detail-modal.tsx b/AppImage/components/temperature-detail-modal.tsx index 695b894c..87cb1864 100644 --- a/AppImage/components/temperature-detail-modal.tsx +++ b/AppImage/components/temperature-detail-modal.tsx @@ -120,10 +120,15 @@ export function TemperatureDetailModal({ open, onOpenChange, liveTemperature }: const currentStatus = getStatusInfo(currentTemp) const chartColor = getStatusColor(currentTemp) - // Calculate Y axis domain with some padding + // Calculate Y axis domain including the real min/max stats (not just plotted averages) + // This ensures the axis always covers the actual recorded extremes const values = data.map((d) => d.value) - const yMin = values.length > 0 ? Math.max(0, Math.floor(Math.min(...values) - 5)) : 0 - const yMax = values.length > 0 ? Math.ceil(Math.max(...values) + 5) : 100 + const dataMin = values.length > 0 ? Math.min(...values) : 0 + const dataMax = values.length > 0 ? Math.max(...values) : 100 + const realMin = stats.min > 0 ? Math.min(dataMin, stats.min) : dataMin + const realMax = stats.max > 0 ? Math.max(dataMax, stats.max) : dataMax + const yMin = Math.max(0, Math.floor(realMin - 3)) + const yMax = Math.ceil(realMax + 3) return (