fix(gateway): retry MCP readiness before turns (#5535)

This commit is contained in:
chengyongru
2026-08-26 11:29:48 +08:00
committed by GitHub
parent a8ffe0f136
commit 0c84725b13
3 changed files with 41 additions and 1 deletions
+22 -1
View File
@@ -11,7 +11,10 @@ import asyncio
import time
from contextlib import suppress
from nanobot.cli.gateway_runtime import _close_gateway_runtime
from nanobot.agent.hook import AgentRunHookContext
from nanobot.agent.tools.mcp import MCPProvider
from nanobot.agent.tools.registry import ToolRegistry
from nanobot.cli.gateway_runtime import _close_gateway_runtime, _MCPReadinessHook
class _FakeAgent:
@@ -53,6 +56,24 @@ class _FakeMCPProvider:
self.events.append("mcp_closed")
class _TrackingMCPProvider(MCPProvider):
def __init__(self) -> None:
super().__init__({}, ToolRegistry())
self.connect_calls = 0
async def connect(self) -> None:
self.connect_calls += 1
async def test_mcp_readiness_hook_delegates_to_application_provider() -> None:
provider = _TrackingMCPProvider()
hook = _MCPReadinessHook(provider)
await hook.before_run(AgentRunHookContext(messages=[]))
assert provider.connect_calls == 1
async def _cancellable_task(events: list[str]) -> None:
try:
await asyncio.sleep(3600)