# 需求:会员口径全量标准化-存储-API路由-文案层 users→members(不留双口径)
状态: done(2026-10-13 已上线:波1+波2:迁移0013+api 8e14b72b/78a27580+admin 5efab73d 线上实证;波3(官网+桌面协议文案)留票尾挂账)
归属: account-center
来源: boss 直投(会话)
日期: 2026-10-13
建议: 做,boss 2026-10-13:「首页路由什么的也要标准化,现在基本没有用户,要改就直接改,改的标准点,别后面会员=用户乱了没法调整」——推翻早前「API 路径/DB 命名不改」边界

## 现状

10-13 早前口径只落了「可见文案」层(后台客户账号叫会员),但双口径的根子在存储与路由层:D1 `users` 表 + 六表 `user_id` 列、admin API `/v1/admin/users`、后台前端视图键 `#/users`、代码标识符(findUserById/UserRow/USER_SELECT)、ops 采集 SQL 与 metrics 快照键,全都还写着 user;文案改口的同时 `users` 在代码里既指客户表又差点被读成操作者,正是 boss 点名的「后面乱了没有办法调整」。审计基线:A 类硬非标 16 条(含 portal「新用户」、admin EN 三处、ops 输出 6 处)+ 文档面约 15 处。

## 方案

三波(本票覆盖波1+波2,波3 挂后续):

1. **波1 account_center(全量)**:migration 0013 `users`→`members`、`user_tombstones`→`member_tombstones`、各表 `user_id`→`member_id`、`referred_by_user_id`→`referred_by_member_id`、9 个索引名转正;`/v1/admin/users`→`/v1/admin/members`;代码标识符 member 系;portal 登录页「新用户」、资料页「用户名/Username」→「昵称/Nickname」;admin 页 EN 三处(Referred user/data-label User/"User management");旧 hash `#/users` 带兼容映射。**边界**:操作者侧不洗(`admin_users` 表、登录框 `username` 字段、后台「用户管理」节=正确用法);Paddle `custom_data` 读侧认旧键 `user_id` 兜底存量交易;**外部协议字面量(X/Google 端点 URL、HTTP 头名)一律不改名**。公开 API 响应字段实证本无 user 字样(/v1/me、token、billing、redeem)→ 已上线桌面包零影响。
2. **波2 company ops(与波1 同窗口,不可隔日)**:采集/报表/对账/打标/驾驶舱约 17 文件的 D1 SQL 换 members 表;metrics.jsonl 当日快照起用 `members`/`members_by_client` 键,历史不回改、读侧认旧键兜底;日报「注册用户总数/24h 活跃用户」→「注册会员总数/24h 活跃会员」;ops/README「数据口径」节按纪律登记本次口径变更(改本节+当日 jsonl 加 note)。
3. **波3 官网+桌面(挂账待做)**:官网「用户支持/User Support」页面名与文案、legal.json「为用户提供…」改口;6 个桌面产品 locales「用户协议」→「会员协议」+ boss 已点头的「会员服务条款」统一——桌面只随各产品下次发版带出,不为文案单独发包。

## 验收标准

- [x] account_center 全仓测试绿+类型检查:api 223/223(真 SQLite 迁移链跑到 0013)、admin 76/76、sdk 106/106、`pnpm check` 通过(commit 91cb4dd + bb13f7d)
- [x] prod 上线实证:D1 迁移 0013 apply ✅(`members/member_tombstones/admin_users` 三表 sqlite_master 核到);api-prod 版本 8e14b72b→78a27580(X OAuth 修正重发)、admin-prod 5efab73d;线上 curl:portal「首次使用时自动创建」命中、admin 页 EN 转正命中、`/v1/admin/members` 401 闸对、`ops.mjs who` 真读新表(内部测试号会员态正确=新 SQL 路径实弹)
- [x] company 侧:ops 全量 pytest 463 passed 1 skipped;`collect.py` 对 prod 新表实跑五源全 ok;metrics 今日行键 `members` + note 登记;驾驶舱重生成部署,线上 index md5 与本地一致(「会员与账户」节标题渲染命中)
- [x] 外部协议零破坏回查:diff 内 `Member-Agent`/`members/me`/`member.fields`/`/member/edit` 四类洗坏点全部修回并复测;全仓残留扫描 0
- [ ] 波3(官网+桌面文案)上线——留 `docs/需求/` 本票尾 + worklog 挂账,归后续排工

## 实施状态

波1+波2 已完成并上线(2026-10-13)。波3 挂账。教训入全局 LEDGER「codemod 外部协议字面量白名单」条目。
