feat(cards): botmux send 卡片增加导出飞书文档和原始Markdown按钮#145
Conversation
- 新增 reply-content-cache 基于文件系统的跨进程缓存 - 新增 doc-import 调用 lark-cli drive +import 导入飞书 Docx - 卡片底部加两列按钮:导出飞书文档 + 原始 Markdown - 异步导出避免飞书回调超时 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1bc8101 to
931d35a
Compare
- 错误提示中安装命令改为 npx @larksuite/cli@latest install - 新增 BOTMUX_CARD_EXPORT_ENABLED 开关,默认关闭 - 未设置开关时卡片不显示导出/原始MD按钮 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
好想法,不过记得在dashboard中加个开关~ per-bot的或者全局的都行 |
|
感谢这个 PR!🙏 功能很实用——把 AI 回复一键导出成飞书文档 / 取原始 Markdown,确实是不少人想要的。设计上几个点也很用心:用文件系统缓存桥接 short-lived 的 我本地拉下来 review(lark-cli 1.0.44 实测)时发现一个会让导出功能跑不通的点,想跟你同步下,也可能是我哪里理解有误,欢迎指正: 1.(阻断)
|
功能
botmux send发出的消息卡片底部增加两个按钮:设计要点
跨进程缓存:
botmux send是短命 CLI 进程,卡片回调由长命 daemon 处理,内存 Map 互相不可见。用os.tmpdir()文件系统缓存桥接两个进程,TTL 1 小时,上限 2000 文件。异步导出:飞书卡片回调有超时限制(~3s),
export_to_doc的lark-cli drive +import需要 3-6s。处理方式:立即返回 toast,Promise.resolve().then(...)后台执行导入,完成后sessionReply回复结果。安全:卡片按钮回调加入了
isSensitive白名单,校验root_id归属。改动文件
src/im/lark/reply-content-cache.tssrc/services/doc-import.tslark-cli drive +import导入飞书 Docxsrc/cli.tscmdSend卡片底部加两列按钮src/im/lark/card-handler.tsexport_to_doc/send_raw_md回调src/i18n/zh.ts,src/i18n/en.tscard.action.content_expired文案🤖 Generated with Claude Code