[Feishu] pi agent's ask_user_question card: broken layout on mobile, button clicks never dispatched (v1.5.0-beta.2)
Environment
- cc-connect version: v1.5.0-beta.2 (commit 0898fe08)
- Agent:
pi(@earendil-works/pi-coding-agent),rpc = true - Platform: Feishu (self-built app, WebSocket / 长连接 event mode)
enable_feishu_card = true,progress_style = "compact"
What happens
When the pi agent calls its ask_user_question tool (from the @juicesharp/rpiv-ask-user-question extension, which in RPC mode walks pi's select/input dialog sub-protocol), cc-connect renders it as a Feishu interactive card, but:
- Layout is garbled on the Feishu mobile client (options/header render incorrectly; desktop looks closer to intended but still off).
- Button clicks do nothing on BOTH desktop and mobile. The tool call eventually returns "user declined" without any interaction.
Key evidence: the click callback never reaches cc-connect
My card.action.trigger subscription works — permission/other cards dispatch fine:
time=...T06:23:02 level=INFO msg="feishu: card action dispatched as command" cmd=/memory ...
time=...T06:23:08 level=INFO msg="feishu: card action dispatched as command" cmd=/allow ...But during two ask_user_question tests (~08:00-08:25), the log shows zero card-action entries for the question card, while clicks were definitely attempted. So either the question card's buttons use an action prefix that the handler silently drops (see #871: only cmd: actions are processed, act:/nav: dropped), or the card's callback payload is rejected before dispatch.
Possibly related: #871 (non-cmd: actions dropped), #1184 (multiSelect rendering on Feishu).
Expected
- Question card buttons dispatch their action and the selected answer is returned to the agent, or
- A documented fallback (plain-text numbered options) when interactive question cards aren't fully supported for an agent type.
Workaround
None on the config side short of enable_feishu_card = false (which also disables the working permission cards). We currently tell the agent to ask questions as plain chat text instead.
Source: chenhg5/cc-connect