From 3191f1fe3bb1d43c5926a63bea7f411ac0a64da5 Mon Sep 17 00:00:00 2001 From: Antti Kettunen Date: Sat, 18 Apr 2026 14:24:56 +0300 Subject: [PATCH] Auto-reload static assets in development --- gunicorn.dev.conf.py | 1 + web_server.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gunicorn.dev.conf.py b/gunicorn.dev.conf.py index 6a4c73a1..e62ce120 100644 --- a/gunicorn.dev.conf.py +++ b/gunicorn.dev.conf.py @@ -5,6 +5,7 @@ worker_class = "gthread" workers = 1 threads = 4 reload = True +raw_env = ["SOULSYNC_WEB_DEV_NO_CACHE=1"] # Keep requests from hanging forever on slow external services. timeout = 120 diff --git a/web_server.py b/web_server.py index 928cbb2f..8df60532 100644 --- a/web_server.py +++ b/web_server.py @@ -119,6 +119,7 @@ from core.automation_engine import AutomationEngine # --- Flask App Setup --- base_dir = os.path.abspath(os.path.dirname(__file__)) project_root = os.path.dirname(base_dir) # Go up one level to the project root +DEV_STATIC_NO_CACHE = os.environ.get('SOULSYNC_WEB_DEV_NO_CACHE', '0').lower() in ('1', 'true', 'yes', 'on') # Check for environment variable first (Docker support), then fallback to calculated path env_config_path = os.environ.get('SOULSYNC_CONFIG_PATH') @@ -158,6 +159,8 @@ app = Flask( template_folder=os.path.join(base_dir, 'webui'), static_folder=os.path.join(base_dir, 'webui', 'static') ) +app.config['TEMPLATES_AUTO_RELOAD'] = DEV_STATIC_NO_CACHE +app.jinja_env.auto_reload = DEV_STATIC_NO_CACHE # --- Flask Session Setup (for multi-profile support) --- import secrets as _secrets @@ -213,7 +216,6 @@ def _set_profile_context(): def _log_slow_request(response): """Log slow HTTP requests so we can identify UI stall sources.""" try: - # Skip websocket upgrades and very common noise. path = request.path if path.startswith('/socket.io/'): return response