#1658·cc-connect

[Feishu] pi agent's ask_user_question card: broken layout on mobile, button clicks never dispatched (v1.5.0-beta.2)

Author: Po1nt9Created Aug 10, 2026Updated Sep 14, 2026
Labelsstale

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:

  1. Layout is garbled on the Feishu mobile client (options/header render incorrectly; desktop looks closer to intended but still off).
  2. 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.