-
-
Notifications
You must be signed in to change notification settings - Fork 69k
[Feature Request] Feishu: Support Card rendering for non-streaming + fix streaming truncation #13267
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
Two related feature requests for the Feishu plugin:
- Support Card rendering in non-streaming mode - Allow rich formatting (tables, code blocks) without requiring streaming
- Fix streaming mode truncation - Handle long content gracefully in streaming mode
Current Behavior
| Mode | Message Type | Formatting | Long Content |
|---|---|---|---|
| Streaming | Interactive Card (白底) | ✅ Rich (Markdown, tables, code) | ❌ Truncated (~30KB limit) |
| Non-streaming | Plain Text (灰底) | ❌ No formatting | ✅ Auto-chunked |
Users must choose between good formatting OR complete content, but cannot have both.
Problem Details
1. Non-streaming lacks Card support
sendMessageFeishu()usesmsg_type: "text"- No option to use
msg_type: "interactive"for Card rendering - Tables and code blocks display poorly as plain text
2. Streaming truncates long content
- Streaming uses Feishu CardKit API with ~30KB size limit
- Content beyond the limit is silently truncated
- No automatic chunking or continuation to new cards
Proposed Solutions
Solution 1: Add renderMode config
{
"channels": {
"feishu": {
"renderMode": "auto" | "raw" | "card"
}
}
}auto(default): Card for messages with code/tables, text otherwiseraw: Always plain textcard: Always interactive card
Solution 2: Handle streaming overflow
When streaming content approaches the size limit:
- Close current card gracefully
- Create a new card to continue
- Or fall back to chunked text messages
Environment
- OpenClaw version: 2026.2.2-3
- Feishu plugin: @openclaw/feishu (official)
Related
Third-party plugin @noah-claw/feishu already supports renderMode, showing this is technically feasible.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Fields
Give feedbackNo fields configured for issues without a type.