Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
When streaming: true is enabled for the Feishu channel, the streaming card message only displays the last character of the response after streaming completes. Full text is visible in the chat list preview but not in the card itself.
Steps to reproduce
Enable streaming: true in channels.feishu config (default)
Send any message to the Feishu bot
Observe the streaming card during and after streaming
After streaming completes, the card only shows the last character
Expected behavior
The streaming card should display the full response text after streaming completes.
Actual behavior
After streaming completes, the card only displays the last character. The chat list preview correctly shows the full text. 100% reproduction rate.
OpenClaw version
2026.3.30-31
Operating system
Ubuntu 26.04, CentOS Stream 10, Fedora 44
Install method
npm global
Model
All
Provider / routing chain
All
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
All Feishu users with streaming: true are affected. Severity: blocks workflow — streaming output is completely broken. Frequency: always. Workaround: set streaming: false.
Additional information
The Feishu CardKit streaming API (PUT /cardkit/v1/cards/{card_id}/elements/content/content) uses overwrite mode, not append mode. But resolveStreamingCardAppendContent() computes only the delta (new characters) and sends that. Each update overwrites the card with just the latest delta, so only the last few characters remain.
Example:
Update 1: sends "Hello" → card shows "Hello" ✅
Update 2: sends " World" → card shows " World" ❌ (overwrites!)
Update 3: sends "!" → card shows "!" ❌
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
When streaming: true is enabled for the Feishu channel, the streaming card message only displays the last character of the response after streaming completes. Full text is visible in the chat list preview but not in the card itself.
Steps to reproduce
Enable streaming: true in channels.feishu config (default)
Send any message to the Feishu bot
Observe the streaming card during and after streaming
After streaming completes, the card only shows the last character
Expected behavior
The streaming card should display the full response text after streaming completes.
Actual behavior
After streaming completes, the card only displays the last character. The chat list preview correctly shows the full text. 100% reproduction rate.
OpenClaw version
2026.3.30-31
Operating system
Ubuntu 26.04, CentOS Stream 10, Fedora 44
Install method
npm global
Model
All
Provider / routing chain
All
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
All Feishu users with streaming: true are affected. Severity: blocks workflow — streaming output is completely broken. Frequency: always. Workaround: set streaming: false.
Additional information
The Feishu CardKit streaming API (PUT /cardkit/v1/cards/{card_id}/elements/content/content) uses overwrite mode, not append mode. But resolveStreamingCardAppendContent() computes only the delta (new characters) and sends that. Each update overwrites the card with just the latest delta, so only the last few characters remain.
Example:
Update 1: sends "Hello" → card shows "Hello" ✅
Update 2: sends " World" → card shows " World" ❌ (overwrites!)
Update 3: sends "!" → card shows "!" ❌