关联父 RFC
Summary
实现 Feishu Adapter(云端)最小闭环:飞书事件 -> Gateway 调用 -> 结果回飞书,支持消息触发、进度回传、审批回调。
用户价值
- 用户可直接在飞书中发起 NeoCode 任务,不必先打开本地 TUI。
- 任务状态可在飞书可视化回显,降低“是否在执行/是否卡死”的不确定性。
- 后续本机 Runner 接入前,先形成稳定控制面与协议边界。
用户故事
- 作为开发者,我希望在手机飞书输入“检查某仓库 README 并总结”,系统能执行并把结果回到当前会话。
- 作为管理员,我希望审批事件可回调到系统并控制是否继续执行高风险操作。
Goals
Non-Goals
- 不实现本机 Runner 连接管理(见子 Issue B)。
- 不实现完整富卡片交互系统。
- 不实现第三方 IM 通用抽象层。
设计方案
1) 事件入口
- 路由:
POST /integrations/feishu/events
- 处理:challenge 应答、签名校验、事件反序列化、去重(event_id / message_id)
2) 指令映射
- 从飞书消息提取用户输入、chat_id、sender_id
- 生成 gateway 请求:
gateway.run(含 session 映射 key)
- 根据业务可查询
runtime.snapshot.get / session.todos.list
3) 回传与可观测
- 将 gateway 关键事件映射为飞书消息:
- started / progress / permission_required / completed / failed
- 事件日志需含:trace_id、session_id、chat_id、run_id
4) 审批闭环
- 飞书卡片回调 -> Adapter ->
gateway.resolvePermission
- 允许与拒绝路径都要可追踪与可回显。
Scope
涉及模块(建议):
internal/integrations/feishu(新增)
internal/gateway(复用现有 action,不泄漏飞书细节)
- 文档:飞书 app 配置、事件订阅、鉴权说明
Acceptance Criteria
Test Plan
- 单元测试:
- challenge / 签名校验
- 去重逻辑
- 飞书消息 -> gateway.run 映射
- 审批回调 -> gateway.resolvePermission 映射
- 集成测试:
- 事件触发 -> gateway -> 回传消息闭环
- 重放同一 event 不重复执行
风险与回滚
风险:飞书限流、回调重试、消息顺序错乱。
缓解:幂等键 + 重试退避 + 事件序列日志。
回滚:关闭 Adapter 路由,不影响 Gateway/TUI 主链。
关联父 RFC
Summary
实现 Feishu Adapter(云端)最小闭环:飞书事件 -> Gateway 调用 -> 结果回飞书,支持消息触发、进度回传、审批回调。
用户价值
用户故事
Goals
gateway.run的协议映射。gateway.resolvePermission。Non-Goals
设计方案
1) 事件入口
POST /integrations/feishu/events2) 指令映射
gateway.run(含 session 映射 key)runtime.snapshot.get/session.todos.list3) 回传与可观测
4) 审批闭环
gateway.resolvePermissionScope
涉及模块(建议):
internal/integrations/feishu(新增)internal/gateway(复用现有 action,不泄漏飞书细节)Acceptance Criteria
gateway.run。gateway.resolvePermission。Test Plan
风险与回滚
风险:飞书限流、回调重试、消息顺序错乱。
缓解:幂等键 + 重试退避 + 事件序列日志。
回滚:关闭 Adapter 路由,不影响 Gateway/TUI 主链。