Merge pull request 'Close the login recovery contract leftovers in Dev' (#511) from feature/svc-account-hardening into main
ci / svc-realcombo (push) Successful in 1m45s
ci / test (push) Successful in 4m49s
ci / test-pg (push) Successful in 7m36s

This commit was merged in pull request #511.
This commit is contained in:
2026-10-13 06:22:12 +00:00
3 changed files with 267 additions and 7 deletions
File diff suppressed because one or more lines are too long
@@ -68,14 +68,19 @@
以上本地结果均为 SELF;GATE 以 PR HEAD 的 CI(含 test-pg)为准。 以上本地结果均为 SELF;GATE 以 PR HEAD 的 CI(含 test-pg)为准。
## 遗留项(不阻塞本合同;2026-10-13 追加收尾) ## 遗留项(2026-10-13 全部收口)
- ~~登录页专用兑换 E2E~~:**已补齐**(Frontend #77,`e2e/login-key.playwright.ts`; - ~~登录页专用兑换 E2E~~:**已补齐**(Frontend #77,`e2e/login-key.playwright.ts`;
真实浏览器全流程验收 PASS——签发→只输 Key 兑换→免旧密码设密→新密码登录→重复兑换被拒, 真实浏览器全流程验收 PASS——签发→只输 Key 兑换→免旧密码设密→新密码登录→重复兑换被拒,
隔离 auth-on 实例,收据 sha256 `be7ae9a2…`/`b3a9e691…` 绑定 Dev HEAD 268ef29,SELF)。 隔离 auth-on 实例,收据 sha256 `be7ae9a2…`/`b3a9e691…` 绑定 Dev HEAD 268ef29,SELF)。
- ~~SSE 长连接断流~~:**已实现**(Backend #189,`349a47d`,CI success)——会话凭证的流 - ~~SSE 长连接断流~~:**已实现**(Backend #189 会话凭证;#192 补齐 API key 凭证)——
在心跳点复验(默认 15s,测试可缩短),失效即以 `session-expired` 终止; 心跳点复验,失效即以 `session-expired` 终止(默认 15s,测试可缩短)。
API key 凭证的撤销断流仍后续。
- ~~Documents 主方案回写~~:**已完成**(Documents #94 r3,含三裁定与实施记录)。 - ~~Documents 主方案回写~~:**已完成**(Documents #94 r3,含三裁定与实施记录)。
- 兑换入口跨实例限流(当前进程内退避,与 `loginGuard` 同档)——仍后续。 - ~~兑换入口跨实例限流~~:**已实现**(Backend #192,迁移 v29 `redeem_attempts` 共享库
- U7 余量(原子开户/引导、CLI 凭据安全交付、PG 锁串行首管)——仍后续,另行任务。 窗口计数;双 Store 连接同库共担限流的测试覆盖)。
- ~~U7 余量:原子开户/引导、CLI 凭据安全交付、PG 锁串行首管~~:**已实现**
(Backend #192)——CreateAccount 单行 INSERT(并发同名 1 胜且胜者凭据不被覆盖);
BootstrapFirstAdmin PG 咨询锁 + SQLite 插入后复查,建号+激活 Key+审计同事务,
已有用户拒绝接管(R11);CLI `AGENT_SYSTEM_DSN` 环境输入与 `--out` 0600 文件交付。
- 部署与 live 账户验收:**本任务执行部署与可验证项**;owner 浏览器输密码一步
按合同由用户完成(密码不交给 Agent)。