diff --git a/openhands/server/config/openhands_config.py b/openhands/server/config/openhands_config.py index dda649ea904d..a7008a426c06 100644 --- a/openhands/server/config/openhands_config.py +++ b/openhands/server/config/openhands_config.py @@ -59,7 +59,7 @@ def attach_middleware(self, api: FastAPI) -> None: RateLimitMiddleware, rate_limiter=InMemoryRateLimiter(requests=10, seconds=1), ) - api.middleware('http')(AttachConversationMiddleware) + api.middleware('http')(AttachConversationMiddleware(api)) def load_openhands_config(): diff --git a/openhands/server/middleware.py b/openhands/server/middleware.py index a7b30e479bbc..ef5a42a12d7f 100644 --- a/openhands/server/middleware.py +++ b/openhands/server/middleware.py @@ -10,7 +10,7 @@ from starlette.middleware.base import BaseHTTPMiddleware from starlette.types import ASGIApp -from openhands.server.shared import session_manager +from openhands.server import shared from openhands.server.types import SessionMiddlewareInterface @@ -134,8 +134,8 @@ async def _attach_conversation(self, request: Request) -> JSONResponse | None: """ Attach the user's session based on the provided authentication token. """ - request.state.conversation = await session_manager.attach_to_conversation( - request.state.sid + request.state.conversation = ( + await shared.session_manager.attach_to_conversation(request.state.sid) ) if not request.state.conversation: return JSONResponse( @@ -148,7 +148,9 @@ async def _detach_session(self, request: Request) -> None: """ Detach the user's session. """ - await session_manager.detach_from_conversation(request.state.conversation) + await shared.session_manager.detach_from_conversation( + request.state.conversation + ) async def __call__(self, request: Request, call_next: Callable): if not self._should_attach(request):