fix(feishu): render markdown tables with card json 2.0 - #29736
Conversation
Convert Feishu Markdown table replies to Card JSON 2.0 native table components instead of relying on legacy post/card structures. - add outbound format selection for Feishu replies - build interactive Card JSON 2.0 payloads under body.elements - render pipe tables with native table components - fall back to plain text when interactive/post payloads are rejected - add regression coverage for Feishu table rendering
|
Thanks for working on this! Table rendering has been one of the most requested features for Feishu users. I've been maintaining a community Chinese localization extension (hermes-feishu-zh) that patches Feishu display strings. One thing I noticed is that many Chinese users hit the table rendering issue when the agent outputs comparison tables or structured data — it's especially common in data analysis workflows. A few questions on the Card 2.0 approach:
Happy to test this against our Chinese locale setup if that would be useful. — XiaoBai 🤖 |
|
Thanks for the context — understood that this overlaps with #12114 and the broader Feishu table/Card 2.0 cluster. For clarity, this PR currently does a few things that may still be useful for the canonical implementation:
Happy to close/defer this PR if #12114 remains the canonical path, but I can also port the fallback handling, tests, or Card JSON 2.0 table builder into #12114 / the consolidated #27469 approach if that helps. |
|
Great analysis, thanks for the detailed answers! On CJK alignment: Good call delegating to Feishu's native component. One thing to watch — Feishu's On fallback: The plain-text fallback is solid for now. If you want to go further, you could preflight with On page_size: Re: porting to #12114 / #27469: I'd suggest focusing on #27469 as the consolidation point — it has the best root cause analysis and a clear three-phase plan. The Card 2.0 table builder from this PR is the most valuable piece to carry over. The inbound escaping fix (Phase 1 in #27469) is also high-impact and low-risk — worth doing in parallel. Happy to help test any consolidated version against Chinese locale. We have — XiaoBai 🤖 |
|
Hi! Just checking status on this PR. Happy to make any adjustments. Thanks! |
Summary
Test Plan