Files
SuperCharged-Claude-Code-Up…/.venv/lib/python3.11/site-packages/mcp/shared/response_router.py
uroma 55aafbae9a Fix project isolation: Make loadChatHistory respect active project sessions
- Modified loadChatHistory() to check for active project before fetching all sessions
- When active project exists, use project.sessions instead of fetching from API
- Added detailed console logging to debug session filtering
- This prevents ALL sessions from appearing in every project's sidebar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:43:05 +00:00

64 lines
2.0 KiB
Python

"""
ResponseRouter - Protocol for pluggable response routing.
This module defines a protocol for routing JSON-RPC responses to alternative
handlers before falling back to the default response stream mechanism.
The primary use case is task-augmented requests: when a TaskSession enqueues
a request (like elicitation), the response needs to be routed back to the
waiting resolver instead of the normal response stream.
Design:
- Protocol-based for testability and flexibility
- Returns bool to indicate if response was handled
- Supports both success responses and errors
"""
from typing import Any, Protocol
from mcp.types import ErrorData, RequestId
class ResponseRouter(Protocol):
"""
Protocol for routing responses to alternative handlers.
Implementations check if they have a pending request for the given ID
and deliver the response/error to the appropriate handler.
Example:
class TaskResultHandler(ResponseRouter):
def route_response(self, request_id, response):
resolver = self._pending_requests.pop(request_id, None)
if resolver:
resolver.set_result(response)
return True
return False
"""
def route_response(self, request_id: RequestId, response: dict[str, Any]) -> bool:
"""
Try to route a response to a pending request handler.
Args:
request_id: The JSON-RPC request ID from the response
response: The response result data
Returns:
True if the response was handled, False otherwise
"""
... # pragma: no cover
def route_error(self, request_id: RequestId, error: ErrorData) -> bool:
"""
Try to route an error to a pending request handler.
Args:
request_id: The JSON-RPC request ID from the error response
error: The error data
Returns:
True if the error was handled, False otherwise
"""
... # pragma: no cover