From e864fba522e028a2af3deac0075c49feeff21d0b Mon Sep 17 00:00:00 2001 From: chengyongru <61816729+chengyongru@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:58:19 +0800 Subject: [PATCH] fix: align optional dependency contracts (#4907) * fix: align optional dependency contracts * ci: avoid duplicate test suite * test: drop removed langsmith assertions * test: rely on generic extra coverage * test: restore existing plugin coverage --- nanobot/optional_features.py | 6 +----- pyproject.toml | 3 --- tests/channels/test_feishu_reaction.py | 2 ++ tests/channels/test_feishu_streaming.py | 2 ++ 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/nanobot/optional_features.py b/nanobot/optional_features.py index b1965a34..c9aa700d 100644 --- a/nanobot/optional_features.py +++ b/nanobot/optional_features.py @@ -48,7 +48,7 @@ class InstallResult: _INSTALL_TIMEOUT_SECONDS = 300 _LOG_OUTPUT_LIMIT = 4000 -_HIDDEN_OPTIONAL_FEATURES = {"documents", "langsmith", "pdf"} +_HIDDEN_OPTIONAL_FEATURES = {"documents", "pdf"} _BUNDLED_FEATURE_ALIASES = {"documents", "pdf"} @@ -534,10 +534,6 @@ def enable_optional_feature( ) from nanobot.config.loader import get_config_path - # The old extra never powered a runtime integration. Keep the CLI spelling - # as a compatibility alias while directing users to the supported tracer. - if name == "langsmith": - name = "langfuse" if name in _BUNDLED_FEATURE_ALIASES: payload = optional_features_payload( last_action={ diff --git a/pyproject.toml b/pyproject.toml index 88e7a046..80864e57 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -127,9 +127,6 @@ whatsapp = [ "neonize>=0.3.18.post0,<0.4.0", "segno>=1.6.1,<2.0.0", ] -langsmith = [ - "langsmith>=0.1.0", -] langfuse = [ "langfuse>=3.0.0,<4.0.0", ] diff --git a/tests/channels/test_feishu_reaction.py b/tests/channels/test_feishu_reaction.py index 6d21c0a3..7721b4fe 100644 --- a/tests/channels/test_feishu_reaction.py +++ b/tests/channels/test_feishu_reaction.py @@ -4,6 +4,8 @@ from unittest.mock import AsyncMock, MagicMock import pytest +pytest.importorskip("lark_oapi") + from nanobot.bus.queue import MessageBus from nanobot.channels.feishu import FeishuChannel, FeishuConfig, _FeishuStreamBuf diff --git a/tests/channels/test_feishu_streaming.py b/tests/channels/test_feishu_streaming.py index da3537b0..d683cfaa 100644 --- a/tests/channels/test_feishu_streaming.py +++ b/tests/channels/test_feishu_streaming.py @@ -5,6 +5,8 @@ from unittest.mock import MagicMock import pytest +pytest.importorskip("lark_oapi") + from nanobot.bus.events import OutboundMessage from nanobot.bus.outbound_events import ProgressEvent from nanobot.bus.queue import MessageBus