dsh-im-ops/src/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
..
i18n-en feat(feishu): interactive approval and question cards with buttons 2026-09-02 00:18:37 +08:00
semantic fix: surface actionable channel message errors 2026-08-25 14:54:50 +08:00
access-policy.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
agent-preset.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
batch-input.mjs feat: add private chat batch input commands 2026-08-25 02:39:31 +08:00
bot-workspace-store.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00
command-permission.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
compact-command.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
connection-test.mjs feat(settings): move IM bot to top-level menu 2026-08-25 22:42:41 +08:00
context-enhancement.mjs feat: add conversationTitle to context enhancement 2026-09-01 17:15:17 +08:00
control-command.mjs feat: add plugin version command 2026-08-25 12:25:01 +08:00
conversation-state-store.mjs feat: support per-bot workspace switching 2026-08-17 23:56:27 +08:00
editable-message-stream.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
file-download.mjs feat: support inbound files across all channels 2026-08-23 22:39:26 +08:00
harness-approval.mjs feat(feishu): interactive approval and question cards with buttons 2026-09-02 00:18:37 +08:00
harness-client.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00
harness-mux.mjs fix: use in-process Harness API for local plugin connections 2026-08-28 01:24:17 +08:00
harness-question.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
harness-session-binding.mjs feat: bind bot chats to existing harness sessions 2026-08-18 02:59:29 +08:00
history-command.mjs feat: add bounded history previews across nine channels 2026-08-28 03:01:53 +08:00
i18n-en.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
i18n.mjs fix: harden host language switching 2026-08-24 03:55:55 +08:00
image-prompt.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
inbound-access.mjs feat: add unified IM access policies 2026-09-01 10:46:41 +08:00
inbound-file.mjs feat(i18n): add English support for host-side chat messages 2026-08-24 00:32:30 +05:00
message-failure.mjs fix: surface actionable channel message errors 2026-08-25 14:54:50 +08:00
model-command.mjs feat: add reasoning effort commands 2026-08-25 00:41:44 +08:00
preset-command.mjs feat: add session and preset list aliases 2026-08-30 02:34:40 +03:00
session-binding-lock.mjs feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
session-title.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00
status-reaction.mjs feat: add status reactions across messaging channels 2026-08-25 17:12:28 +08:00
text-harness-bridge.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00
token-bot-controller.mjs feat: add stable proactive delivery 2026-08-30 11:24:53 +08:00
token-config-store.mjs fix: preserve Telegram compatibility and stabilize Office 2026-08-21 01:37:21 +08:00
workspace-command.mjs fix: [Feature] 支持使用 /workspacelist 序号切换工作区 (#87) 2026-09-01 12:29:05 +09:00
workspace-session.mjs fix: preserve session titles without context enhancement 2026-09-01 22:30:35 +08:00