fix(feishu): ship Channel signaling SDK support

This commit is contained in:
teknium1 2026-07-09 18:50:48 -07:00 committed by Teknium
parent 949e4cb72a
commit 651e632b6d
5 changed files with 16 additions and 6 deletions

View file

@ -249,7 +249,7 @@ termux-all = [
"hermes-agent[web]",
]
dingtalk = ["dingtalk-stream==0.24.3", "alibabacloud-dingtalk==2.2.42", "qrcode==7.4.2"]
feishu = ["lark-oapi==1.5.3", "qrcode==7.4.2"]
feishu = ["lark-oapi==1.6.8", "qrcode==7.4.2"]
google = [
# Required by the google-workspace skill (Gmail, Calendar, Drive, Contacts,
# Sheets, Docs). Declared here so packagers (Nix, Homebrew) ship them with

View file

@ -48,7 +48,7 @@ AUTHOR_MAP = {
"humphreysun98@gmail.com": "HumphreySun98", # PR #61142 salvage (web: null web/backend config value guards)
"sonxi@nous.local": "17324393074", # PR #53196 salvage (tools_config: known_plugin_toolsets null guard; commit under unlinked local identity)
"lemonwan@users.noreply.github.com": "lemonwan", # PR #59430 sibling salvage (adapter reconnect contract guard)
"luxuguangno1@163.com": "luxuguang-leo", # PR #52966 salvage (QQBot reconnect contract)
"luxuguangno1@163.com": "luxuguang-leo", # PR #52966 + #52908 salvage (QQBot reconnect + Feishu Channel signaling)
"grace@weeb.onl": "evelynburger", # PR #57544 salvage (gateway: webhook payload filters + route scripts; commit under unlinked identity)
"contato@siteup.com.br": "SiteupAgencia", # PR #57435 salvage (tui_gateway: back off notification poller when session is busy; #55578)
"164521089+rainbowgits@users.noreply.github.com": "rainbowgore", # PR #59405 salvage (mcp: bound stdio initialize handshake to stop subprocess/FD leak; #59349)

View file

@ -173,6 +173,16 @@ class TestFeishuMessageNormalization(unittest.TestCase):
class TestFeishuAdapterMessaging(unittest.TestCase):
@unittest.skipUnless(_HAS_LARK_OAPI, "lark-oapi not installed")
def test_websocket_sdk_accepts_channel_ua_tag(self):
"""The shipped SDK must support the Channel signaling argument."""
import inspect
from lark_oapi.ws import Client as FeishuWSClient
signature = inspect.signature(FeishuWSClient)
self.assertIn("extra_ua_tags", signature.parameters)
@patch.dict(os.environ, {
"FEISHU_APP_ID": "cli_app",
"FEISHU_APP_SECRET": "secret_app",

View file

@ -188,7 +188,7 @@ LAZY_DEPS: dict[str, tuple[str, ...]] = {
"qrcode==7.4.2",
),
"platform.feishu": (
"lark-oapi==1.5.3",
"lark-oapi==1.6.8",
"qrcode==7.4.2",
),
# WeCom callback-mode adapter — parses untrusted XML POST bodies. Pulls

6
uv.lock generated
View file

@ -1794,7 +1794,7 @@ requires-dist = [
{ name = "honcho-ai", marker = "extra == 'honcho'", specifier = "==2.0.1" },
{ name = "httpx", extras = ["socks"], specifier = "==0.28.1" },
{ name = "jinja2", specifier = "==3.1.6" },
{ name = "lark-oapi", marker = "extra == 'feishu'", specifier = "==1.5.3" },
{ name = "lark-oapi", marker = "extra == 'feishu'", specifier = "==1.6.8" },
{ name = "markdown", specifier = "==3.10.2" },
{ name = "mautrix", extras = ["encryption"], marker = "extra == 'matrix'", specifier = "==0.21.0" },
{ name = "mcp", marker = "extra == 'computer-use'", specifier = "==1.26.0" },
@ -2184,7 +2184,7 @@ wheels = [
[[package]]
name = "lark-oapi"
version = "1.5.3"
version = "1.6.8"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
@ -2194,7 +2194,7 @@ dependencies = [
{ name = "websockets" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/bf/ff/2ece5d735ebfa2af600a53176f2636ae47af2bf934e08effab64f0d1e047/lark_oapi-1.5.3-py3-none-any.whl", hash = "sha256:fda6b32bb38d21b6bdaae94979c600b94c7c521e985adade63a54e4b3e20cc36", size = 6993016, upload-time = "2026-01-27T08:21:49.307Z" },
{ url = "https://files.pythonhosted.org/packages/4a/ad/1ab04db5d549ad1a7a2cd33682b1c38dee1d65019cb24fd7a23270e6337d/lark_oapi-1.6.8-py3-none-any.whl", hash = "sha256:9b443a5d47a7d204dd42dc40896c8b75087cc35788e45c48c140806d7df7e5e8", size = 7798300, upload-time = "2026-06-02T07:40:05.492Z" },
]
[[package]]