fix: contact_folder_service db.refresh after commit + AI stream own DB session in generator
Check Cross-Plugin Imports / check (push) Has been cancelled

This commit is contained in:
Agent Zero
2026-07-30 12:49:53 +02:00
parent acea622a0f
commit a9a9476e9f
2 changed files with 15 additions and 10 deletions
+9 -4
View File
@@ -578,10 +578,15 @@ async def chat_stream(
}
async def event_stream():
async for chunk in stream_chat(
db, session, agent, data.content, user_context, tenant_id
):
yield chunk
# Use a fresh DB session — the Depends(get_db) session closes after response
from app.core.db import get_session_factory
factory = get_session_factory()
async with factory() as stream_db:
await set_tenant_context(stream_db, tenant_id)
async for chunk in stream_chat(
stream_db, session, agent, data.content, user_context, tenant_id
):
yield chunk
yield "data: [DONE]\n\n"
return StreamingResponse(
+6 -6
View File
@@ -111,9 +111,9 @@ async def create_folder(
sort_order=max_order + 1,
)
db.add(folder)
result = _serialize_folder(folder)
await db.commit()
await db.refresh(folder)
return _serialize_folder(folder)
return result
async def update_folder(
@@ -143,9 +143,9 @@ async def update_folder(
if "sort_order" in data and data["sort_order"] is not None:
folder.sort_order = data["sort_order"]
result = _serialize_folder(folder)
await db.commit()
await db.refresh(folder)
return _serialize_folder(folder)
return result
async def delete_folder(
@@ -195,9 +195,9 @@ async def move_contact(
raise ValueError("Contact not found")
contact.folder_id = uuid.UUID(folder_id) if folder_id else None
result = {"id": str(contact.id), "folder_id": str(contact.folder_id) if contact.folder_id else None}
await db.commit()
await db.refresh(contact)
return {"id": str(contact.id), "folder_id": str(contact.folder_id) if contact.folder_id else None}
return result
async def reorder_folders(