Files
memind/docs/103-reconciliation-2026-06-26.md
T
john 9b4a25799f Add smart ACK provider for WeChat MP replies
Replace fixed ackText with a rule-based AckProvider that picks
response templates by message type and intent (translate, summary,
rewrite, poster, ppt, mindmap, code, search, schedule). Pure sync,
zero I/O, auto-falls back to config.ackText on any error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 15:19:03 +08:00

139 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 103 生产收口记录(2026-06-26
## 目标
`103` 从“可直接手改的运行工作树”收口为“只接收本地发布包的生产环境”。
这份记录只做两件事:
1. 固定 2026-06-26 看到的真实生产状态。
2. 给后续“本地唯一发布源”改造提供基线。
## 已确认的生产真相
### 主机与入口
- 生产主机:`john@58.38.22.103`
- 当前 SSH 端口:`22`
- 旧的 `2222` 已关闭,不应再写入文档或脚本
### 运行目录
- Memind: `/Users/john/Project/Memind`
- 管理后台: `/Users/john/Project/memind_adm`
- Plaza: `/Users/john/Project/memind_plaza`
### 运行服务
- `cn.tkmind.memind-portal`
- `cn.tkmind.plaza`
- `cn.tkmind.memind-adm-web`
- `cn.tkmind.memind-adm-api`
- `cn.tkmind.goosed-18006`
- `cn.tkmind.goosed-18007`
结论:Goose 在线上是双实例负载,本地不需要强行复制这套拓扑;这部分应作为“发布后巡检”处理,而不是“本地开发必须等价”处理。
## 数据库结论
### 生产正在使用的业务库
`/Users/john/Project/Memind/.env``/Users/john/Project/memind_adm/.env` 都指向同一个 RDS
- `DATABASE_URL=.../goose`
因此:
- 当前正式业务库是 `goose`
- `memind` 库仍存在,但不是当前正式流量的主写入目标
### 2026-06-26 抽样结果
`goose`
- `h5_users`: `41`
- 有充值/加款记录的用户数:`27`
`memind`
- `h5_users`: `26`
- 有充值/加款记录的用户数:`12`
这说明 `memind` 更像旧数据或历史分流,当前生产业务应以 `goose` 为准。
### 付费用户观察
`goose.h5_billing_ledger` 统计:
- 除去明显超大测试/管理员账户 `admin`
- 充值额度最高的真实用户:`wx_95eskyda / cheng cong👑`
- 实际消耗最高的真实用户之一:`wx_ul610et8 / 唐`
## 工作树漂移结论
### 103 生产工作树
- `Memind`
- branch: `main`
- commit: `728b01c`
- dirty files: `154`
- `memind_adm`
- branch: `main`
- commit: `7a5b9cc`
- dirty files: `42`
### 本地工作树
- `test-memind`
- commit: `d51df2f`
- local diff count: `102`
- `test-memindadm`
- commit: `f217232`
- local diff count: `28`
## 判断
不能把 `103` 视为“最新版本”,也不能把本地直接视为“可全量覆盖生产”的唯一事实。
当前状态更准确的描述是:
1. `103` 是真实运行版本,但带有大量未回收漂移。
2. 本地是主要开发来源,但尚未完成对 `103` 有效差异的回收。
3. 因此必须先做一次“收口”,再执行“本地唯一发布源”制度。
## 收口策略
### 禁止动作
- 禁止再用 `rsync` 直接覆盖生产工作树
- 禁止在 `103` 直接改源码后继续跑
- 禁止把 `103` 直接反向同步进本地主开发目录
### 允许动作
1. 单独创建 `103-baseline` 副本或 worktree
2.`103` 与本地、目标主线做三向比较
3. 只回收“生产独有且必须保留”的热修
4. 回收完成后,以本地提交为唯一发布源重新出包上线
## 后续制度
从这次收口完成后开始:
1. 本地源码是唯一发布源
2. 生产只接收发布包
3. 发布包上传到 `incoming/`
4. 生产解包到 `releases/`
5. 备份当前 live 目录
6. 原子切换目录并重启
7. 失败自动回滚
## 需要继续执行的事项
1.`memind_adm` 补齐与 `Memind` 一样的发布包脚本和规则文档
2.`103` 导出一个只读差异清单
3. 把真正必须保留的生产热修回收到本地
4. 收口完成后,把 `103` 变成“不可手改源码”的发布目标