feat(account): self-service deletion with a 7-day cooling-off period

Request signs out everywhere and freezes paid routes (423 + DB triggers);
signing in within 7 days shows the pending gate with 撤销注销. A periodic
idempotent worker purges personal content afterwards and keeps finance
rows against a tombstoned identity. Read-only admin list.

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:
Jesse_Chen
2026-09-30 09:42:11 +08:00
co-authored by Claude Opus 5.5
parent 3c8123d912
commit 96adbce3a9
30 changed files with 1480 additions and 2 deletions
+2
View File
@@ -327,6 +327,8 @@ Jyotisha 的可见文案是产品的一部分。正确性红线(真实性、
「解锁完整咨询」兑换弹窗只在第一次因点数不足发不出消息时弹(2026-09-28 起,不再进首页就弹)。说明句写「问题还在输入框里。填写兑换码,点数到账就能发送,生时校正与完整解读也能用。」;到账后写「点数已到账,回到输入框点发送就行。」。不要再写「入门问题已经准备好」,弹出时刚被拦下的是用户自己的问题。
注销账号(2026-09-30):按钮写「注销账号…」,确认按钮写「确认注销」。说明必须三件事都说全:「7 天内重新登录可以撤销」、会被永久删除的内容清单、「剩余点数和会员权益会一并作废,不退款。订单和点数流水按法规保留,但不再与你的身份关联。」联系邮箱只从 `lib/legal-entity.ts` 取。冷静期内重新登录的全屏提示标题「账号注销中」,正文「这个账号将在 {日期} 永久删除。在那之前,你可以撤销注销,恢复全部内容。」按钮只有「退出登录」「撤销注销」。不要写「我们很遗憾」「确定要离开吗」这类挽留话。
## 首屏没加载完
脚本没跑起来、关键文件没下到,或浏览器版本过旧时,转圈停在「正在载入账户」不会自己结束。超时后只留这一屏,不自动刷新: