Add personal notes, DeepSearch history, backup offload, and gateway auth throttling

Also streamline the top navigation: drop the Tools dropdown, make Quizzes
and Battles icon-only entries, and remove the Workspace, Containers and
Editor entry points from the project detail page.
This commit is contained in:
2026-09-12 20:32:31 +02:00
parent c4f7d01b2d
commit cae139ead9
158 changed files with 6156 additions and 377 deletions
@@ -267,6 +267,32 @@ def test_embed_route_and_kind_isolation(local_db):
_cleanup(["utemb"], ["ut-embed"])
def test_embed_overlay_blank_provider_key_preserves_top_level_key(local_db):
r.provider_store.set(
r.ProviderIn(
name="utemblank",
base_url="https://emb.example/v1/chat/completions",
api_key="",
)
)
r.model_store.set(
r.ModelRouteIn(
source_model="ut-embed-blank",
provider="utemblank",
target_model="vendor/embed",
kind="embed",
)
)
try:
base_cfg = {"gateway_embed_key": "top-level-fallback-key"}
overlay = r.embed_overlay("ut-embed-blank", base_cfg)
assert "gateway_embed_key" not in overlay
merged = {**base_cfg, **overlay}
assert merged["gateway_embed_key"] == "top-level-fallback-key"
finally:
_cleanup(["utemblank"], ["ut-embed-blank"])
def test_inactive_route_ignored(local_db):
r.model_store.set(
r.ModelRouteIn(