diff --git a/pyproject.toml b/pyproject.toml index 54d12220e1..e195359b22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" authors = [{ name = "chatos@alibaba" }] requires-python = "<4.0,>=3.10" name = "rl-rock" -version = "1.10.0.dev20" +version = "1.10.0.dev2026070901" description = "ROCK-Reinforcement Open Construction Kit" readme = "README.md" dependencies = [ diff --git a/rock/sdk/mcp/mcp_env.py b/rock/sdk/mcp/mcp_env.py index 2d7cf94ee5..1e5e915cd3 100644 --- a/rock/sdk/mcp/mcp_env.py +++ b/rock/sdk/mcp/mcp_env.py @@ -146,7 +146,7 @@ async def init(self, data: dict) -> dict: result = self.data_lifecycles[lifecycle_type].init(lifecycle_data) if inspect.isawaitable(result): result = await result - if result is not None and result != {}: + if result is not None: init_results[lifecycle_type] = result return init_results diff --git a/tests/unit/sdk/mcp/test_mcp_env.py b/tests/unit/sdk/mcp/test_mcp_env.py index 1ac37a74c4..4253cf2143 100644 --- a/tests/unit/sdk/mcp/test_mcp_env.py +++ b/tests/unit/sdk/mcp/test_mcp_env.py @@ -104,6 +104,12 @@ def init(self, data: dict) -> dict: return {"initialized": False, "result": {}} +class EmptyInitResultLifecycle(RecordingDataLifecycle): + def init(self, data: dict) -> dict: + super().init(data) + return {} + + class FakeSandboxAware: def set_sandbox(self, sandbox) -> None: self.sandbox = sandbox @@ -715,6 +721,16 @@ def test_mcp_env_init_keeps_deferred_init_result(monkeypatch): assert result == {"slack": {"initialized": False, "result": {}}} +def test_mcp_env_init_keeps_empty_lifecycle_result(monkeypatch): + mcp_env = reload_mcp_env(monkeypatch) + env = mcp_env.McpEnv(servers={"slack": slack_server_config()}) + env.data_lifecycles["slack"] = EmptyInitResultLifecycle() + + result = asyncio.run(env.init({"slack": {"reset": []}})) + + assert result == {"slack": {}} + + def test_mcp_env_dump_awaits_async_lifecycle(monkeypatch): mcp_env = reload_mcp_env(monkeypatch) env = mcp_env.McpEnv(servers={"slack": slack_server_config()}) diff --git a/uv.lock b/uv.lock index 5f572853c8..985a88d98e 100644 --- a/uv.lock +++ b/uv.lock @@ -4515,7 +4515,7 @@ wheels = [ [[package]] name = "rl-rock" -version = "1.10.0.dev20" +version = "1.10.0.dev2026070901" source = { editable = "." } dependencies = [ { name = "anyio" },