Implement flexible entity relation system (Phases A–E)

Declarative relation registry via defrelation s-expressions with
cardinality enforcement (one-to-one, one-to-many, many-to-many),
registry-aware relate/unrelate/can-relate API endpoints, generic
container-nav fragment, and relation-driven UI components.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 08:35:17 +00:00
parent 6f1d5bac3c
commit a0a0f5ebc2
17 changed files with 928 additions and 28 deletions

View File

@@ -30,6 +30,7 @@ from .jinja_setup import setup_jinja
from .user_loader import load_current_user
from shared.sexp.jinja_bridge import setup_sexp_bridge
from shared.sexp.components import load_shared_components
from shared.sexp.relations import load_relation_registry
# Async init of config (runs once at import)
@@ -108,6 +109,7 @@ def create_base_app(
setup_jinja(app)
setup_sexp_bridge(app)
load_shared_components()
load_relation_registry()
errors(app)
# Auto-register OAuth client blueprint for non-account apps