dsh-im-ops/test/channels/shared
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
..
command-permission.test.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
context-enhancement-bridges.test.mjs feat(feishu): interactive approval and question cards with buttons 2026-09-02 00:18:37 +08:00
context-enhancement-production.test.mjs feat: split group and direct context enhancement 2026-09-01 02:06:22 +08:00
delivery-message-ids.test.mjs fix(whatsapp): respond to linked-account group messages 2026-08-25 01:12:55 +08:00
harness-apiproxy.test.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00
harness-approval.test.mjs fix: support Harness approvals across IM channels 2026-08-18 16:45:25 +08:00
harness-control.test.mjs fix: surface actionable channel message errors 2026-08-25 14:54:50 +08:00
harness-mux.test.mjs fix: use in-process Harness API for local plugin connections 2026-08-28 01:24:17 +08:00
i18n.test.mjs fix: surface actionable channel message errors 2026-08-25 14:54:50 +08:00
production.test.mjs fix: use in-process Harness API for local plugin connections 2026-08-28 01:24:17 +08:00
status-reaction.test.mjs feat: add status reactions across messaging channels 2026-08-25 17:12:28 +08:00
text-harness-bridge.test.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00