feat: add logging for Feishu streaming card updates and handle update failures more explicitly

This commit is contained in:
jxxghp
2026-05-13 08:44:57 +08:00
parent 19526146c5
commit f017eaedcc

View File

@@ -768,6 +768,7 @@ class Feishu:
.build()
)
if response.success():
logger.info("飞书流式卡片更新成功card_id=%s, sequence=%s, content_len=%s", card_id, sequence, len(content))
return True
logger.error(
"飞书流式卡片内容更新失败card_id=%s, element_id=%s, sequence=%s, code=%s, msg=%s, log_id=%s",
@@ -1249,8 +1250,10 @@ class Feishu:
card_id = str(stream_meta.get("card_id") or "").strip()
element_id = str(stream_meta.get("element_id") or self.STREAM_CARD_BODY_ELEMENT_ID).strip()
sequence = int(stream_meta.get("sequence") or 0) + 1
logger.info("准备更新飞书流式卡片card_id=%s, sequence=%s (before incr: %s)", card_id, sequence, stream_meta.get("sequence"))
# 无论远端是否响应成功都自增 sequence防止某次超时导致后续 sequence 一直因为没有递增而被拒绝
stream_meta["sequence"] = sequence
if card_id and element_id:
if self._update_streaming_card_content(
card_id=card_id,
@@ -1259,6 +1262,7 @@ class Feishu:
sequence=sequence,
):
return True
logger.error("飞书流式更新失败被拦截,直接返回 False 以防止降级为普通卡片")
return False
card = self._build_card(title=title, text=text, link=None, buttons=buttons)