mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-17 13:13:35 +08:00
- Resolve bot open_id via /open-apis/bot/v3/info — the SDK's
contact.user.get({user_id: 'me'}) path is invalid on Feishu and
returned 99992351 on every startup.
- Stream replies via interactive cards instead of post messages:
im.message.patch only accepts msg_type=interactive, so the old
path-rich-text placeholder caused "This message is NOT a card"
(230001) on every flush. Added buildStreamingCard helper.
- Add project picker card: one column_set row per project with
[info (name + branch + path) | select button], Schema 2.0,
mobile-friendly path display (~ substitution + middle-truncation),
header subtitle with project count. pick_project actions route
through the existing handleCardAction.
Card patterns verified against openclaw-lark's Schema 2.0 usage in
src/tools/oauth-cards.ts and src/card/builder.ts. 34 unit tests
cover the new card structure and action routing.
Claude Code IM Adapters
当前目录只放 IM Adapter 运行时代码。
用户文档已经迁移到 docs/,并且以 Desktop Webapp 配置流程为准:
docs/im/index.mddocs/im/telegram.mddocs/im/feishu.md
当前方案摘要
当前真实链路是:
Desktop Webapp Settings
-> /api/adapters
-> ~/.claude/adapters.json
-> adapters/<platform>/index.ts
-> /api/sessions + /ws/:sessionId
-> Claude Code session
注意两点:
- IM 配置和配对都在 Desktop Webapp 的
Settings -> IM 接入 - Webapp 不会自动启动 Adapter 进程,仍需手动运行
bun run telegram或bun run feishu
快速启动
cd adapters
bun install
bun run telegram
# 或
bun run feishu
开发
运行测试
cd adapters
bun test
bun test common/
bun test telegram/
bun test feishu/
目录结构
adapters/
├── common/
├── telegram/
├── feishu/
├── package.json
├── tsconfig.json
└── README.md