Commit Graph
10 Commits
Author SHA1 Message Date
mofengandxinlingzhao 0628d55da2 feat(wecom): 新增企业微信 WebSocket 长连接模式 (#93)
* feat(wecom): add WebSocket long-connection mode for WeChat Work

Add WeChat Work AI Bot WebSocket support, enabling connection without
public URL, message encryption, or IP allowlist. Key implementation details:

- Use userID as chatid for single-chat scenarios (matching official SDK behavior)
- Add 500ms delay between multi-chunk sends to prevent out-of-order delivery
- Support text and pre-transcribed voice messages
- Exponential backoff reconnection with heartbeat-based dead connection detection

Made-with: Cursor

* docs(readme): add WebSocket mode for WeChat Work; test(wecom): add unit tests for WebSocket implementation

- Update README support matrix, setup guide, config examples and project
  structure to include the new WebSocket long-connection mode alongside
  existing Webhook
- Add 22 unit tests covering splitByBytes, handleMsgCallback chatID
  fallback, writeAndWaitAck, handleFrame ACK dispatch, generateReqID
  and newWebSocket

Made-with: Cursor

---------

Co-authored-by: xinlingzhao <xinlingzhao@tencent.com>
2026-03-13 07:46:59 +08:00
q107580018andmac 949cf1a8f1 feat: add usage command for codex oauth (#80)
Co-authored-by: mac <mac@Mac-mini.local>
2026-03-12 19:39:50 +08:00
q107580018andmac 6bdecaad49 feat: support explicit batch session deletion (#74)
* feat: support batch session deletion

* feat(feishu): add card-based delete flow

* fix(feishu): report missing selected sessions

---------

Co-authored-by: mac <mac@Mac-mini.local>
2026-03-12 06:01:02 +08:00
woqiqishi 13a750c1b5 feat(cards): interactive card UI for slash commands (Feishu) (#52)
* feat(cards): interactive card UI for slash commands on Feishu

- Add platform-agnostic Card model (core/card.go) with builder API
- Add CardSender/CardNavigable interfaces (core/interfaces.go)
- Implement Feishu card renderer using column_set for mobile layout
- Redesign all slash command responses to use interactive cards
- Add handleCardNav router and executeCardAction for in-place updates
- Convert /new /quiet /switch /stop to act: and nav: actions
- /help card uses tab buttons grouped by Session/Agent/Tools/System
- renderUpgradeCard: sync update check with 8s timeout
- Fix: return error card instead of nil in handleCardNav /list /switch

Made-with: Cursor

* fix(cards): address PR #52 review feedback

- Add enable_feishu_card config option (default true) so operators can
  fall back to plain-text replies when card permissions are unavailable;
  wraps Platform in interactivePlatform only when cards are enabled
- Fix goroutine leak in renderUpgradeCard: use buffered channel (cap 1)
  so the background goroutine can always complete even after a timeout
- Fix /stop concurrent logic in executeCardAction: consolidate state
  mutation under a single interactiveMu critical section
- Fix code indentation in platform/feishu/card.go (action map and
  CardSelect/CardNote case blocks)
- Add unit tests for Card.RenderText and Card.HasButtons (core/card_test.go)
- Add Feishu platform tests for ReplyCard/SendCard and card renderer
  (platform/feishu/platform_test.go)
- Update docs/feishu.md and README with enable_feishu_card option

Made-with: Cursor
2026-03-11 07:52:36 +08:00
chenhg5andClaude 53a0789d20 docs: add demo screenshots and star history to README
Add screenshot examples demonstrating multi-agent collaboration in Discord
and include star history chart visualization.

generated by llmgit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-10 22:45:25 +08:00
chenhg5andClaude 358a9c851d docs: update screenshots and descriptions for messaging platforms
Updated README files to showcase Lark, Telegram, and Wechat screenshots consistently across languages. Replaced Discord screenshot with Telegram and improved image layout descriptions.

generated by llmgit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 23:10:01 +08:00
xiaoheicat 53043e84fd fix(qqbot): address code review feedback and add image/doc support
Code review fixes:
1. Fix msgSeqMap memory leak: replace unbounded sync.Map with TTL-based
   map that evicts entries older than 5 minutes
2. Fix @mention not stripped: add stripAtMention() to parse and remove
   the <@!botid> prefix from group message content
3. Filter empty messages: skip handler call when content is empty after
   stripping (e.g. bare @bot with no text)
4. Fix reconnect race condition: add atomic.Bool guard to prevent
   concurrent reconnectLoop goroutines
5. Add shard field to Identify payload per QQ official docs
6. Cap reconnect attempts at 30 to avoid infinite retry on config errors

New features:
7. Support receiving image attachments from group and C2C messages,
   downloaded into core.ImageAttachment for agent consumption
8. Add docs/qqbot.md setup guide (bilingual EN/ZH)
9. Update README.md and README.zh-CN.md with QQ Bot platform entries
   in support matrix, setup guide table, config examples, and project
   structure
2026-03-08 13:09:48 +08:00
chenhg5andClaude c88d46a973 feat(qq): add QQ platform support via OneBot v11/NapCat
generated by llmgit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-02 11:50:53 +08:00
chenhg5andClaude ce8ee1a0e2 docs: add screenshots section to README files
Added screenshot section showing Feishu, Discord and WeChat integrations to both English and Chinese README files. Included corresponding image files.

generated by llmgit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-01 02:55:12 +08:00
chenhg5andClaude ad8f3075fc docs: add detailed installation guide and update READMEs
generated by llmgit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-01 00:33:01 +08:00