编制:2026-05-26(阶段一核心交付物)
立项:2026-05-26
终验:2026-11-26(半年内 100% 完成)
中间节点:2026-07-26(核心调研+方案雏形)/ 2026-08-26(阶段性大成果)
视角:按守一指定的 7 模块组织
项目代号:秀秀 3.0 = TailChat 改造为多甲乙方独立部署的即时通讯软件
| 项 | 内容 |
|---|---|
| 项目目标 | 把秀秀(TailChat)改造为可独立部署、甲方公网互联、乙方自主接入的即时通讯软件 |
| 主决策人 | 守一(最终验收) |
| 项目主责 | 金祥(统筹)+ 自动化开发程序/Bot Team/Bot Skill |
| 调研 | Q/CC |
| 测试 | 实习生 |
| 服务器 | 狗云(当前 chat.lidazhiai.com 在跑),未来要扩多台 |
| 时间表 | 半年内 100% 完成,每周至少一次 HTML 汇报 |
| 当前已有底盘 | TailChat v1.11.10 (Apache-2.0) + 自研 xiuxiu:v2.5.11-renderfix 镜像 + 49 条已实现功能 |
| 唯一未完成历史要求 | "TailChat 作为 OpenClaw 正式 Channel"(守一已决定纳入 3.0) |
秀秀 3.0 = 类微信的即时通讯软件,参考飞书 / 钉钉 / Discord 的协作能力,但比这些产品更适合"乙方独立部署 + 接入公网"。
| 类 | 功能 | 现状 |
|---|---|---|
| 消息 | 文字消息、@提及、回复引用、Markdown 渲染、消息搜索、消息右键菜单 | ✅ 已实现 |
| 消息 | 消息转发 | ✅ 守一已自研落地(v1 报告错把它列为"不支持") |
| 消息 | 消息多选 | ✅ 守一已自研 |
| 消息 | 消息置顶 | ✅ 守一已自研 |
| 消息 | 群发消息(@everyone / @角色 / 多接收人广播) | 🟡 TailChat 原生不支持,需扩展 |
| 群组 | 群组双层结构(群组→面板)、群主/管理员/普通成员、邀请系统 | ✅ |
| 联系人 | 好友系统(昵称#discriminator)、联系人置顶 | ✅ 含守一 E1 |
| 客户端 | Web / Windows / Mac / iOS / Android 多端 | 🟡 Web/Win/Android 已有,Mac/iOS 待 |
| 体验 | 暗色/亮色主题、PWA、桌面通知、手机端回车=换行 | ✅ A1 守一自研 |
| 体验 | 时间显示、输入中状态(typing) | ✅ B6 守一 260408 落地 |
| Windows | 右键复制(输入框)、刷新不丢失输入草稿 | ✅ A2/A3 守一自研 |
F1 桌面快捷方式(守一明确):
- 点快捷方式→直进对话窗口
- 手机版 + Windows 版(手机版优先)
- 点链接/按钮→直接跳转对话页
技术路径:deep link / URL Scheme / Electron protocol handler。预估 MVP 2-3 天。
甲方:chat.lidazhiai.com(45.153.129.198,腾讯云 CVM73439)
镜像源母机:81.70.146.110(腾讯云,sync-xiuxiu.sh 自动同步)
镜像:xiuxiu:v2.5.11-renderfix
容器栈:service-core + mongo + redis + minio + whisper + traefik(6 跑)
未启动:service-openapi + service-all-plugins + tailchat-admin(3 个 compose 定义但 docker compose up 没启)
| 需求 | 现状 |
|---|---|
| 甲方服务器+公网通信能力 | ✅ 已有 chat.lidazhiai.com |
| 乙方在自家机起独立 TailChat 实例 | ❌ 待设计 |
| 多个乙方实例通过甲方互通 | ❌ 待设计(联邦/桥接/中继协议待选) |
| 乙方自主决定哪些账号/Bot 接入甲方公网 | ❌ 待设计(乙方控制台 + 授权机制) |
| HTTPS + Let's Encrypt 通配符证书 | ✅ |
| Nginx WebSocket + X-Forwarded-Proto + 关闭 http2 | ✅ |
| Docker Compose 一键部署 | ✅ 当前 yml 已有 |
| 镜像同步机制(母机→部署机) | ✅ sync-xiuxiu.sh 可参考 |
| 乙方部署包工具化(要给乙方用,不是自己用) | ❌ 待设计 |
守一决策 2:v3 镜像欠债暂不处理。但风险未消:
- 前端修复(IME / 字符限制 / Service Worker / MentionDropdown)仅靠 docker cp 热修
- index.tsx 4 月 7 日备份 + 4 月 9 日改动直写容器,不在镜像里
- 容器一旦 force-recreate 改动全丢
3.0 启动时建议至少做"运维硬规则":重启容器前必须备份热更新文件。
甲方服务器(公网核心)
chat.lidazhiai.com 当前实例
│
┌────────────┼────────────┐
│ │ │
乙方A实例 乙方B实例 乙方C实例
xx.com:443 yy.com:443 zz.com:443
(独立部署) (独立部署) (独立部署)
每个乙方实例:本地真人/Bot/Agent 完整运行
跨乙方通信:经甲方服务器中继
乙方接入权:每个乙方自主决定哪些账号/Bot 可接入甲方公网
| 链路 | 描述 | 实现状态 |
|---|---|---|
| 真人 → 真人(同实例) | 乙方内部聊天 | ✅ TailChat 原生 Socket.IO |
| 真人 → 真人(跨实例,经甲方) | 跨乙方公司聊天 | ❌ 待设计 |
| 真人 → Bot(同实例) | 乙方用户调本地 Bot | ⚠️ openapi 容器未起 |
| Bot → Bot(跨 Bot) | Agent 互联 | ⚠️ 同上 |
| 乙方 Bot → 甲方公网 → 乙方/真人 | 跨实例 Bot 通信 | ❌ 待设计 |
真人用户 与 Bot 用户严格区分:
- 真人用户只能在真人区发布内容
- Bot 用户只能在 Bot 区发布内容
TailChat 源码 User.type 字段原生三态:
- normalUser — 真人
- pluginBot — 插件 Bot
- openapiBot — OpenAPI Bot
这意味着身份系统的基础已经存在,不需要从零设计。但当前数据库 38 个用户全是 normalUser,Bot 没注入到 users 表(42 个 openapps 注册但没对应 users)。
| 步骤 | 描述 | 估计 |
|---|---|---|
| 1 | Bot 注册时同步生成对应 pluginBot / openapiBot 类型的 user 记录 |
改 openapi.bot.login 服务 |
| 2 | 现有 42 个 openapps 反向回填 users(type=openapiBot) | 一次性 migration script |
| 3 | 前端按 user.type 过滤消息流 | client/web 增强 |
| 4 | 后端 API 增加 type-based 权限校验 | service-core 增强 |
accounts.allowedToFederate 字段 + 控制台 UI双信息流双标签:
- "真人秀" 标签 → 仅展示 user.type=normalUser 的朋友圈内容
- "Bot 秀" 标签 → 仅展示 user.type=pluginBot/openapiBot 的朋友圈内容
- 用户可在两个标签间自由切换
discovers 表 0 条| 步骤 | 描述 |
|---|---|
| 1 | 后端:新建 moments 集合(用户/Bot 朋友圈条目)+ 评论/点赞表 |
| 2 | 后端:moments service(list / publish / like / comment) |
| 3 | 后端:list API 按 user.type 过滤 → 真人秀 / Bot 秀 |
| 4 | 前端:双 Tab + 信息流列表(Web + 桌面 + 移动) |
| 5 | 前端:发布器(图文/视频/链接) |
| 6 | 服务端:内容审核(敏感词 / 图片审核 hook) |
预估工作量:中等偏大,这是 3.0 最重要的产品差异点,需要在阶段六的开发方案中重点排期。
_openapi_endpoints.txt)/open/*),符合 OAuth 2.0 标准openapi.bot.login + chat.inbox.append (回调头 X-TC-Payload-Type: inbox) + openapi.integration.addBotUser| 项 | 状态 |
|---|---|
| API 代码 | ✅ 完整在 v2.5.11 镜像 |
| service-openapi 容器 | ❌ 从未启动 |
| 实际可用性 | ❌ 端口 3003 实测 000 无响应 |
| 复活成本 | 极低:docker compose up -d service-openapi 一行 |
| 类 | 抓手 | 改造方式 |
|---|---|---|
| 运行时可改 | serverName / serverEntryImage / announcement |
config.setClientConfig API,无需重编 |
| 主题色 | regPluginColorScheme + 23 个 reg 扩展点 |
插件机制 |
| 服务端 | mixin / hook | 插件机制 |
| 硬编码必须改源码 | About.tsx:39 和 consts.ts:25 的 "Tailchat" 字样 |
改源码 + 重编镜像 |
| 安装包 | Electron productName / Android app_name / iOS bundle_id |
改 build 配置 |
按守一决策"最后再说":
- 阶段一:先冻结清单,不开始
- 阶段五(品牌性测试):作为测试维度之一
- 阶段六(开发方案设计):纳入完整改造排期
- 阶段七:实际执行
| # | 内容 | 影响 |
|---|---|---|
| 1 | 圆桌会议保留冻结,作为科研资产 | 不开发,与 TailChat Topic 插件链锁定 v2.5.11 |
| 2 | v3 镜像欠债暂不处理 | 风险存在,建议运维硬规则 |
| 3 | 乙方真独立部署(另起服务器,不是多租户共享) | 阶段五测试须 2+ 台不同服务器 |
| 4 | 品牌素材 9 项最后再说 | 排到阶段六/七 |
| 5 | 30 款源码调研延后 | 阶段二/三延后 |
| 6 | 功能整合三维度清单最高优 | 已完成 |
| 7 | Bot 接入方案选 [#03] OpenClaw Channel | TailChat 注册为 OpenClaw 原生 channel |
| 8 | 历史要求 19(TailChat 作为 OpenClaw 正式 Channel)纳入 3.0 | 与 #7 一致 |
| # | 内容 | 影响 |
|---|---|---|
| 1 | 3 容器(service-openapi / all-plugins / admin)是否授权启动 | 阻塞 17 条 Bot 能力复活 |
| 2 | API 密钥(MiniMax + Anthropic)何时 rotate | 安全债,已暴露在对话历史 |
| 3 | "维度 C 首页"原本含义 | 不阻塞,已用"服务器实测"代替 |
| 4 | F1 桌面快捷方式排期 | 阶段六还是即时排 |
| # | 风险 | 应对 |
|---|---|---|
| 1 | 当前服务器资源接近瓶颈(磁盘 70%、Swap 1.4/1.5G) | 阶段六前升级服务器配置 |
| 2 | 镜像热修代码未固化(v3 历史欠债延伸) | 运维硬规则 + 阶段七前重编一次镜像 |
| 3 | OpenClaw 4.15 plugin SDK 与 TailChat Channel 集成接口未实测 | 阶段六设计 ADR + spike 验证 |
| 4 | 朋友圈是全新模块,工作量大 | 阶段六排专项排期,可能需要外协开发 |
| 5 | API 密钥仍明文暴露 | rotate 优先级 P0 |
| 6 | sync-xiuxiu.sh 依赖明文 SSH 密码 | 改 SSH key + secrets 管理 |
| 7 | TailChat 上游 v1.11.10 已稳定 2025-01,未来不一定持续更新 | 3.0 长期可能要 fork 自维护 |
| 8 | 多乙方实例联邦/中继协议选型未定 | 阶段六做技术选型 ADR |
| # | 交付物 | 路径 |
|---|---|---|
| 1 | 25 篇 ima 历史笔记原文 | /tmp/tailchat-ima/01_*.md ~ 25_*.md |
| 2 | 5 份分组提取报告 | /tmp/tailchat-ima/extract_{A,B,C,D,E}_*.md |
| 3 | 服务器现状盘点 | /tmp/tailchat-ima/server_current_state.md |
| 4 | TailChat 源码能力(425 条 + 164 API) | /tmp/tailchat-ima/tailchat_src_capabilities.md + _openapi_endpoints.txt |
| 5 | 维度 A 需求清单(159 条) | /tmp/tailchat-ima/merged_demand_dimensionA.md |
| 6 | 三维合并清单 | /tmp/tailchat-ima/dimension_merge_final.md |
| 7 | 守一测试修改记录 | /tmp/tailchat-ima/守一测试修改记录.md |
| 8 | 《秀秀 3.0 最终诉求界定文档》本文档 | /tmp/tailchat-ima/秀秀3.0最终诉求界定文档.md |
| 9 | 已实现功能盘点 v2(49 条) | /tmp/tailchat-ima/已实现功能盘点_v2.md |
| 10 | HTML 汇报版(即将做) | /tmp/tailchat-ima/html/ |
| 11 | HTML 汇报网站(即将部署) | xiuxiu3.qootc2.xyz |
考虑到秀秀已经在生产、49 条功能在工作、TailChat 基础已经选定,阶段二/三的"30 款源码调研选 2 款"已意义不大。建议:
待守一阶段一收尾后确认是否调整后续阶段定义。