From 67ee2bd7dbdb259c35d5b29bd51b0272b1e55c05 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 9 Jun 2026 17:08:50 -0700 Subject: [PATCH 1/3] feat: add REFLEX_HOT_RELOAD_OVERRIDE_PATHS to fully override reload paths When set, get_reload_paths() returns these paths directly, taking precedence over include/exclude paths and the config-derived defaults. --- packages/reflex-base/src/reflex_base/environment.py | 3 +++ reflex/utils/exec.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/packages/reflex-base/src/reflex_base/environment.py b/packages/reflex-base/src/reflex_base/environment.py index 956cd00d6cd..99521d1a339 100644 --- a/packages/reflex-base/src/reflex_base/environment.py +++ b/packages/reflex-base/src/reflex_base/environment.py @@ -642,6 +642,9 @@ class EnvironmentVariables: # Paths to exclude from the hot reload. Takes precedence over include paths. Separated by a colon. REFLEX_HOT_RELOAD_EXCLUDE_PATHS: EnvVar[list[Path]] = env_var([]) + # Paths to override in the hot reload. Takes precedence over include and exclude paths. Separated by a colon. + REFLEX_HOT_RELOAD_OVERRIDE_PATHS: EnvVar[list[Path]] = env_var([]) + # Enables different behavior for when the backend would do a cold start if it was inactive. REFLEX_DOES_BACKEND_COLD_START: EnvVar[bool] = env_var(False) diff --git a/reflex/utils/exec.py b/reflex/utils/exec.py index 60434fc6570..40753c2de22 100644 --- a/reflex/utils/exec.py +++ b/reflex/utils/exec.py @@ -500,6 +500,13 @@ def get_reload_paths() -> Sequence[Path]: Raises: RuntimeError: If the `__init__.py` file is found in the app root directory. """ + override_dirs = tuple( + map(Path.absolute, environment.REFLEX_HOT_RELOAD_OVERRIDE_PATHS.get()) + ) + + if override_dirs: + return override_dirs + config = get_config() reload_paths = [Path.cwd()] app_module = config.module From 41c99be9a11613c9d07eb26aac60790bafb998ed Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 9 Jun 2026 17:14:00 -0700 Subject: [PATCH 2/3] debug log override reload paths --- reflex/utils/exec.py | 1 + 1 file changed, 1 insertion(+) diff --git a/reflex/utils/exec.py b/reflex/utils/exec.py index 40753c2de22..6e0543d93db 100644 --- a/reflex/utils/exec.py +++ b/reflex/utils/exec.py @@ -505,6 +505,7 @@ def get_reload_paths() -> Sequence[Path]: ) if override_dirs: + console.debug(f"Reload paths (override): {list(map(str, override_dirs))}") return override_dirs config = get_config() From faf949f7e0d46a10247a72acdceb0692c3424611 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 9 Jun 2026 17:20:31 -0700 Subject: [PATCH 3/3] add changelog fragments --- news/6639.feature.md | 1 + packages/reflex-base/news/6639.feature.md | 1 + 2 files changed, 2 insertions(+) create mode 100644 news/6639.feature.md create mode 100644 packages/reflex-base/news/6639.feature.md diff --git a/news/6639.feature.md b/news/6639.feature.md new file mode 100644 index 00000000000..b90767865f4 --- /dev/null +++ b/news/6639.feature.md @@ -0,0 +1 @@ +Added the `REFLEX_HOT_RELOAD_OVERRIDE_PATHS` environment variable, a colon-separated list of paths that, when set, fully replaces the paths watched for hot reload in dev mode — taking precedence over the config-derived defaults as well as `REFLEX_HOT_RELOAD_INCLUDE_PATHS` and `REFLEX_HOT_RELOAD_EXCLUDE_PATHS`. diff --git a/packages/reflex-base/news/6639.feature.md b/packages/reflex-base/news/6639.feature.md new file mode 100644 index 00000000000..cebaafa0b79 --- /dev/null +++ b/packages/reflex-base/news/6639.feature.md @@ -0,0 +1 @@ +Added the `REFLEX_HOT_RELOAD_OVERRIDE_PATHS` environment variable, a colon-separated list of paths that, when set, fully replaces the paths watched for hot reload in dev mode.