fix(identity): staging fixed-code sign-in skips the first-password step (BUG-1152)
On the staging test-OTP channel, 验证码登录 with a fresh mailbox no longer stops at 设置登录密码; it records consent and enters the app. 注册账号 still sets a password, second factor still comes first, and production (no IDENTITY_TEST_OTP) is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
279650a684
commit
2d620fb4ad
@@ -0,0 +1,23 @@
|
||||
# PROGRESS · staging 固定验证码登录跳过「设置密码」(2026-10-01)
|
||||
|
||||
执行方:Claude(产品 10-01「请你执行」,直接执行模式)。任务书:`TASK-staging-otp-skip-password-20261001.md`。基线 `origin/staging` = `279650a6`。
|
||||
|
||||
| 任务 | 结果 | 证据 |
|
||||
| --- | --- | --- |
|
||||
| T1 跳过设置密码 | 完成 | `email-otp-login.tsx` 新增导出 `offersFirstPasswordStep(testMode, mode)`;`verifyOtp` 在其为 false 时不调用 `hasPassword()`,落到原有的 `await enterApp()`。选了「省掉调用」:测试通道下这次请求没有用处。二步验证分支位置不变;`enterApp` 调用次数仍为 5,原有计数断言不改 |
|
||||
| T2 回归测试 | 完成(纯函数行为 + 源码顺序断言) | `identity-login-provider.test.ts` 新增 1 条:四种组合 + 二步验证在前 + `set-password` 仍由该判断守住。全组件渲染需要模拟 `selfHostedAuthActions`/`next/image`,收益不抵成本,按让步顺序取纯函数 |
|
||||
| T3 记录 | 完成 | `docs/BUG_HISTORY.md` BUG-1152;`CHANGELOG.md`;`docs/testing/staging-otp-skip-password-20261001.md` |
|
||||
|
||||
## 验收数字(Node 22.x,本机无 Docker)
|
||||
|
||||
| 项 | 结果 |
|
||||
| --- | --- |
|
||||
| `tsc --noEmit` | 0 错 |
|
||||
| `npm run lint` | 0 error(126 warning,与改动文件无关;改动文件单独 eslint 无输出) |
|
||||
| `npm test` | 基线 4867 / pass 4802 / fail 24 → 改后 4868 / 4803 / 24;失败清单与基线逐条 `diff` 一致(全是需 Docker/PostgreSQL 的套件) |
|
||||
| `npm run build` | 成功;`/` 仍 `○ Static`,`/login` 仍 `ƒ` |
|
||||
| 首屏 gzip | 未测:改动只在 `/login` 组件内加 3 行判断,`/` 首屏不加载该组件 |
|
||||
|
||||
## 环境缺口
|
||||
|
||||
- 真机走查(新邮箱 → 固定码 → 直接进首页)留给产品,见 `docs/testing/` 清单。
|
||||
@@ -402,4 +402,4 @@
|
||||
| `TASK-consult-plain-answer-20261001.md` | `PROGRESS-consult-plain-answer-20261001.md` | 普通对话「还是废话」:09-17 四步开场形状(格局名 → 谁推谁修 → 扮演哪个象)逼出谜语,问父母时爸妈被揉成一段;产品授权推翻该形状,改成先答 + 按问题里的对象分段 + 人话自检 + 空宫不单独下结论 + 父母卡标 mother/father(BUG-1132~1134) | **已实现,待 Claude 验收**(fork 子代理直接执行);未推 staging、未部署;模型对比为环境缺口,真机清单 `docs/testing/consult-plain-answer-20261001.md` | 分支 `codex/consult-plain-answer-20261001` |
|
||||
| `TASK-consult-answer-clock-20261001.md` | `PROGRESS-consult-answer-clock-20261001.md` | 普通对话答题时钟 70 s 容不下推理模型(v4-pro 77 s),无出生分钟路线只受 110 s 工具钟管;产品定 5 分钟防卡死(BUG-1142) | **已实现,待 Claude 验收**(直接执行) | 分支 `codex/consult-answer-clock-20261001` |
|
||||
| `TASK-consult-timeline-no-plan-20261001.md` | `PROGRESS-consult-timeline-no-plan-20261001.md` | 普通对话进度栏提前打勾:回答提纲在算盘前就作为四行步骤显示并全部打勾(BUG-1145);产品选 B 去掉提纲行,只显示真实步骤 | **实现完成,待 Claude 验收**(直接执行) | 分支 `codex/consult-timeline-no-plan-20261001` |
|
||||
| `TASK-staging-otp-skip-password-20261001.md` | `PROGRESS-staging-otp-skip-password-20261001.md` | staging 新邮箱用固定验证码登录后被强制设置密码,测试者误以为要密码登录;产品选「测试通道验证码登录跳过设置密码」,生产不变(BUG-1152) | **待领取** | 分支 `codex/staging-otp-skip-password-20261001` |
|
||||
| `TASK-staging-otp-skip-password-20261001.md` | `PROGRESS-staging-otp-skip-password-20261001.md` | staging 新邮箱用固定验证码登录后被强制设置密码,测试者误以为要密码登录;产品选「测试通道验证码登录跳过设置密码」,生产不变(BUG-1152) | **已实现推 staging**(Claude 直接执行),真机清单 `docs/testing/staging-otp-skip-password-20261001.md` | 分支 `codex/staging-otp-skip-password-20261001` |
|
||||
|
||||
Reference in New Issue
Block a user