Rehidratar Date al cargar caché y refresh no-destructivo

Bug raíz del click-no-abre-overlay: chrome.storage serializa con JSON,
los Date (sessionStartTime, sessionEndTime, estimatedEndDate) volvían
como strings ISO, y createWeeklyTracker llamaba .toLocaleDateString
en un string. rehydrateDates los devuelve a Date al cargar.

Mejoras adicionales:
- showOverlayError ya no destruye el panel si hay tracker visible:
  saca un aviso temporal en el header (auto-oculta a los 7s).
- DOM en el aviso construido con textContent, no innerHTML, para
  cerrar la puerta a XSS aunque el msg sea hardcodeado.
- Limpieza del andamio [CUT-DIAG] usado para encontrar el bug;
  __claudeUsageTracker se queda expuesto para depuración futura.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-06-04 14:45:00 +02:00
parent d2bc177376
commit 6e5f589156
2 changed files with 60 additions and 17 deletions

View File

@@ -666,6 +666,18 @@
animation: claude-tracker-spin-pulse 1.2s ease-in-out infinite;
}
.claude-usage-tracker-overlay-notice {
width: 100%;
margin-top: 8px;
padding: 6px 10px;
background: rgba(245, 158, 11, 0.12);
border: 1px solid rgba(245, 158, 11, 0.35);
border-radius: 6px;
font-size: 12px;
color: #f59e0b;
animation: claude-tracker-fade-in 0.2s ease;
}
@keyframes claude-tracker-spin-pulse {
0%, 100% { opacity: 0.6; }
50% { opacity: 1; }