PANEL OPERATIVO — KIT COMPLETO DEL PROYECTO
Versión: v2.26.0 (Blindaje anti "sesión expirada" falsa)
Fecha: 2026-10-07

CONTENIDO
  dashboard-index.html              Master del monolito (HTML blindado, MD5 2dbd35a7b956e51e03c8826e51411775)
  cloudflare-deploy/                PRODUCCIÓN: public/ (app estática) + functions/ (API) + _headers
  cloudflare-deploy-mirror/         ESPEJO 1: misma estructura
  worker-mirror/                    ESPEJO 2 (worker proxy): se despliega aparte con wrangler
  github-pages-kit/                 ESPEJO 3 (estático para GitHub Pages) — HTML blindado sincronizado
  github-pages-repo/                Repositorio del espejo 3 (sin .git) — HTML blindado sincronizado
  android-apk/                      Proyecto APK (assets con HTML blindado)
  vendor/                           Librerías locales
  CHANGELOG.md / CONTINUIDAD_PROYECTO.md / README.md / VERIFY_REPORT.md / MANIFEST.md5

BLINDAJE v2.26.0 (qué hace)
  El aviso "Tu sesión ha expirado" SOLO aparece si el backend lo confirma 2 veces
  (GET /api/auth/me ×2 contra el ancla). Un 401 falso (rotación, KV momentáneo,
  arranque frío) se descarta y la petición se reintenta sola (autoreparación).
  Una caída de red o un visitante anónimo NUNCA ven el aviso. Detalles en
  CHANGELOG.md (v2.26.0) y CONTINUIDAD_PROYECTO.md (ítem 20).

DESPLEGADO EN VIVO (2026-10-07)
  https://panel-operativo.pages.dev            (producción)
  https://panel-operativo-mirror.pages.dev     (espejo 1)
  https://panel-operativo.dashiellyeneri.workers.dev (espejo 2, proxy)
  Los 3 accesos sirven HTML blindado MD5 2dbd35a7b956e51e03c8826e51411775.

DESPLEGAR (si hace falta re-publicar)
  cd cloudflare-deploy && npx wrangler pages deploy public --project-name=panel-operativo --branch=main --commit-dirty=true
  cd cloudflare-deploy-mirror && npx wrangler pages deploy public --project-name=panel-operativo-mirror --branch=main --commit-dirty=true
  (El espejo GitHub se publica desde github-pages-repo/ por el propietario.)

VERIFICACIÓN DE INTEGRIDAD
  MANIFEST.md5 lista MD5 de todos los archivos de este paquete.
  Verificar: md5sum -c MANIFEST.md5 (desde la raíz extraída).
