From 62f94b09ee80e6bc43af243809da6a91f30ffa46 Mon Sep 17 00:00:00 2001 From: Milton Gonzalez Date: Tue, 22 Sep 2026 12:34:10 -0500 Subject: [PATCH] fix: version 2.2.3 -- auto-reload al tomar control el service worker nuevo Co-Authored-By: Claude Sonnet 5 --- CHANGELOG.md | 7 +++++++ VERSION | 2 +- backend/package.json | 2 +- frontend/package.json | 2 +- frontend/src/main.jsx | 13 +++++++++++++ 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0414a6..e291987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - project.linkedcorp.net +## [2.2.3] - 2026-09-22 +### Fixed +- Al actualizar (ya sea con el botón nuevo o por deploy manual), la pestaña abierta seguía + mostrando JS/CSS viejo hasta hacer F5 a mano, aunque el servidor ya tuviera la versión nueva + — el service worker tomaba control solo pero no refrescaba la página. Ahora se refresca sola + en cuanto el service worker nuevo toma control. + ## [2.2.2] - 2026-09-22 ### Fixed - El botón "Actualizar" fallaba en el build del frontend: heredaba `NODE_ENV=production` del diff --git a/VERSION b/VERSION index b1b25a5..5859406 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.2 +2.2.3 diff --git a/backend/package.json b/backend/package.json index 5d30260..dd469c7 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "project-linkedcorp-backend", - "version": "2.2.2", + "version": "2.2.3", "private": true, "type": "module", "main": "src/server.js", diff --git a/frontend/package.json b/frontend/package.json index a710ff3..0a1232a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "project-linkedcorp-frontend", "private": true, - "version": "2.2.2", + "version": "2.2.3", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index 6883453..41ab7b6 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -11,6 +11,19 @@ installGlobalErrorReporter(); // nada al usuario (no hay riesgo de mostrar una version vieja de la UI por mucho tiempo). registerSW({ immediate: true }); +// skipWaiting+clientsClaim (activados por autoUpdate) hacen que el service worker nuevo tome +// control solo, pero eso NO refresca la pagina ya abierta -- el usuario seguia viendo JS/CSS +// viejo hasta un F5 manual. Con esto, en cuanto el nuevo SW toma control, se refresca sola una +// vez (la bandera evita un loop si el evento dispara mas de una vez). +if ('serviceWorker' in navigator) { + let reloaded = false; + navigator.serviceWorker.addEventListener('controllerchange', () => { + if (reloaded) return; + reloaded = true; + window.location.reload(); + }); +} + ReactDOM.createRoot(document.getElementById('root')).render(