Files
Pulse/frontend-modern/index.html
rcourtman bcd7b550d4 AI Problem Solver implementation and various fixes
- Implement 'Show Problems Only' toggle combining degraded status, high CPU/memory alerts, and needs backup filters
- Add 'Investigate with AI' button to filter bar for problematic guests
- Fix dashboard column sizing inconsistencies between bars and sparklines view modes
- Fix PBS backups display and polling
- Refine AI prompt for general-purpose usage
- Fix frontend flickering and reload loops during initial load
- Integrate persistent SQLite metrics store with Monitor
- Fortify AI command routing with improved validation and logging
- Fix CSRF token handling for note deletion
- Debug and fix AI command execution issues
- Various AI reliability improvements and command safety enhancements
2025-12-06 23:46:08 +00:00

44 lines
1.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
<title>Pulse</title>
<!-- Inline critical styles to prevent flash of unstyled content -->
<style>
/* Apply theme immediately before any CSS loads */
html { background-color: #f3f4f6; } /* gray-100 */
html.dark { background-color: #111827; } /* gray-900 */
body { margin: 0; min-height: 100vh; }
#root { min-height: 100vh; }
/* Hide content until app is ready to prevent layout shift */
#root:empty {
display: flex;
align-items: center;
justify-content: center;
background-color: inherit;
}
</style>
<!-- Apply dark mode immediately from localStorage to prevent flash -->
<script>
(function() {
try {
var darkMode = localStorage.getItem('pulse_dark_mode');
var prefersDark = darkMode === 'true' ||
(darkMode === null && window.matchMedia('(prefers-color-scheme: dark)').matches);
if (prefersDark) {
document.documentElement.classList.add('dark');
}
} catch (e) {}
})();
</script>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script src="/src/index.tsx" type="module"></script>
</body>
</html>