From f8c8230875a03ce85721d2ccf395b90ba39d632c Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 18 Jun 2026 19:47:10 +0000 Subject: [PATCH] fix(stt): HUD servi sans cache navigateur (anti ancienne version) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le HUD est un dashboard live servi en statique : sans en-tête anti-cache, le navigateur garde l'ancien index.html après mise à jour (« je vois encore la version bleue »). Ajoute Cache-Control: no-store + Pragma: no-cache via un handler dédié, et silence le log HTTP par requête. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_017Qjq5jHiqNepnobJpHYpCa --- stt/client/stt/ui/app.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/stt/client/stt/ui/app.py b/stt/client/stt/ui/app.py index c0eda31..6092604 100644 --- a/stt/client/stt/ui/app.py +++ b/stt/client/stt/ui/app.py @@ -18,8 +18,24 @@ from typing import Any HUD_DIR = Path(__file__).resolve().parent.parent / "hud" +class _HudHandler(SimpleHTTPRequestHandler): + """Sert le HUD en interdisant le cache navigateur. + + Sans ça, le navigateur garde l'ancien index.html après une mise à jour + (symptôme classique : « je vois encore l'ancienne version »). + """ + + def end_headers(self): + self.send_header("Cache-Control", "no-store, max-age=0") + self.send_header("Pragma", "no-cache") + super().end_headers() + + def log_message(self, *args): # silence le log HTTP par requête + pass + + def _start_http(host: str, port: int) -> ThreadingHTTPServer: - handler = partial(SimpleHTTPRequestHandler, directory=str(HUD_DIR)) + handler = partial(_HudHandler, directory=str(HUD_DIR)) httpd = ThreadingHTTPServer((host, port), handler) threading.Thread(target=httpd.serve_forever, daemon=True).start() return httpd