openclaw/extensions
Devin Robison 90979d7c3e
fix(feishu): resolve card-action chat type before dispatch (#68201)
* fix(feishu): resolve card-action chat type before dispatch

* changelog: resolve card-action chat type before dispatch (#68201)

* address review: prefer chat_mode over chat_type, add error-path tests

- Swap resolution order to check chat_mode (conversation type) before
  chat_type (privacy classification), since Feishu's chat_type can
  return "private" for private group chats which would be wrongly
  classified as p2p.
- Treat "topic" as group semantics in the normalizer.
- Add comment explaining the field semantics and why "private" maps
  to "p2p" (safe-failure direction).
- Add two error-path tests: API returns non-zero code, and API throws.

* map chat_type=public to group in normalizer

Feishu's chat_type can return "public" for public group chats.
Without this mapping the fallback resolver would miss it and default
to p2p, routing a group card action through DM handling.

* address Aisle: cache chat-type lookups and scrub log output

- Add a 30-minute TTL cache for chatId -> chatType so repeated card
  actions on the same chat skip the Feishu API call.
- Strip chatId, event.token, and raw error strings from log messages;
  use err.message instead of String(err) to avoid leaking stack traces
  or HTTP internals from the Feishu SDK.

* prune expired chat-type cache entries

Add pruneChatTypeCache() called on each lookup so expired entries are
evicted and the cache stays bounded in long-running processes.

* address Aisle: scope cache by account, cap size, sanitize logs

- Key cache by accountId:chatId to prevent cross-account contamination.
- Cap cache at 5000 entries and evict oldest when exceeded.
- Sanitize response.msg and err.message with CR/LF stripping and
  length cap before logging to prevent log injection.
2026-04-17 12:29:04 -06:00
..
acpx chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
active-memory perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
alibaba chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
amazon-bedrock refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
amazon-bedrock-mantle chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
anthropic fix: keep Opus 4.7 effort separate from adaptive thinking 2026-04-17 01:26:11 +01:00
anthropic-vertex chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
arcee chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
bluebubbles Tests: narrow session binding contract setup 2026-04-17 03:36:13 -04:00
brave chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
browser test: merge browser contract server suites 2026-04-17 07:15:27 +01:00
byteplus chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
chutes chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
cloudflare-ai-gateway chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
codex fix(codex): prevent gateway crash when app-server subprocess terminates abruptly (#67947) 2026-04-17 23:28:37 +08:00
comfy test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
copilot-proxy chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
deepgram chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
deepseek chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
device-pair test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
diagnostics-otel chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
diffs chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
discord test(discord): isolate debug proxy env 2026-04-17 18:35:06 +01:00
duckduckgo chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
elevenlabs chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
exa Secrets: avoid broad web search discovery for single plugin config 2026-04-17 13:38:24 -04:00
fal chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
feishu fix(feishu): resolve card-action chat type before dispatch (#68201) 2026-04-17 12:29:04 -06:00
firecrawl chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
fireworks chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
github-copilot refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
google Tests: avoid memory-search cold plugin loads 2026-04-17 11:37:46 -04:00
googlechat fix(extensions): guard channel runtime fetches 2026-04-17 17:28:21 +01:00
groq chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
huggingface chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
image-generation-core chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
imessage Auto-reply: fast-path sandbox media root resolution 2026-04-17 14:05:49 -04:00
irc chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
kilocode chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
kimi-coding chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
line chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
litellm chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
llm-task chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
lmstudio perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
lobster chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
matrix fix(matrix): keep guarded transport mockable 2026-04-17 17:44:11 +01:00
mattermost Tests: fast-path gateway auth bypass discovery 2026-04-17 02:00:26 -04:00
media-understanding-core chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
memory-core fix(memory-core): preserve vector dims on readonly recovery 2026-04-17 11:22:56 +05:30
memory-lancedb chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
memory-wiki test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
microsoft chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
microsoft-foundry chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
minimax chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
mistral refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
moonshot chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
msteams chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
nextcloud-talk perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
nostr perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
nvidia chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
ollama refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
open-prose chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
openai test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
opencode chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
opencode-go chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
openrouter chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
openshell chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
perplexity chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
phone-control test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
qa-channel chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
qa-lab QA: track scenario coverage intent 2026-04-17 14:05:49 -04:00
qa-matrix QA Matrix: exit cleanly on failure 2026-04-16 21:24:59 -04:00
qianfan chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
qqbot perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
qwen chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
runway chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
searxng chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
sglang chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
shared
signal chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
slack Tests: fast-path Slack message tool discovery 2026-04-17 02:00:26 -04:00
speech-core chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
stepfun chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
synology-chat perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
synthetic chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
talk-voice test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
tavily chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
telegram Tests: narrow session binding contract setup 2026-04-17 03:36:13 -04:00
thread-ownership test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
tlon perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
together chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
twitch Twitch: add bundled setup entry (#68008) 2026-04-17 13:49:08 -04:00
venice chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
vercel-ai-gateway chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
video-generation-core chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
vllm chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
voice-call fix(plugins): enforce synchronous registration 2026-04-17 10:14:00 +05:30
volcengine chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
voyage refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
vydra chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
webhooks fix(plugins): tighten register rollback 2026-04-17 10:14:00 +05:30
whatsapp perf: optimize bundled extension tests 2026-04-17 16:05:09 +01:00
xai chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
xiaomi chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
zai chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
zalo chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
zalouser chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
.npmignore
AGENTS.md Docs: add test performance guardrails 2026-04-17 02:23:49 -04:00
CLAUDE.md
music-generation-providers.live.test.ts
tsconfig.package-boundary.base.json
tsconfig.package-boundary.paths.json fix(ci): sync package boundary paths config 2026-04-09 23:59:00 +01:00
video-generation-providers.live.test.ts fix: bound live video generation smoke 2026-04-14 14:59:01 +01:00