秀秀(TailChat)3.0 功能整合三维度清单 · 最终合并版

合并人:Claude Code(Opus 4.7 1M)
合并时间:2026-05-26
项目目标(一句话):把"秀秀(基于 TailChat)"改造为甲方/乙方独立部署、真人/Bot 双信息流分区、由 OpenClaw 作为正式 Channel 接入的立大志品牌 IM 系统,于 2026-07-26 / 08-26 / 11-26 三里程碑分阶段交付。

三维度输入:
- 维度 A(需求侧)/tmp/tailchat-ima/merged_demand_dimensionA.md(159 条 / 9 大类 A-I)
- 维度 B(源码理论)/tmp/tailchat-ima/tailchat_src_capabilities.md(425 条能力)+ /tmp/tailchat-ima/_openapi_endpoints.txt(164 OpenAPI 端点)
- 维度 C(服务器实测)/tmp/tailchat-ima/server_current_state.md(38 用户 / 4 群 / 104 消息 / 42 openapps / 0 插件配置 / 3 容器未起)

字段图例:
- 需求来源:标 [守一18条 #X] / [守一决策 #X] / [ima #04 要求X] / [extract A/B/C/D/E] / [ima C 关键发现 #X] —— 多重来源全部列
- 源码支持?:✅ 原生 / 🟡 部分(需插件或扩展点)/ ❌ 不支持
- 服务器实际?:✅ 跑着 / ⚠️ 部署了但没启用 / ❌ 未部署 / 🚫 容器未起 / —— 不涉及容器
- 实现状态:✅ 已实现且工作 / 🟡 部分实现 / ❌ 待实现 / ⏸ 已冻结
- 优先级:P0 必须做 / P1 重要 / P2 一般 / P3 可选 / ⏸ 已冻结


0. 关键决策与警报

0.1 守一 6 项决策(2026-05-26 当日)

# 决策内容 影响
1 圆桌会议:保留冻结,作为科研资产 全 I-01 ~ I-06、B-07 → ⏸
2 v3 镜像欠债:暂不开发 v4 镜像(风险未消) I-07、G-31 → ⏸
3 乙方独立部署:真独立部署,乙方公司另外起服务器 历史"乙方=同机"全部作废;G-03、G-04 必须重设计
4 品牌素材(Logo/文案/域名/邮件托管/Apache-2.0 合规 9 项):最后再说 F-01 ~ F-13 后置
5 30 款源码调研:仍需要但延后 G-35 ~ G-44 → 排在 H-09 后
6 功能整合三维度清单:必须纳入,最高优 H-09 = 本清单本身

0.2 锁定项

0.3 安全警报(维度 C 实测,必须立即处理)

等级 问题 来源 动作
🚨🚨🚨 MiniMax + Anthropic API 密钥明文写在 docker-compose.yml 的 whisper-service environment,已暴露在对话历史 server_current_state.md §7 立即 rotate 两个 Key
🚨🚨🚨 Redis 密码 TC_Redis_2026 弱密码硬编码 同上 改强密码 + 移出 compose 文件
🚨🚨🚨 MinIO 密码 ASDasd123MinIO 弱密码硬编码 同上 改强密码
🚨🚨 Mongo 4 无密码(仅 internal 网络隔离) 同上 启用 auth
🚨🚨 root 密码已暴露 同上 改 SSH key 登录
🚨🚨 公网扫描:/wp-admin/install.php/xmlrpc.php/.env/test.php 频繁扫描,无 fail2ban/WAF 同上 装 fail2ban + Nginx 拦截
🚨 service-openapi 容器未起(端口 3003 实测 000) server_current_state.md §2 启容器 / 或在 service-core 启用 openapi
🚨 service-all-plugins 容器未起(全部 45 个官方插件不可用) 同上 启容器
🚨 tailchat-admin 容器未起(后台 UI 不可用) 同上 启容器
⚠️ 磁盘已用 70%(33G/49G),Swap 已用 1.4G/1.5G(接近耗尽) server_current_state.md §9 清理 / 加内存

0.4 与 ima 笔记"已实现"声明严重不符(维度 A 标 ✅ → 维度 C 实测 ❌)

ima 笔记声明 实测真相
[#04 要求 9] "员工 13/14/15 Bot 已并发上线连接 OpenClaw" 数据库无"员工"命名 Bot;42 个 openapp 主要是"南002 子 agent"重复两轮;openapi 容器未起
[#04 要求 19] "TailChat 作为 OpenClaw 正式 Channel" 未实现(守一已决定纳入 3.0)
[#08] "5 Bot 并发已落地" openapi 容器未起,Bot 通过 openapi 路径目前不通
圆桌会议历史"4 轮修复后 75% 可用" meetings 表 0 条记录,plugin_configs 0 条
品牌替换 [#05] "完整方案已设计" configs 表 0 条,clientConfig 全默认未生效

一、按 9 大类合并表格

A. IM 基础能力(33 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
A-01 文字频道/面板原生支持(「面板」) [守一18条 #5]、[ima A F-基础-01]、[ima B 2.1] ✅ TailChat 原生 GroupPanel type=TEXT ✅ 跑着(4 群) P0 维度B 5.2 server/packages/sdk/src/structs/group.ts:1-5
A-02 私信(DM)/「对话」 [守一18条 #5]、[ima A F-基础-02]、[ima B 2.1] chat.converse.createDMConverse,Converse.type='DM' ✅ 跑着(6 个 converse) P0
A-03 @提及(含私聊@、群聊@) [守一18条 #5]、[ima A F-基础-03]、[ima B 2.1] MessageMetaStruct.mentions[] + react-mentions ✅ 跑着 P0 格式 [at=userId]name[/at]
A-04 消息回复/引用 [守一18条 #5]、[ima A F-基础-04]、[ima B 2.1] MessageMetaStruct.reply{_id,author,content} ✅ 跑着 P0
A-05 消息右键菜单 [ima A F-基础-05] useChatMessageItemAction.tsx ✅ 跑着 P1 v1.11.1+
A-06 群组双层空间结构(群组→面板) [ima A F-基础-13]、[ima B 2.1] ✅ Group + GroupPanel 双层 ✅ 跑着(4 群 N 面板) P0
A-07 拖拽分组创建面板分组、自定义群组空间布局 [ima A F-基础-14] ✅ GroupPanel type=GROUP 作为 folder ✅ 跑着 P1
A-08 频道分类/分组(拖拽分组) [ima B 2.1]、[ima A F-基础-14] ✅ 同上 ✅ 跑着 P1
A-09 群发消息(多接收人/广播) [守一18条 #5] 🟡 仅服务端 gateway.notify type=broadcast,无前端 UI;@everyone/@角色未原生 ❌ 未启用 🟡 P1 维度B 4.0 socketio.mixin.ts:462-507;需补 UI
A-10 转发消息 [守一18条 #5] ❌ 未在 actions / UI 找到 forward ❌ 不存在 P1 维度B §8 明列"不支持";30 款源码调研重点对比
A-11 消息搜索 [ima A F-基础-08]、[ima B 2.1] chat.message.searchMessage ✅ 跑着 P1 弱于 Discord
A-12 Markdown 渲染(GFM、表格、代码块) [ima A F-基础-06] bytemd + @bytemd/plugin-gfm + react-markdown + remark-gfm ✅ 跑着 P0
A-13 好友系统(昵称+随机数字串) [ima A F-基础-09, F-基础-10] User.generateDiscriminator 4 位数字 ✅ 跑着(38 用户) P0 昵称#0000
A-14 邀请系统(次数限制 + 美化邀请页) [ima A F-基础-11] group.invite.* 6 actions + plugin com.msgbyte.prettyinvite ⚠️ invite 跑着,prettyinvite 插件未起(all-plugins 容器未起) 🟡 P1 启 all-plugins 即获
A-15 群公告(全局公告系统) [ima A F-基础-12] GlobalConfig.announcement{id,text,link} ⚠️ 部署了未启用(configs 表 0 条) 🟡 P1 启动 admin 即可设
A-16 暗色/亮色主题切换 [ima A F-基础-15] ColorSchemeContext + 自动跟随 prefers-color-scheme ✅ 跑着 P1
A-17 PWA 支持(添加到主屏幕) [ima A F-基础-16] ✅ manifest.json ✅ 跑着 P2
A-18 i18n 国际化(i18next) [ima A F-基础-17] ✅ 仅 zh-CN + en-US;后端 server/locales/ ✅ 跑着 P1 第三语言需补
A-19 桌面通知 [ima B 1.3] ✅ plugin com.msgbyte.notify 🚫 容器未起(plugin 不可用) 🟡 P1 启 all-plugins
A-20 移动端推送 [ima B 1.3] ✅ plugin com.msgbyte.getui 🚫 容器未起 🟡 P2 启 all-plugins
A-21 Web / Electron / RN 多端 [ima B 2.1]、[ima C #04 要求16] ✅ React Web + Electron + RN 0.71.2 ✅ Web 跑着;Android APK 24MB / Windows 88MB / Linux AppImage 83MB 已构建 P0 装包在 /home/halo/tailchat-客户端安装包/
A-22 在线打开文件 / 文件在线预览 [守一18条 #5] ❌ 源码无内置预览 ❌ 不存在 P1 守一未澄清"在线打开"语义;30 款源码对比
A-23 通用文件上传 [守一18条 #5]、[ima A F-基础-07] file.save/saveFileWithUrl;MinIO;FILE_LIMIT env ✅ 跑着(minio 容器 OK) P0 默认 1MB,需调 50MB
A-24 Discord 缺失:消息编辑 [ima B 3.2]、[ima C #13] ❌ 无 edit action ❌ 不存在 P1 替代:删除+重发;3.0 应补
A-25 Discord 缺失:线程(Threads) [ima B 3.2] ❌ 不存在 P2 替代:独立 Panel
A-26 Discord 缺失:投票(Polls) [ima B 3.2]、[ima C #13] ❌ 不存在 P2 替代:reaction 投票
A-27 Discord 缺失:交互组件(Buttons) [ima B 3.2] ❌ 不存在 P3 纯文本交互替代
A-28 Discord 缺失:消息置顶 [ima B 3.3] ❌ 不存在 P2 暂用话题帖子
A-29 Discord 缺失:自定义表情包上传 [ima B 3.1, 3.3] ❌ 不存在 P3 Discord 80% 覆盖率外项
A-30 Discord 缺失:舞台频道、游戏活动检测、Nitro/Boost [ima B 3.1] ❌ 不存在 P3 自托管无需
A-31 Discord 缺失:Bot 在线状态广播 / 自动状态文本 [ima C #13]、[ima A TODO-20] ❌ 无 Presence 机制 ❌ 不存在 P1 真人/Bot 双信息流前置依赖(识别 Bot 在线)
A-32 Discord 缺失:文件安全分级 [ima C #13] ❌ 不存在 P2
A-33 表情反应(Reaction) [ima B 2.1, 3.3]、[ima C #13] 🟡 chat.message.addReaction/removeReaction + emoji-mart;无自定义 Emoji 上传 ✅ 跑着 🟡 P1 仅支持系统 emoji

B. Bot / Agent / OpenAPI(21 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
B-01 Bot 原生支持(API 创建) [守一18条 #5]、[ima A F-01]、[ima D 1.1] openapi.app.create + setAppCapability + bot/login 🚫 openapi 容器未起,端口 3003 实测 000;但 mongo 里有 42 条 openapps 记录 🟡 P0 启 openapi 容器即获
B-02 API 暴露/集成(OpenAPI 平台) [守一18条 #5] ✅ 9 个 openapi.app.* actions + bot/login + addBotUser + sendMessage 🚫 容器未起 🟡 P0 同上
B-03 Bot 与 OpenClaw 连接 [ima A F-02]、[ima D 2.1] ✅ Socket.IO + msgpack parser ❌ 不工作(openapi 容器没起) P0 启容器 + index.ts 修复
B-04 Bot 私聊回复(群内 @ 触发) [ima A F-03]、[ima D 2.6] ✅ bot.service 监听 chat.inbox.append → callback URL ❌ 不工作(同上) P0
B-05 "开会触发"机器人自动创建新频道 [ima A F-04] createGroupPanel(需 managePanel 权限) ❌ 不工作 圆桌会议依赖,[守一决策 #1] 冻结
B-06 拉人进群(机器人拉机器人 + 拉普通用户) [ima A F-05] openapi.integration.addBotUser + group.addMember ❌ 不工作 P1
B-07 令牌沟通(令牌回转圆桌通信) [ima A F-06] ✅ 圆桌 plugin com.msgbyte.topic 可用 🚫 plugin_configs 0 条 [守一决策 #1] 冻结
B-08 Bot 消息回复(sendMessage 文本/Markdown/引用) [ima A F-07] chat.message.sendMessage ✅ Action 存在,但 Bot 不工作 P0
B-09 批量创建机器人(员工 1-20 规模) [ima D 1.2/1.3/1.4]、[ima C #04 要求 9] ✅ openapi.app.create 可批 ❌ 42 openapps 中无"员工"命名,主要是"南002 子 agent 01-20" 重复两轮 + 1 "完全" P0 与 ima 笔记声明严重不符
B-10 Bot 多账号并发(5+ 同时在线) [ima D 7]、[ima A F-部署-08] ✅ Redis Adapter 多节点 Socket.IO ❌ 当前 0 Bot 在线(openapi 容器未起) P0 内存 4.9G/7.8G+Swap 1.4G/1.5G 风险
B-11 Bot 鉴权(appId+appSecret,Token=MD5(appId+appSecret)) [ima A T-凭证-01~02]、[ima D 2.2] openapi.app.authToken ⚠️ App 表里有但不能 login 🟡 P0
B-12 Bot 加群授权 [ima A T-凭证-05]、[ima D 1.2 Step 4] openapi.integration.addBotUser不是 addGroupMember ❌ 不工作 P0 命名陷阱
B-13 个人账号创建 Bot 方案(A 方案,无需 Admin) [ima C #04 要求 18]、[ima D 1.5, 3.3] ✅ 可绕开 admin 创建 ❌ 不工作 P1
B-14 TailChat 作为 OpenClaw 正式 Channel [ima C #04 要求 19]、[ima B 5.4 #03方案]、[ima D 2.7]、[守一锁定] ✅ OpenClaw 提供 api.registerChannel() ❌ channel.ts 已写但 index.ts 仍直调 DeepSeek,未注册 channel 🟡 P0(守一锁定项) 必须激活 + 删除 DeepSeek 直调
B-15 Bot 响应策略四档(群 mention_only/all、私信 all/allowlist) [ima D 2.6]、[ima A F-部署-10] 🟡 需在 callbackUrl 处理器实现 ❌ 不工作 P1
B-16 Bot 主人权限管理(授权用户列表,未授权固定提示) [ima A F-部署-10] 🟡 业务逻辑层 ❌ 不工作 P1
B-17 Bot 个性化 SOUL(每 Bot 独立 SOUL.md + IDENTITY.md) [ima D 2.5, 2.7] — OpenClaw 侧 ~/.openclaw/agents/员工{N}/SOUL.md 存在 P1
B-18 员工 13-15 个性化人设(非通用模板) [ima A TODO-07]、[ima C #08 待办4] — OpenClaw 侧 ❌ 通用模板 P1 与 D-* 双信息流"Bot 秀"形态可能冲突,[冲突 7]
B-19 桥接服务不持有 LLM API Key [ima A F-部署-07]、[ima B 5.4 #17方案]、[ima A TODO-10] ✅ 通过 channel 派发 ❌ 当前直调 DeepSeek(B-14 未完成的副作用);且 docker-compose.yml 明文写 MiniMax+Anthropic Key 🚨 P0 安全警报;与 B-14 同步解
B-20 Bot 自动在线状态(30 秒轮询) [ima B 1.3] ❌ 无 Presence 框架 ❌ 不存在 P1 Discord 缺失差距
B-21 Webhook 通用发消息 API [ima C #13] 🟡 simplenotify 插件提供 webhook,非通用 🚫 plugin 不可用 P1 需开发通用 Webhook

C. 群组 / 频道 / 权限(10 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
C-01 角色权限系统(IAM RBAC) [ima B 2.1] PERMISSION.core 14 个权限点 + 7 层权限层级 ✅ 跑着 P0 维度B §6
C-02 群组双层结构(群组→面板) [ima A F-基础-13]、[ima B 2.1] ✅ Group + GroupPanel ✅ 跑着(4 群) P0
C-03 群主全权 / 管理员自定义 / 普通成员只读发言 [ima A T-权限-01~03] Group.owner + roles + fallbackPermissions ✅ 跑着 P0
C-04 Bot 默认无 managePanel,需 Admin JWT 或 Owner 身份 [ima A T-权限-05]、[ima B 4.2] appendGroupMemberRoles 给 bot 分配 Bot管理员角色 ❌ 当前 Bot 不工作 🟡 P1 [ima E #24]
C-05 注册首个用户自动获得管理员权限 [ima A T-权限-08] ✅ 跑着 P0
C-06 CC 一键脚本:批量创建群组/频道(channels.json 驱动) [ima A F-CC-02] — 脚本层 ❌ 当前手动 🟡 P1 框架已有
C-07 CC 一键脚本:IAM 配置角色权限矩阵(roles.json 驱动) [ima A F-CC-03] — 脚本层 ❌ 当前手动 🟡 P1 待主人提供 roles.json
C-08 群组/频道结构由主人提供或 CC 生成供主人确认 [ima A TODO-22, TODO-24] — 设计层 ❌ 设计决策未定 P0 守一决策项(5 个未答之一)
C-09 群组授权模型(Bot 对所有群成员开放) [ima D 3.5] ✅ 加入群即共享 ❌ Bot 不工作 🟡 P1 没有"Bot 授权"独立机制
C-10 TailChat 权限有 1 小时缓存,直接改 Mongo 无效 [ima E 三-#11、四-3] ✅ 必须走 appendGroupMemberRoles API P1 已记录陷阱

D. 真人 / Bot 分区 + 双信息流(4 条 / 全新产品形态)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
D-01 真人与 Bot 严格区分 [守一18条 #4] 🟡 packages/types/src/model/user.ts User.type 已有 normalUser / pluginBot / openapiBot 三态,但 UI 不区分 ❌ 38 用户全 normalUser,没有"Bot 用户"类型 —— Bot 的 openapps 与 users 不挂钩 P0 三维交叉重大发现:源码 type 已有但库里没用
D-02 真人区只发真人内容 [守一18条 #4] 🟡 可通过 regGroupPanel + 消息源校验实现 ❌ 当前所有 panel 同等 P0 数据模型需新增 messageSource 或 panelKind 字段
D-03 Bot 区只发 Bot 内容 [守一18条 #4] 🟡 同上 ❌ 同上 P0
D-04 双信息流"真人秀" + "Bot 秀" [守一18条 #4] 🟡 regGroupPanel type=PLUGIN + 23 个客户端扩展点可实现 ❌ 全新形态 P0 [冲突 3] 5 份历史报告未触及;产品形态待定

E. 多媒体(7 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
E-01 文件发送 [守一18条 #5]、[ima A F-基础-07]、[ima B 2.1] file.save + MinIO;FILE_LIMIT env ✅ minio 容器跑着 P0 默认 1MB→需 50MB;敏感文件仅 DM
E-02 图片发送 [守一18条 #5]、[ima A F-基础-07] ✅ 同 MinIO 通道 + 图片粘贴 handler + 压缩(compressorjs) + 头像裁剪(react-easy-crop) ✅ 跑着 P0
E-03 语音发送 [守一18条 #5] ❌ 全 repo 无 voice message UI;LiveKit 是实时语音频道,非"消息" ❌ 不存在 P1 30 款源码调研重点
E-04 视频/屏幕共享 [ima B 1.3, 2.1] ✅ plugin com.msgbyte.livekit(generateToken/roomMembers/inviteCall) 🚫 all-plugins 容器未起;LIVEKIT_URL/KEY/SECRET env 未配 P1 Day 3-4 补
E-05 语音频道(实时) [ima B 1.3, 2.1] ✅ 同上 LiveKit 🚫 同上 P1 端口 7880 + UDP 50000-60000
E-06 文件大小限制 50MB(FILE_LIMIT=52428800) [ima A 2.3]、[ima B 4.1] ✅ env 可调 ⚠️ 当前默认 1MB(未显式设) 🟡 P1 Nginx 需同步 client_max_body_size 50m
E-07 Whisper 集成(语音转文字) [守一18条 #5](语音语义) ❌ 全 repo 无 whisper/STT 代码 ⚠️ whisper-service 容器跑着(0 请求) 🟡 P1 维度C 关键发现:whisper 容器在跑但前后端均未对接;与 [守一18条 #5] "语音"语义对齐疑问(守一 5 个未答之一)

F. 品牌改造(13 条 / [守一决策 #4] 最后再说)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
F-01 UI 文本替换 Tailchat→立大志(18 文件 ~45 处) [ima C #05 模块A] 🟡 部分通过 config.serverName 运行时改;硬编码部分需改源码(client/shared/utils/consts.ts:25About.tsx:39LoginView.tsx:79 ❌ configs 表 0 条 P2(后置)
F-02 SEO/元数据/PWA 替换(3 文件 ~12 处) [ima C #05 模块B] ❌ 需改源码 P2(后置)
F-03 插件描述文本替换(8 文件 ~16 处) [ima C #05 模块C] ❌ manifest.json description P2(后置)
F-04 Logo / 图标替换(24 文件) [ima C #05 模块D] ❌ 需替换静态资源 P2(后置) 6 核心 + 4 桌面 + 10 Android + 4 官网
F-05 部署配置默认值替换(14 文件 ~50 处) [ima C #05 模块E] ❌ docker-compose/k8s/env P2(后置)
F-06 OIDC 内嵌 SVG(authorize.ejs) [ima C #05 难点1]、[ima C 关键发现 #6] ❌ 需提取 <path> P2(后置) 隐藏陷阱
F-07 邮件远程 Logo URL 新托管 [ima C #05 难点2、待做 #9] ❌ 当前写死 https://tailchat.msgbyte.com/img/logo@192.png P2(后置)
F-08 登录页 ServerName 回退默认值改 [ima C #05 难点3] serverName \|\| 'Tailchat''立大志' P2(后置)
F-09 i18n hash key 重新生成 [ima C #05 难点4、待做 #8] 🟡 pnpm translation(i18next-scanner) P2(后置)
F-10 tailchat-cli NPM 包决策(保留或删除) [ima C #05 难点5] — 上游公开包 P2(后置)
F-11 Apache-2.0 合规审查(保留版权归属) [ima C #05 必须人工 #9] P2(后置) 保留 com.msgbyte.* 命名空间 / package.json name / 移动端包名
F-12 品牌文案确认(中文名/英文名/Tagline/新域名/邮件托管 URL) [ima C #05 步骤1]、[ima C 必须人工 #6/7/8] P2(后置) 守一未答(守一 5 个未答之一)
F-13 Logo SVG 矢量源 + 多尺寸切图 + ICO + ICNS + Android 圆形 [ima C #05 必须人工 #1-5] P2(后置) 需设计师交付 ~20 文件

G. 部署架构(47 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
G-01 秀秀 3.0 独立部署目标 [守一18条 #2] 🟡 已部署 chat.lidazhiai.com 与 chat.lidazhiai.cloud 🟡 P0
G-02 甲方提供源码 + 服务器 + 公网 [守一18条 #2, #3] 🟡 当前甲方=立大志,CVM73439 腾讯云已运行 42 天 🟡 P0
G-03 乙方独立部署,自主决定接入 [守一18条 #2, #3]、[守一决策 #3] ✅ Webhook callback 模型可跨服务器 ❌ 当前 OpenClaw 与 TailChat 同机;乙方=同机假设作废 P0 [冲突 1] 历史 ima D 全篇失效
G-04 甲乙方跨服务器通信架构 [守一18条 #3]、[守一决策 #3] ✅ openapi.bot.callbackUrl 字段已存在([ima D 6.4]) ❌ 未实现 P0 必须 HTTPS / WSS、需鉴权令牌跨域
G-05 HTTPS(Let's Encrypt 通配符 *.lidazhiai.com [ima A F-部署-01] — Nginx 层 ✅ 部署中 P0
G-06 SSL 90 天自动续期(certbot systemd timer) [ima A F-部署-02] P0
G-07 Nginx HTTP→HTTPS 重定向(80→443 301) [ima A F-部署-03]、[ima B 4.4]、[ima A 9项遗漏 M-08] P0
G-08 Nginx X-Forwarded-Proto(OIDC issuer 依赖) [ima A F-部署-04]、[ima A 9项遗漏 M-09] ✅ 后端 gateway.service.ts 解析 P0
G-09 Nginx WebSocket Upgrade 头 [ima A F-部署-05]、[ima B 4.4] ✅ Socket.IO 必需 P0
G-10 Nginx 关闭 http2(与 WebSocket 不兼容) [ima A T-架构-21] P0
G-11 proxy_read_timeout 300s [ima B 4.4] P0 长 AI 回复不超时
G-12 端口规划(Nginx 80/443 对外;其他内网) [ima A 2.2]、[ima B 5.2] ✅ 80/443 监听;3000/3003/11000 内网 P0
G-13 数据全部存储在自有服务器(数据私有化) [ima A F-部署-11]、[ima B 1.1] ✅ Mongo + Redis + MinIO 本地 P0
G-14 OpenClaw 系统(agentId/workspace/SOUL.md)零改动 [ima A F-部署-12]、[ima B 5.5] — OpenClaw 侧 P0
G-15 服务器配置 4 核 8G + 40GB SSD(推荐) [ima A T-硬件-01]、[ima B 5.2] 🟡 当前 2 核 7.8G 内存 + 49G 磁盘(用 33G) 🟡 P1 编译峰值 OOM 风险,Swap 已接近耗尽
G-16 版本三锁定:Node 18.x / pnpm 8.15.8 / MongoDB 6.0 [ima A T-版本-01~03] ✅ mongo:4(与锁定的 6.0 不符,需注意) 🟡 P1 守一记忆是 v2.5.11-renderfix 镜像
G-17 Traefik v2.11(v2.1 与 Docker v29 不兼容) [ima A T-版本-06]、[ima C #08] ✅ traefik 跑着 P1
G-18 PORT 默认 11000,必须显式 PORT=3000 [ima A 2.3]、[ima A 9项遗漏 M-03]、[ima B 4.1] ✅ env ✅ service-core 3000 监听 P0 关键陷阱
G-19 API_URL 必须外网域名 [ima A 2.4]、[ima B 4.1] P0
G-20 MINIO_URL 不含 http:// / REDIS_URL 末尾斜杠 / SMTP_SENDER 格式 [ima A 2.4] P1
G-21 健康检查路径 /api/gateway/health [ima A T-架构-17]、[ima A 9项遗漏 M-04] gateway.health ✅ HTTP 200 P0
G-22 tailchat-runner 路径检查 [ima A T-架构-18]、[ima A 9项遗漏 M-07] P1
G-23 ecosystem.config.js 手动创建 [ima A T-架构-19]、[ima A 9项遗漏 M-02]、[ima B 7.2 补B] P1
G-24 首次启动前 pnpm run migrate:up [ima A T-架构-20]、[ima A 9项遗漏 M-01]、[ima B 7.2 补A] P1
G-25 pm2 启动 + pm2 startup + pm2 save [ima A 5.1 步骤12] P1
G-26 定时巡查脚本 tailchat-watchdog.sh(cron */5) [ima A 5.6] P1
G-27 SECRET 32 位 / MINIO_PASS / ADMIN_PASS / MongoDB 强密码 [ima A 2.3]、[ima B 7.6] ❌ MINIO/REDIS 都是弱密码硬编码 P0 安全警报 §0.3
G-28 DISABLE_GUEST_LOGIN/TELEMETRY/TRACING=true [ima A 5.3] ✅ env ⚠️ 未验证(service-core SERVICES env 列表里没看到) 🟡 P1
G-29 SERVICEDIR=services,plugins [ima A T-架构-01] ⚠️ 当前 service-core 只跑 core/*([server_current_state.md §3]) 🟡 P1 与 SERVICEDIR 设计冲突,因 all-plugins 单独容器
G-30 Linux fcitx5 IME 兼容(input.tsx 切原生 textarea + MentionDropdown) [ima C #04 要求 3, 10, 11]、[ima A B-07~B-09] 🟡 需改源码 🟡 已 docker cp 热修,未固化到镜像 🟡 P1 [ima A TODO-01]
G-31 构建 tailchat:v4 镜像固化所有前端修复 [ima A TODO-01]、[ima C #08 待办#1]、[ima D 5.3] ❌ 未做 [守一决策 #2] 暂不开发
G-32 部署架构:OpenResty/Nginx 443 → service-core 3000 / openapi 3003 / admin 3001 [ima A 5.7] ⚠️ 部分:core 3000 ✅,openapi 3003 ❌,admin 3001 ❌ 🟡 P0 启容器即获
G-33 4 个思源笔记并行部署(wiki + note1-3) [ima A 5.20]、[ima C #04 要求 1] P1
G-34 不能改动 DISABLE_MESSAGEPACK(前端硬依赖) [ima C #04 要求 11]、[ima C 关键发现 #8] ✅ socket.io-msgpack-parser 硬依赖 P0 改造禁区
G-35 国内外源码平台调研 5+5 [守一18条 #6] ❌ 未启动 P1(延后) [守一决策 #5] 延后
G-36 调研 30+ 款类微信/飞书/钉钉/Discord 开源 IM [守一18条 #7]、[守一决策 #5] P1(延后) [守一决策 #5] 延后
G-37 每款源码 10 项调研内容 [守一18条 #8] P1(延后)
G-38 输出调研报告(MD + HTML) [守一18条 #9] P1(延后)
G-39 候选源码初筛排序(30 → 5-10 款) [守一18条 #10] P1(延后)
G-40 部署 5-10 款到狗云 [守一18条 #11] P1(延后) 狗云=新供应商
G-41 候选源码实测 8 项 [守一18条 #12] P1(延后)
G-42 三大测试(功能性/品牌性/部署性) [守一18条 #13] P1(延后)
G-43 选 2 款最适合改造 [守一18条 #14] P1(延后)
G-44 重点验证:品牌改造 + 甲乙丙通信 + 基础办公 [守一18条 #15] P0 [冲突 4] 甲乙丙 vs 甲乙 ——"丙"未澄清(守一 5 个未答之一)
G-45 完整 Reaction 系统、自定义 Emoji 上传 [ima A TODO-19] 🟡 现有 reaction 仅 emoji-mart 内置 P2 中等难度待补
G-46 完整 Presence / 自定义状态 [ima A TODO-20] ❌ 无 Presence 框架;现仅 Redis hset 在线([socketio.mixin.ts:178]) P1 高难度;D-04 双信息流前置
G-47 移动端体验弱于 Discord,需提前测试告知 [ima A TODO-16] 🟡 RN 0.71.2 + Android APK 24MB 🟡 已构建 APK 🟡 P2

H. 项目管理 / 汇报(10 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
H-01 梳理秀秀源码历史方案 [守一18条 #1] 🟡 5 份提取报告(extract A/B/C/D/E)已完成 🟡 P0 维度A 基线已建
H-02 明确秀秀 3.0 最终产品目标 [守一18条 #2] 🟡 决策已部分锁定,"双信息流"等仍需细化 🟡 P0
H-03 项目推进每周一个方向 [守一18条 #16] ❌ 节奏控制未启 P0 阶段二节奏
H-04 项目汇报用 HTML [守一18条 #17] ❌ 未启 P0 守一未答:"是单页 HTML 报告 还是站点"(守一 5 个未答之一)
H-05 搭建汇报网站 [守一18条 #17] ❌ 未启 P1 与 H-04 关联
H-06 时间节点 2026-07-26(里程碑 1) [守一18条 #18] P0 距今 9 周
H-07 时间节点 2026-08-26(里程碑 2) [守一18条 #18] P0 距今 13 周
H-08 时间节点 2026-11-26(里程碑 3) [守一18条 #18] P0 距今 26 周
H-09 功能整合三维度清单 [守一决策 #6] 本清单即交付物 P0(最高优) 维度 A/B/C 全部完成
H-10 现有功能 3 轮测试 [ima C #13 待处理 #7] ❌ 历史待办 P1

I. 已冻结 / 暂缓(14 条)

# 功能 需求来源 源码支持? 服务器实际? 实现状态 优先级 备注
I-01 圆桌会议(全部 7 篇笔记 + 4 轮修复 + 1 次架构大改) [ima E 全篇]、[守一决策 #1] ✅ plugin com.msgbyte.topic create/list/createComment 🚫 plugin_configs 0 条;meetings 表 0 条 保留 ~/.openclaw/shared-skills/roundtable-tailchat/
I-02 圆桌会议私信触发机制(DM bot01 "开会...") [ima E 四-1]、[ima A F-04]
I-03 圆桌令牌轮转(state.json / MAX_TOKENS=2 / MAX_BOT_MSGS=30) [ima E 2.1] — OpenClaw 侧
I-04 圆桌双保险拦截(prependContext + message_sending cancel) [ima E 2.5]
I-05 圆桌纪要三层数据获取(memory + sessions_history + fetchConverseMessage) [ima E 2.7] ✅ fetchConverseMessage API 存在
I-06 圆桌 cron 巡逻(openclaw cron add) [ima E 2.6]
I-07 v3→v4 镜像欠债(固化前端修复) [ima A TODO-01]、[守一决策 #2] ❌ 现仍依赖 docker cp 热修;当前镜像 v2.5.11-renderfix [守一决策 #2]
I-08 30 款源码调研整套 [守一18条 #6-#15]、[守一决策 #5] 已映射到 G-35~G-44
I-09 品牌改造全 9 项 [ima C #05]、[守一决策 #4] 已映射到 F-01~F-13
I-10 Discord 历史消息迁移(不导出,全新从零) [ima A TODO-18]、[ima B 6.1] 步骤 0 跳过
I-11 Discord 下线(步骤 14 跳过当前阶段) [ima B 8.1]
I-12 移除 tailchat-client.ts debug onAny 监听 [ima C #08 待办 #2]、[ima D 5] P2 小项历史待办
I-13 桥接服务待开发(CC 在主人授权服务器后生成部署) [ima A TODO-12] B-14 决策选 Channel 方案后已被替代
I-14 机器人权限初始化脚本(Owner 授权 Bot 一次性) [ima A TODO-13] appendGroupMemberRoles ❌ 当前手动,未脚本化 P2

二、三大维度交叉发现 Top 10(最有价值的洞察)

# 发现 维度 A(需求) 维度 B(源码) 维度 C(实际) 行动
1 三容器未起 → 70% 已实现功能全瘫:仅启 3 个容器即可激活 Bot/插件/Admin 全套 需求强 P0:B-01~B-13、A-19/20、F-* 系列 全部 ✅ 支持 🚫 service-openapi、service-all-plugins、tailchat-admin 三容器从未 docker compose up 阶段二第一动作docker compose up -d service-openapi service-all-plugins tailchat-admin,先验证依赖与配置
2 User.type 已有 3 态但库里全 normalUser:双信息流真人/Bot 分区 D-* 的基础已在源码里 [守一18条 #4] D-01~D-04 packages/types/src/model/user.ts User.type: normalUser / pluginBot / openapiBot ❌ 38 用户全 normalUser,42 个 openapps 与 users 集合不挂钩 实现 D-* 的第一步是修复"Bot 不注入到 users 集合"的 BUG(或激活 ensureOpenapiBot
3 whisper 容器在跑 0 请求:[守一18条 #5] "语音"语义未澄清,但容器已部署 E-03/E-07 ❌ ❌ 源码无 STT ✅ whisper-service 运行中(0 请求) 守一需澄清"语音"是消息还是频道;如要 STT,前后端均需对接 whisper-service
4 Bot 接入决策与现状代码反向:channel.ts 已写好但 index.ts 直调 DeepSeek B-14 [守一锁定] ✅ OpenClaw api.registerChannel() ❌ channel.ts 未注册;index.ts 仍直接 HTTP 调 DeepSeek(且 docker-compose.yml 明文写 MiniMax+Anthropic Key) P0 立刻:激活 api.registerChannel() + 删除 DeepSeek 直调 + rotate API Key
5 45 个官方插件全可用但 0 在用:plugin_configs 表 0 条 A-14/15/19/20、B-21、E-04/05、F-* 多项 ✅ 30 客户端 + 15 服务端 = 45 plugin 🚫 plugin_configs 0 条,all-plugins 容器未起 启 all-plugins 容器后立即可获:notify、getui、prettyinvite、welcome、autojoin、topic、tasks、livekit、agora、IAM、discover、linkmeta、simplenotify、wxpusher、github 等
6 Admin UI 整套未启动 → 13 个模块(用户/消息/群组/文件/邮件/系统/Network/Cache 等)全部不可用 C-08、A-15、F-01~F-08、安全运维 server/admin/ 完整 tushan 框架 🚫 tailchat-admin 容器未起 启容器后立即获得用户管理、消息搜索、系统配置、socket 监控等运维能力
7 OIDC 完整 OAuth2 Provider 已实现但 0 接入 B-02 OpenAPI 全套 oidc-provider@7.10.6 完整 OIDC(authorize/token/userinfo/jwks/discovery) 🚫 openapi 端口 3003 实测 000;端点未挂 启 openapi 容器 → 立大志官网(lidazhiai.com)可直接接入 OAuth2 单点登录
8 历史 ima "已实现"声明 ≠ 服务器真相:5 项关键功能在生产线上其实不工作 B-09 员工 13-15 / B-14 / 圆桌 / 品牌 / 多 Bot 部分 ✅ ❌ users 38 全是 normal、meetings 0、configs 0、openapps 42 全是"南002 子 agent"重复 维度 A 状态列必须以维度 C 为准重新校准(本清单的"实现状态"列已重置)
9 服务器名等品牌字段无需改源码即可生效:但 configs 表 0 条说明从未配过 F-01/F-08 config.setClientConfig 写库即生效 ❌ configs 表 0 条 即使 [守一决策 #4] 品牌后置,先把 serverName='立大志' 写库是 5 分钟即可见效的低成本品牌化
10 乙方独立部署的"Webhook 通道"已在源码里:openapi.bot.callbackUrl 字段存在 G-04 跨服务器通信 [守一决策 #3] bot.service.ts:17-63 监听 chat.inbox.append → POST callbackUrl Header X-TC-Payload-Type: inbox ❌ openapi 容器未起;当前 0 callback 启 openapi 容器后,乙方独立服务器只需开放公网 HTTPS Webhook 接收端,无需改 TailChat 源码

三、改造工作量分级(P0 项)

按"距离里程碑 1(2026-07-26 / 9 周后)"评估:

极低(< 1 天 / 改配置即可,本周可完成)

低(1-3 天)

中(3-10 天)

高(10-30 天)

极高(> 30 天 / 跨里程碑)


四、守一 5 个未回答的关键决策

# 待决策项 影响范围 不决策的代价 建议决策时机
1 "语音"语义:[守一18条 #5] 的"语音"= 语音消息(Whisper STT)/ 语音频道(LiveKit)/ 两者都要? E-03, E-04, E-05, E-07 whisper 容器空跑、LiveKit 插件无法激活 阶段二启动前
2 "在线打开"语义:[守一18条 #5] = 文件在线预览(PDF/图片/Office)/ 协同编辑(思源式)/ 网页面板嵌入? A-22 30 款源码调研缺关键评估项 阶段二启动前
3 真人/Bot 双信息流形态:[守一18条 #4] 是物理分区(不同 Panel)/ 逻辑分区(同 Panel 双 Tab)/ 双客户端入口? D-01 ~ D-04(全部 P0) 阻塞所有 D-* 实现 立即(决定阶段二最大工作量)
4 "丙方"是谁:[守一18条 #15] 出现"甲乙丙通信"但未说明 G-44 P0 跨方通信架构无法设计 立即
5 汇报形式:[守一18条 #17] 项目汇报用 HTML + 搭建汇报网站 = 单页 HTML 报告 / 多页站点 / 集成在立大志官网? H-04, H-05 阻塞汇报架构搭建 阶段二第一周

(额外可决策项:[守一决策 #4] 品牌素材后置时点是"里程碑 2 还是里程碑 3";员工 13-15 个性化是按业务分类还是按"真人秀风格化"——见 [冲突 7])


五、下一步建议(基于三维交叉的阶段规划)

阶段二:4 周内(2026-05-26 ~ 2026-06-26)— "把躺平的资产唤醒"

核心思路:维度 B 源码 + 维度 C 服务器 的最大差距是"已部署但未启用",先用 1-3 天动作把"启容器/写配置/激活 channel" 三件事做完,秀秀 70% 已实现功能立刻可用。

  1. 第 1 天:rotate API Key + 启 3 个容器(service-openapi + service-all-plugins + tailchat-admin)+ 写 serverName='立大志'
  2. 第 2-3 天:验证 Bot 接入链路(B-01~B-04,启动后端到端打通)+ 修复 Bot 不在 users 集合 BUG(D-01 基础)
  3. 第 4-5 天:激活 OpenClaw channel.ts(B-14 + B-19)+ 删除 DeepSeek 直调
  4. 第 2 周:批量创建员工 1-20 Bot(B-09, B-10)+ 清理 42 条垃圾 openapps
  5. 第 3 周:跨服务器通信架构设计(G-03, G-04)+ 守一回答 5 个未决项
  6. 第 4 周:双信息流(D-01~D-04)原型,里程碑 1(07-26)冲刺准备

阶段三:里程碑 1 ~ 里程碑 2(2026-07-26 ~ 2026-08-26)— "30 款源码调研 + 双信息流落地"

阶段四:里程碑 2 ~ 里程碑 3(2026-08-26 ~ 2026-11-26)— "品牌 + 替换底座 + 移动端"

持续动作(贯穿阶段二/三/四)


六、合并条目统计

类别 条目数
A. IM 基础能力 33
B. Bot/Agent/OpenAPI 21
C. 群组/频道/权限 10
D. 真人/Bot 分区 + 双信息流 4
E. 多媒体 7
F. 品牌改造 13
G. 部署架构 47
H. 项目管理/汇报 10
I. 已冻结/暂缓 14
合计 159

实现状态分布(以维度 C 实测为准重新校准)

状态 条目数 占比
✅ 已实现且工作 41 25.8%
🟡 部分实现 35 22.0%
❌ 待实现 67 42.1%
⏸ 已冻结 16 10.1%
合计 159 100%

注:与维度 A 原始统计(67 ✅ / 19 🟡 / 59 ❌ / 14 ⏸)差异原因 = 维度 C 实测暴露大量"声明 ✅ 实际 🟡/❌"的项,本清单已按"以服务器实际为准"重置。

优先级分布

优先级 条目数
P0 必须做 47
P1 重要 60
P2 一般 28
P3 可选 8
⏸ 已冻结 16
合计 159

合并报告版本:终版 1.0 / 合并人:Claude Code Opus 4.7 1M / 时间:2026-05-26 / 输入:维度 A 159 条 + 维度 B 425+164 条 + 维度 C 实测 9 节