Skip to content

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

@airbing11

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/feishu@2026.5.28
  • 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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions