mirror of https://github.com/openclaw/openclaw.git
* fix(feishu): fetch thread context so AI can see bot replies in topic threads When a user replies in a Feishu topic thread, the AI previously could only see the quoted parent message but not the bot's own prior replies in the thread. This made multi-turn conversations in threads feel broken. - Add `threadId` (omt_xxx) to `FeishuMessageInfo` and `getMessageFeishu` - Add `listFeishuThreadMessages()` using `container_id_type=thread` API to fetch all messages in a thread including bot replies - In `handleFeishuMessage`, fetch ThreadStarterBody and ThreadHistoryBody for topic session modes and pass them to the AI context - Reuse quoted message result when rootId === parentId to avoid redundant API calls; exclude root message from thread history to prevent duplication - Fall back to inbound ctx.threadId when rootId is absent or API fails - Fetch newest messages first (ByCreateTimeDesc + reverse) so long threads keep the most recent turns instead of the oldest Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(feishu): skip redundant thread context injection on subsequent turns Only inject ThreadHistoryBody on the first turn of a thread session. On subsequent turns the session already contains prior context, so re-injecting thread history (and starter) would waste tokens. The heuristic checks whether the current user has already sent a non-root message in the thread — if so, the session has prior turns and thread context injection is skipped entirely. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(feishu): handle thread_id-only events in prior-turn detection When ctx.rootId is undefined (thread_id-only events), the starter message exclusion check `msg.messageId !== ctx.rootId` was always true, causing the first follow-up to be misclassified as a prior turn. Fall back to the first message in the chronologically-sorted thread history as the starter. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(feishu): bootstrap topic thread context via session state * test(memory): pin remote embedding hostnames in offline suites * fix(feishu): use plugin-safe session runtime for thread bootstrap --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| acpx | ||
| bluebubbles | ||
| copilot-proxy | ||
| device-pair | ||
| diagnostics-otel | ||
| diffs | ||
| discord | ||
| feishu | ||
| google-gemini-cli-auth | ||
| googlechat | ||
| imessage | ||
| irc | ||
| line | ||
| llm-task | ||
| lobster | ||
| matrix | ||
| mattermost | ||
| memory-core | ||
| memory-lancedb | ||
| minimax-portal-auth | ||
| msteams | ||
| nextcloud-talk | ||
| nostr | ||
| ollama | ||
| open-prose | ||
| phone-control | ||
| qwen-portal-auth | ||
| sglang | ||
| shared | ||
| signal | ||
| slack | ||
| synology-chat | ||
| talk-voice | ||
| telegram | ||
| test-utils | ||
| thread-ownership | ||
| tlon | ||
| twitch | ||
| vllm | ||
| voice-call | ||
| zalo | ||
| zalouser | ||
| .npmignore | ||