feat: add multi-channel Devii sessions with docs search mode and channel-aware conversation persistence

This commit is contained in:
2026-06-13 21:37:13 +00:00
parent 873186b274
commit 61c1ae8c5d
25 changed files with 1250 additions and 134 deletions
+5
View File
@@ -29,6 +29,7 @@ router = APIRouter()
GUEST_COOKIE = DEVII_GUEST_COOKIE
GUEST_COOKIE_MAX_AGE = 31536000
CHANNELS = frozenset({"main", "docs"})
def _service():
@@ -208,6 +209,9 @@ async def devii_ws(websocket: WebSocket):
if not service_manager.owns_lock():
await websocket.close(code=4013)
return
channel = websocket.query_params.get("channel", "main")
if channel not in CHANNELS:
channel = "main"
owner_kind, owner_id, username, api_key, owner_is_admin = _resolve_ws_owner(
websocket
)
@@ -225,6 +229,7 @@ async def devii_ws(websocket: WebSocket):
api_key,
svc.instance_base_url(),
is_admin=owner_is_admin,
channel=channel,
)
session.attach(websocket)
try: