dsh-im-ops/test/channels
C3H3-AI b5378500ca fix(feishu): bind card decisions to the actor and reject stale cards
Address review feedback on the interaction cards:

1. Bind card decisions to the initiating actor. The card-action operator
   (operatorOpenId) is now passed into the approval and question handlers:
   - submitByApprovalId receives { actor } so another allowed group member
     cannot approve/reject someone else's approval;
   - the answer branch requires pending.actor === operator.

2. Include the question index in the answer button action and validate it
   against the current pending question, so a stale card from an earlier
   question in a multi-question interaction cannot be applied to the next one.

3. When both the card send and the plain-text fallback fail, the error is no
   longer swallowed: it propagates so the interaction is not marked as
   presented and the existing retry/reconnect behaviour can run.

Adds regression tests for all three cases.
2026-09-02 00:18:50 +08:00
..
dingtalk feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
discord feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
feishu fix(feishu): bind card decisions to the actor and reject stale cards 2026-09-02 00:18:50 +08:00
office fix(office): use a neutral base URL example 2026-08-21 03:57:59 +08:00
qq feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
shared feat(feishu): interactive approval and question cards with buttons 2026-09-02 00:18:37 +08:00
slack feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
telegram feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
wecom feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
weixin feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
whatsapp feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
access-policy-fixture.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00