feat: enhance memory API responses with limits and update UI components for memory limit handling

This commit is contained in:
Anish Sarkar 2026-05-20 03:17:05 +05:30
parent fa6d7c60bf
commit 73043a0756
9 changed files with 132 additions and 51 deletions

View file

@ -8,7 +8,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
from app.db import User, get_async_session
from app.services.memory import (
MemoryRead,
MemoryScope,
memory_limits,
read_memory,
reset_memory,
save_memory,
@ -18,10 +20,6 @@ from app.users import current_active_user
router = APIRouter()
class MemoryRead(BaseModel):
memory_md: str
class MemoryUpdate(BaseModel):
memory_md: str
@ -36,7 +34,7 @@ async def get_user_memory(
target_id=user.id,
session=session,
)
return MemoryRead(memory_md=memory_md)
return MemoryRead(memory_md=memory_md, limits=memory_limits())
@router.put("/users/me/memory", response_model=MemoryRead)
@ -53,7 +51,7 @@ async def update_user_memory(
)
if result.status == "error":
raise HTTPException(status_code=400, detail=result.message)
return MemoryRead(memory_md=result.memory_md)
return MemoryRead(memory_md=result.memory_md, limits=memory_limits())
@router.post("/users/me/memory/reset", response_model=MemoryRead)
@ -68,4 +66,4 @@ async def reset_user_memory(
)
if result.status == "error":
raise HTTPException(status_code=400, detail=result.message)
return MemoryRead(memory_md=result.memory_md)
return MemoryRead(memory_md=result.memory_md, limits=memory_limits())

View file

@ -8,7 +8,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
from app.db import User, get_async_session
from app.services.memory import (
MemoryRead,
MemoryScope,
memory_limits,
read_memory,
reset_memory,
save_memory,
@ -19,15 +21,11 @@ from app.utils.rbac import check_search_space_access
router = APIRouter()
class TeamMemoryRead(BaseModel):
memory_md: str
class TeamMemoryUpdate(BaseModel):
memory_md: str
@router.get("/searchspaces/{search_space_id}/memory", response_model=TeamMemoryRead)
@router.get("/searchspaces/{search_space_id}/memory", response_model=MemoryRead)
async def get_team_memory(
search_space_id: int,
session: AsyncSession = Depends(get_async_session),
@ -39,10 +37,10 @@ async def get_team_memory(
target_id=search_space_id,
session=session,
)
return TeamMemoryRead(memory_md=memory_md)
return MemoryRead(memory_md=memory_md, limits=memory_limits())
@router.put("/searchspaces/{search_space_id}/memory", response_model=TeamMemoryRead)
@router.put("/searchspaces/{search_space_id}/memory", response_model=MemoryRead)
async def update_team_memory(
search_space_id: int,
body: TeamMemoryUpdate,
@ -58,10 +56,10 @@ async def update_team_memory(
)
if result.status == "error":
raise HTTPException(status_code=400, detail=result.message)
return TeamMemoryRead(memory_md=result.memory_md)
return MemoryRead(memory_md=result.memory_md, limits=memory_limits())
@router.post("/searchspaces/{search_space_id}/memory/reset", response_model=TeamMemoryRead)
@router.post("/searchspaces/{search_space_id}/memory/reset", response_model=MemoryRead)
async def reset_team_memory(
search_space_id: int,
session: AsyncSession = Depends(get_async_session),
@ -75,4 +73,4 @@ async def reset_team_memory(
)
if result.status == "error":
raise HTTPException(status_code=400, detail=result.message)
return TeamMemoryRead(memory_md=result.memory_md)
return MemoryRead(memory_md=result.memory_md, limits=memory_limits())