Skip to content

[Bug] Feishu streaming card: abnormal typewriter effect and final content truncated to last character #88929

Description

@airbing11

Summary

When Feishu channel streaming is enabled with card render mode, replies show an abnormal typewriter effect (1-2 characters at a time) and the final card content is truncated — often leaving only the last character (e.g. "?"), with all other text lost.

Environment

  • OpenClaw version: 2026.5.28 (also reproduced on 2026.5.27)
  • Feishu plugin: @openclaw/[email protected]
  • Model: deepseek/deepseek-v4-flash
  • Agent: main
  • Deployment: Tencent Cloud Lighthouse, Ubuntu, Feishu websocket
  • Feishu client: Both mobile & desktop — same issue

Configuration

"feishu": {
  "enabled": true,
  "appId": "cli_a968b21595b89bdf",
  "streaming": true,
  "renderMode": "card",
  "blockStreaming": false,
  "textChunkLimit": 8000
}

Steps to Reproduce

  1. Set channels.feishu.streaming: true
  2. Set renderMode: "card"
  3. Set blockStreaming: false
  4. Send a message via Feishu DM that triggers a longer reply (tool call + summary, or multi-paragraph text)
  5. Observe the streaming card during generation and the final card content

Expected Behavior

  • Smooth typewriter streaming effect on Feishu card
  • Final card shows complete reply content
  • Tool call output and final summary are both visible

Actual Behavior

  • Typewriter effect is abnormal (characters appear 1-2 at a time, not smooth streaming)
  • Final card content is truncated; only the last few characters remain (often just "?")
  • Intermediate streaming may show partial text, but final rendered card loses most content

Control Groups

Config Result
streaming: false + renderMode: card ✅ Complete content, no truncation
streaming: true + renderMode: raw ⚠️ Complete content, but no stable card typewriter UX
QQ Bot streaming: true ✅ Works normally (not a global streaming issue)

Workaround

"feishu": {
  "streaming": false,
  "renderMode": "card",
  "blockStreaming": false
}

Content is complete but without typewriter effect.

Additional Notes

  • Issue present since 2026.5.27, still unfixed in 2026.5.28
  • Changelog does not mention Feishu streaming fixes for this behavior
  • Possibly related to CardKit streaming card update/finalize race (partial → idle → final)
  • Gateway log snippet (dispatch to close: ~9s, close happens ~7s after dispatch complete):
feishu[default] Started streaming: cardId=7646292918105738171
feishu[default]: dispatch complete (queuedFinal=true, replies=1)
feishu[default] Closed streaming: cardId=7646292918105738171

Related Issues

Attachments

Screenshot of final truncated Feishu card (showing only "?") will be added as a comment after issue creation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions