From c3737b967b669e3c0b80cc4025cee6550e0f9251 Mon Sep 17 00:00:00 2001 From: brobert Date: Tue, 14 Oct 2025 08:51:07 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20documenta=20desactivaci=C3=B3n=20tempor?= =?UTF-8?q?al=20de=20compresi=C3=B3n=20HTTP=20y=20proxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: aider (openrouter/openai/gpt-5) --- README.md | 2 +- docs/operations.md | 1 + docs/plan-interfaz-web.md | 10 ++-------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 4c7ed52..c856d14 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Taskbot ayuda a coordinar grupos en WhatsApp: crea y asigna tareas, recuerda pen 4. Las respuestas se encolan y envían a través de Evolution API. 5. Schedulers ejecutan sincronización de grupos/miembros, recordatorios y tareas de mantenimiento. 6. Las métricas se exponen en /metrics (Prometheus o JSON). -7. Un proxy interno en Bun sirve web y bot bajo el mismo dominio: /webhook y /metrics → bot; el resto → web. +7. Un proxy interno en Bun sirve web y bot bajo el mismo dominio: /webhook y /metrics → bot; el resto → web. Actualmente, la compresión HTTP está desactivada temporalmente (sin Content-Encoding). ## Uso básico diff --git a/docs/operations.md b/docs/operations.md index 42ce8ed..10830e1 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -53,6 +53,7 @@ Arranque y servicios - Valida entorno (logs de variables presentes/faltantes). - Aplica migraciones up-only. - Inicia HTTP y (según entorno) schedulers. + - Compresión HTTP: desactivada temporalmente (el proxy fuerza Accept-Encoding: identity hacia la web y elimina Content-Encoding/Vary/Content-Length en las respuestas; además, SvelteKit se construye con precompress=false para no generar .br/.gz). - En tests, el migrador silencia logs; puede forzarse en cualquier entorno con MIGRATIONS_LOG_LEVEL='silent'. Schedulers diff --git a/docs/plan-interfaz-web.md b/docs/plan-interfaz-web.md index 95296c0..f2a2183 100644 --- a/docs/plan-interfaz-web.md +++ b/docs/plan-interfaz-web.md @@ -11,14 +11,8 @@ Este documento define el plan para añadir una interfaz web al sistema, mantenie - Páginas: /app, /app/groups y /app/preferences refactorizadas para usar los componentes; frecuencia ahora como radios (SegmentedControl). - AppShell: navegación con estado activo, espaciado compacto moderado, modo oscuro automático. - Calidad: tests de /app/preferences actualizados; resuelto warning de export no usado en TaskItem. -- Problema abierto en producción (sin relación directa con la UI): los estilos globales no aparecen y el cliente muestra un error al cargar módulos de /_app. - - start.*.js responde 200, pero el fallo puede estar en chunks secundarios (/_app/immutable/chunks/*.js) o en caché desincronizada. -- Acciones inmediatas: - 1) Verificar desde fuera: GET /_app/version.json, /_app/immutable/entry/start*.js y, especialmente, los /_app/immutable/chunks/*.js referenciados por start.*.js (deben devolver 200 y Content-Type application/javascript, no HTML). - 2) Asegurar despliegue del build completo de SvelteKit (apps/web/build/index.js y apps/web/build/client) y que el proceso web arranca con cwd correcto. - 3) Proxy: enrutar y no interceptar /_app/*; evitar catch-all que devuelva HTML; respetar Content-Type; no cachear el HTML de la app (o purgar tras deploy). - 4) Mantener imports CSS globales en apps/web/src/routes/+layout.svelte (ya aplicado). -- Seguimiento: cuando /_app/* sirva correctamente los chunks, los estilos deberían aparecer sin cambios adicionales de código. +- Incidencia de producción resuelta: la causa era Content-Encoding (brotli/gzip) no compatible en la cadena. Se desactivó la compresión end-to-end: SvelteKit se construye con precompress=false y, en el proxy Bun, se fuerza Accept-Encoding: identity hacia la web y se eliminan Content-Encoding/Vary/Content-Length en las respuestas al cliente. +- Verificación: los assets /_app/* sirven 200 sin Content-Encoding y con Content-Type correcto. Estilos y JavaScript cargan correctamente. ## 1) Decisiones fijadas