Add app label to root header and auto-reload sexp templates in dev

Show current subdomain name (blog, cart, events, etc.) next to the site
title in the root header row. Remove the redundant second "cart" menu row
from cart overview and checkout error pages.

Add dev-mode hot-reload for sexp templates: track file mtimes and re-read
changed files per-request when RELOAD=true, so .sexp edits are picked up
without restarting services.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 19:33:00 +00:00
parent 6d43404b12
commit 6c44a5f3d0
7 changed files with 56 additions and 10 deletions

View File

@@ -98,6 +98,7 @@ async def base_context() -> dict:
"qs_filter": _qs_filter_fn(),
"print": print,
"base_url": base_url,
"app_label": current_app.name,
"base_title": config()["title"],
"hx_select": hx_select,
"hx_select_search": hx_select_search,

View File

@@ -114,6 +114,14 @@ def create_base_app(
setup_sexp_bridge(app)
load_shared_components()
load_relation_registry()
# Dev-mode: auto-reload sexp templates when files change on disk
if os.getenv("RELOAD") == "true":
from shared.sexp.jinja_bridge import reload_if_changed
@app.before_request
async def _sexp_hot_reload():
reload_if_changed()
errors(app)
# Auto-register OAuth client blueprint for non-account apps