dsh-im-ops/test/channels/feishu
C3H3-AI 0b42ea9889 feat(feishu): interactive approval and question cards with buttons
Render Harness approval and single-choice question interactions as
interactive Feishu cards with approve/reject and answer buttons,
matching the already-available interactionCards behaviour. Cards are now
the default; set DSH_IM_INTERACTION_CARDS=0 (or interactionCards=false)
to keep the plain-text reply flow.

- bridge.mjs: approve:/reject:/answer: card actions, interactionCards
  option, gated approval render hook, interactive question presentation,
  and operationArguments/printableText helpers; refactor the inline
  question answer into #submitQuestionAnswer so both text replies and
  card buttons share one path.
- feishu-cards.mjs: approvalCard (approve/reject) and questionCard
  (option buttons) templates.
- feishu-runtime.mjs: default interactionCards from env (on).
- harness-approval.mjs: optional channel render hook + submitByApprovalId.
- i18n-en: add the new card t() keys.
- Tests: pin the plain-text reply flow in state-machine suites that
  drive it, and add dedicated card tests for the default approve/reject,
  answer buttons, and the text fallback. Full suite shows no new
  failures versus upstream.
2026-09-02 00:18:37 +08:00
..
fixtures fix(feishu): stabilize post-merge card workflows 2026-08-24 18:49:32 +08:00
bridge.test.mjs feat(feishu): interactive approval and question cards with buttons 2026-09-02 00:18:37 +08:00
client-api.test.mjs feat(feishu): add group message permission authorization 2026-08-22 02:29:59 +08:00
config.test.mjs Internalize all IM channel implementations 2026-08-15 15:40:53 +08:00
connection-supervisor.test.mjs fix: complete per-bot agent preset lifecycle 2026-08-22 00:20:23 +08:00
connection-test-client.test.mjs fix(feishu): complete permissions repair flow 2026-08-25 04:25:21 +08:00
feishu-app.test.mjs fix(feishu): honor proxy settings for REST and WebSocket 2026-08-22 14:45:25 +08:00
feishu-cards.test.mjs fix(feishu): document numbered workspace switching 2026-09-01 15:47:27 +08:00
feishu-channel.test.mjs feat(feishu): add stream card rotation to keep answers below mid-turn interactions 2026-09-01 17:53:42 +08:00
feishu-proxy.test.mjs fix(feishu): honor NO_PROXY before proxying the long connection 2026-09-01 09:46:49 +08:00
feishu-runtime.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
group-message-permission-manager.test.mjs feat(feishu): add group message permission authorization 2026-08-22 02:29:59 +08:00
harness-client.test.mjs fix(feishu): stabilize post-merge card workflows 2026-08-24 18:49:32 +08:00
lark-sdk-handshake-patch.test.mjs fix(feishu): stabilize post-merge card workflows 2026-08-24 18:49:32 +08:00
message-utils.test.mjs feat(feishu): isolate Harness sessions per topic in topic groups 2026-08-31 13:54:35 +08:00
multi-bot-controller.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
plugin-config-store.test.mjs feat(feishu): add group message permission authorization 2026-08-22 02:29:59 +08:00
plugin-controller.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
plugin-host.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
registration-manager.test.mjs Internalize all IM channel implementations 2026-08-15 15:40:53 +08:00
repair-manager.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
slash-command-registry.test.mjs fix(feishu): integrate slash command permissions 2026-08-31 01:21:38 +08:00
state-store.test.mjs Internalize all IM channel implementations 2026-08-15 15:40:53 +08:00