mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-25 17:14:57 +02:00
Egress optimization: - Add s-maxage + stale-while-revalidate to all API endpoints for Vercel CDN caching - Add vercel.json with immutable caching for hashed assets - Add gzip compression to sidecar responses >1KB - Add gzip to Railway RSS responses (4 paths previously uncompressed) - Increase polling intervals: markets/crypto 60s→120s, ETF/macro/stablecoins 60s→180s - Remove hardcoded Railway URL from theater-posture.js (now env-var only) PWA / Service Worker: - Add vite-plugin-pwa with autoUpdate strategy - Cache map tiles (CacheFirst), fonts (StaleWhileRevalidate), static assets - NetworkOnly for all /api/* routes (real-time data must be fresh) - Manual SW registration (web only, skip Tauri) - Add offline fallback page - Replace manual manifest with plugin-generated manifest Polymarket fix: - Route dev proxy through production Vercel (bypasses JA3 blocking) - Add 4th fallback tier: production URL as absolute fallback Desktop/Sidecar: - Dual-backend cache (_upstash-cache.js): Redis cloud + in-memory+file desktop - Settings window OK/Cancel redesign - Runtime config and secret injection improvements
27 lines
941 B
HTML
27 lines
941 B
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>WorldMonitor - Offline</title>
|
|
<style>
|
|
body { background: #0a0f0a; color: #e0e0e0; font-family: system-ui;
|
|
display: flex; align-items: center; justify-content: center;
|
|
min-height: 100vh; margin: 0; }
|
|
.c { text-align: center; padding: 2rem; }
|
|
h1 { font-size: 1.5rem; margin-bottom: 0.5rem; }
|
|
p { color: #888; font-size: 0.9rem; }
|
|
button { margin-top: 1rem; padding: 0.5rem 1.5rem; background: #1a3a1a;
|
|
color: #4ade80; border: 1px solid #2a5a2a; border-radius: 4px;
|
|
cursor: pointer; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="c">
|
|
<h1>You're Offline</h1>
|
|
<p>WorldMonitor requires an internet connection for real-time intelligence data.</p>
|
|
<button onclick="location.reload()">Retry</button>
|
|
</div>
|
|
</body>
|
|
</html>
|