openclaw/docs/plugins
Peter Lee 2d764dd8fe
fix(feishu): preserve button command values in fallback text and add Feishu comment guidance with callback privacy (#94385)
* fix(interactive): preserve button command values in fallback text for degraded approval UX

* fix(interactive): keep callback values private in fallback text and narrow Feishu interactive detection

- P1: Skip rendering action.type === "callback" values in
  renderMessagePresentationFallbackText to avoid leaking opaque
  channel/plugin data into user-visible text. Command and legacy
  values are still rendered.
- P2: Replace hasMessagePresentationBlocks/hasInteractiveReplyBlocks
  with isMessagePresentationInteractiveBlock so Feishu comment
  guidance only appears when the presentation actually contains
  buttons or selects, not for text-only blocks.
- Update tests: callback button now shows label-only; all 137 tests pass.

* fix(interactive): only render typed command values in fallback text, keep legacy value private

* fix(feishu): gate document-comment command guidance on actual command action

* docs(message-presentation): document command/callback value fallback visibility

* fix(feishu): omit command guidance when URL overrides fallback command text

* docs: regenerate docs_map.md

* fix(interactive): exclude disabled buttons from fallback command rendering and guidance

* fix(interactive): extract hasRenderedCommandAction, exclude disabled buttons from command fallback

* fix(feishu): preserve command guidance marker through core presentation rendering

* fix(feishu): type-narrow channelData.feishu with isRecord before reading rendered-command marker

* fix(feishu): move hasRenderedCommandAction from public SDK into Feishu plugin as local helper

Keep the helper local to the only caller (Feishu outbound) instead of
adding a new public plugin SDK API contract. The shared fallback renderer
in renderMessagePresentationFallbackText already inlines the same
command-visibility logic; a local helper is sufficient for the Feishu
comment-thread guidance gate.

* refactor(feishu): tighten fallback command marker

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 12:42:31 -07:00
..
reference feat(plugins): externalize additional official plugins (#95683) 2026-06-22 16:12:51 +08:00
adding-capabilities.md fix(agents): replace prose terminal classifiers (#93228) 2026-06-15 02:53:14 -07:00
admin-http-rpc.md
agent-tools.md
architecture-internals.md fix(outbound): defer reserved-literal errors to async session-route resolver 2026-06-25 08:37:00 -07:00
architecture.md
building-extensions.md
building-plugins.md feat(plugins): allow installed trusted policy contracts 2026-06-10 16:18:23 +10:00
bundles.md
cli-backend-plugins.md feat: support /btw in CLI-backed sessions (#92669) 2026-06-13 19:36:53 +02:00
codex-computer-use.md fix(codex): restrict computer-use installation (#97955) 2026-06-29 17:17:49 -07:00
codex-harness-reference.md feat(openai): add GPT-5.6 series support (#98333) 2026-07-01 06:48:57 +01:00
codex-harness-runtime.md
codex-harness.md fix(codex): require admin for native controls (#97952) 2026-06-29 20:41:28 -07:00
codex-native-plugins.md fix(codex): rename destructive approval mode to ask (#98501) 2026-07-01 15:14:55 -07:00
community.md
compatibility.md docs(plugins): record whatsapp admission compatibility 2026-06-15 20:06:16 +01:00
copilot.md feat(copilot): add BYOK provider parity 2026-06-24 18:29:56 +08:00
dependency-resolution.md
google-meet.md
hooks.md feat(plugin-sdk): add extensible channel identity hook context (#91903) 2026-06-23 11:56:49 +08:00
install-overrides.md
llama-cpp.md fix(memory): move local llama.cpp runtime to provider plugin 2026-06-09 14:30:35 +08:00
manage-plugins.md fix(cli): sync official plugins during update all (#96831) 2026-06-25 20:13:37 +02:00
manifest.md feat: add bundled plugin icon manifest URLs (#95845) 2026-06-22 22:14:18 -07:00
memory-lancedb.md
memory-wiki.md feat(memory-wiki): import OKF bundles 2026-06-13 19:27:52 +08:00
message-presentation.md fix(feishu): preserve button command values in fallback text and add Feishu comment guidance with callback privacy (#94385) 2026-07-02 12:42:31 -07:00
oc-path.md
plugin-inventory.md feat(plugins): externalize additional official plugins (#95683) 2026-06-22 16:12:51 +08:00
plugin-permission-requests.md
reference.md feat(raft): add wake bridge channel 2026-06-22 14:36:12 +08:00
sdk-agent-harness.md fix(copilot): tighten harness sdk boundaries 2026-06-23 15:48:27 +08:00
sdk-channel-inbound.md feat(plugin-sdk): add extensible channel identity hook context (#91903) 2026-06-23 11:56:49 +08:00
sdk-channel-ingress.md
sdk-channel-message.md
sdk-channel-outbound.md refactor(channel): share draft chunking resolver 2026-06-10 13:35:19 +05:30
sdk-channel-plugins.md fix(outbound): reject reserved Telegram targets 2026-06-25 08:37:00 -07:00
sdk-channel-turn.md
sdk-entrypoints.md
sdk-migration.md fix: advertise route-aware LAN Control UI links (#98482) 2026-07-01 04:02:12 -05:00
sdk-overview.md fix(plugin-sdk): honor suppressReply across native commands 2026-07-01 09:09:45 -07:00
sdk-provider-plugins.md refactor(providers): share reasoning payload normalization 2026-06-22 19:08:00 +08:00
sdk-runtime.md fix(gateway): require admin scope for browser proxy invoke (#85916) 2026-06-29 16:23:02 -07:00
sdk-setup.md fix(plugins): repair missing required platform packages 2026-06-16 14:00:11 +08:00
sdk-subpaths.md refactor: share codex login flow helpers 2026-07-01 11:16:49 -07:00
sdk-testing.md fix: seed Slack thread context after reset (#97100) 2026-06-28 02:36:53 -04:00
tool-plugins.md
voice-call.md fix(voice-call): emit canonical session keys (#89884) 2026-06-27 01:29:58 +01:00
webhooks.md
workboard.md feat(ui): add workboard keyboard movement controls 2026-06-02 16:08:29 -05:00
zalouser.md