诊断(08-08-production-authenticated-readiness): 核定邮件重置路径
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s

这个提交包含在:
2026-08-08 23:40:50 +08:00
父节点 fa166d68b3
当前提交 00fecf2a03
共修改 3 个文件,包含 18 行新增和 7 行删除
@@ -77,11 +77,11 @@
- [x] AC1:生产运行/公网 SHA 对应已部署产品候选 `0224ad8`(短标识 `0224ad83d7f8`);65 条 migration 仍全部 applied、pending=none,未触发部署或 schema 写入。
- [x] AC2:任何登录前已对管理员、员工完成同一 `BEGIN READ ONLY` 查询合同;查询设计覆盖 `matchedBy`、active/archived/locked、失败计数和期望角色是否就绪。两个 identifier 实际均 `matchedBy=none`,故账号属性记为 `N/A` 而非生产事实,不含账号或凭据明文。
- [x] AC3:两个仓库外 identifier 均不匹配 email/phone/employee_no。只读角色候选与远端内存密码 hash 比对进一步证明:唯一活跃管理员可解析为 email、未锁定、失败计数为 0,但现有管理员密码不匹配;员工有 5 个活跃非管理员候选,现有员工验收密码对这些候选的匹配数为 0。登录尝试保持 0,未输出 identifier/hash。
- [ ] AC4 — PAUSED:管理员正确 identifier 已在只读内存中唯一解析,但现有密码确认失效;员工目标账号仍不唯一,现有验收密码不匹配任何活跃非管理员候选。密码重置或账号选择需要单独批准,本轮各角色登录尝试均为 0。
- [ ] AC4 — PAUSED:管理员正确 identifier 已在只读内存中唯一解析,但现有密码确认失效;生产 `EMAIL_ENABLED=false`,公网 capabilities 为 `emailDeliveryReady=false / email_disabled`,自助重置不可用。管理员受控直接重置需要单独批准;员工目标账号仍不唯一。本轮各角色登录尝试均为 0。
- [ ] AC5 — PAUSED:管理员 identifier 已解析但密码不匹配,未建立管理员会话,未进入合同详情或终止面板;终止端点 `POST` 计数为 0,确认层未打开。
- [ ] AC6 — PAUSED:员工目标账号未唯一确定且现有验收密码不匹配活跃候选,未执行权限负向或 archived/terminated 样本 UI 检查;未扩大权限、修改断言或制造数据。
- [x] AC7:初始、登录前停止后、扩展只读诊断后共三次窗口证据均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`;窗口未变化,本任务真实合同终止写入计数为 0。
- [x] AC8:扩展诊断的只读 reviewer 首轮 `PASS_WITH_FINDINGS` 已完成措辞修订,最终复查为 `PASS`;task validate、process contract、governance、sensitive scan、diff check 均通过。
- [x] AC7:初始、登录前停止后、扩展账号诊断后、邮件能力诊断后共四次窗口证据均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`;窗口未变化,本任务真实合同终止写入计数为 0。
- [x] AC8:邮件能力与 break-glass 建议新增审查首轮 `PASS_WITH_FINDINGS` 的两项措辞已修订,最终复查为 `PASS`;task validate、process contract、governance、sensitive scan、diff check 均通过。
- [x] AC9:结论明确为产品已部署、生产基线健康,但登录态验收仍 `PAUSED`;当前不得告知用户可以测试。
## Out of Scope
@@ -99,6 +99,7 @@
- 没有同构预发环境;本任务主动放弃确认层视觉验收,以降低不可逆误操作风险。
- 既有生产可能没有 archived 或 terminated 样本;缺少数据时相应只读断言保持 `PAUSED`,不得为覆盖率制造业务数据。
- 如果仓库外凭据确已失效,本任务可能在账号诊断阶段结束而无法完成登录态验收;这是真实阻塞,不授权以生产账号写入换取通过。
- 若后续另行批准 `reset-active-admin-password.js`,它不仅更新 password hash,还会设置 `must_change_password`、清理认证失败/锁定状态、递增 token version、撤销活跃会话、失效验证码并写审计。旧 hash 只能作为高敏、短期、受限访问的有限凭据恢复材料,不能回滚这些其他效果,也不能删除审计;不得把它称为完整回滚。
## Operational Inputs (not committed)