Files
goclaw/.gitignore
T
53704b1c69 fix(facebook): preserve fb_mode in outbound routing + admin reply detection (#860)
* fix(facebook): preserve fb_mode metadata in outbound routing + admin reply detection

Two issues fixed:

1. Messenger auto-reply never delivered because fb_mode metadata was
   stripped during outbound message construction. The routing whitelist
   in gateway_consumer_normal.go and channels/events.go only copied
   thread_id/local_key/group_id — facebook-specific keys (fb_mode,
   sender_id, page_id, reply_to_comment_id) were dropped, causing
   facebook.Send() to fall into the comment path and fail with
   "reply_to_comment_id missing".

2. Added admin reply detection: before sending a bot reply, check via
   Graph API if the last page message in the conversation was sent by
   an admin (human) rather than the bot itself. Skips bot reply when
   admin already responded, preventing duplicate messages.

   Uses timestamp comparison with bot's own send history to distinguish
   bot-sent vs admin-sent page messages (both have from.id = page_id).

* chore: exclude compiled binary from git

* fix(facebook): ignore bot echoes in messenger cooldown

* fix(facebook): add memory cleanup for admin reply maps and reduce echo window

- Add adminReplied and botSentAt eviction to runDedupCleaner to prevent
  unbounded memory growth on high-traffic pages
- Reduce botEchoWindow from 60s to 15s to avoid misclassifying real admin
  replies as bot echoes
- Restore doc comments on routingMetaKeys and copyRoutingMeta
- Add cross-reference comment between consumer and events routing key lists
- Simplify admin-reply skip log (remove redundant map re-read)

---------

Co-authored-by: khanhtran <>
Co-authored-by: Plateau Nguyen <nguyennlt.ncc@gmail.com>
Co-authored-by: viettranx <viettranx@gmail.com>
2026-04-13 21:13:28 +07:00

92 lines
1.2 KiB
Plaintext

# Test artifacts
tests/integration/testdata/
# Binary
openclaw-go
pkg-helper
# IDE
.idea/
.vscode/
# OS
.DS_Store
._*
# Environment
.env*
!.env.example
app
browser-poc
openclaw-go
goclaw
/config.json
prompt.md
*.bk.*
# UI Web (React SPA)
ui/web/node_modules/
ui/web/dist/
ui/web/.vite/
*.tsbuildinfo
# UI Desktop (Wails + React)
ui/desktop/frontend/node_modules/
ui/desktop/frontend/dist/*.js
ui/desktop/frontend/dist/*.css
ui/desktop/frontend/dist/assets/
ui/desktop/frontend/.vite/
ui/desktop/frontend/wailsjs/
ui/desktop/frontend/package.json.md5
ui/desktop/build/bin/
ui/desktop/desktop
goclaw-lite
goclaw-lite-*.dmg
goclaw-lite-*.tar.gz
goclaw-lite-*.zip
/desktop
.mcp.json
tmp
.claude/
deploy-*.sh
docs/technical-diaries
docs/zuey
plans/
release-manifest.json
k8s-*/*
# Test credentials (never commit)
tests/**/creds.json
ui/simple-saas
*.tar
# SQLite database files
goclaw.db
goclaw.db-wal
goclaw.db-shm
# Update backup files
*.app.bak
*.exe.bak
# AI tool config directories (user-specific)
.gemini/
.opencode/
# Auto-generated by Makefile (git describe)
/VERSION
ui/desktop/frontend/dist/index.html
# Local compose modules
compose.d/*
!compose.d/.gitkeep
!compose.d/0*
# Mise-en-place
/.miserc.toml
/mise.*.toml
/mise
/.mise
goclaw-patched-linux-amd64