Force openclaw-lark bot replies into message threads in Feishu group chats, preventing main chat noise. Patches the plugin's dispatch layer and optionally the feishu-live-card watcher. Use when: (1) Bot replies appear in the main group chat stream instead of threads (2) After updating openclaw-lark plugin (patches get overwritten by npm updates) (3) User mentions "thread reply", "群聊 thread", "回复到话题", "thread 回复" (4) Checking if the thread reply patch is still applied (5) Setting up a new OpenClaw instance with Feishu group chats
Patch openclaw-lark to reply in threads for all group chat messages.
# 1. Patch plugin
bash scripts/patch-lark-thread.sh
# 2. Patch live-card (if installed)
python3 scripts/patch-live-card.py
# 3. Restart gateway
openclaw gateway restart
bash scripts/patch-lark-thread.sh --check-only
python3 scripts/patch-live-card.py --check-only
Add to HEARTBEAT.md to auto-detect and re-apply after plugin updates:
### openclaw-lark thread patch
Run: `bash <skill-dir>/scripts/patch-lark-thread.sh --check-only`
If exit code 1, re-apply: `bash <skill-dir>/scripts/patch-lark-thread.sh` then restart gateway.
### feishu-live-card watcher
Check running: `ps aux | grep watcher.py | grep -v grep`
If not running: `cd ~/.openclaw/skills/feishu-live-card && python3 watcher.py start &`
The plugin hardcodes replyInThread: dc.isThread which is only true when the incoming message is already in a thread. The patch changes this to dc.isGroup || dc.isThread so all group replies use threads.
For detailed explanation, see references/how-it-works.md.
The openclaw-lark plugin is npm-installed. Updates overwrite patched files. Re-run:
bash scripts/patch-lark-thread.sh
openclaw gateway restart