# PROGRESS · 合规五项合并交付(2026-09-30) > 产品 2026-09-30「合规与法律的前四个你可以帮我做吗」+「点踩要收集这一轮对话」。执行:Claude 直接执行,五个 fork 子代理各自在独立分支完成,Claude 合并到 `codex/compliance-launch-20260930` 并整体复验。 > 各项细节:`PROGRESS-legal-consent-20260930.md`、`PROGRESS-feedback-complaints-20260930.md`、`PROGRESS-account-deletion-20260930.md`、`PROGRESS-content-moderation-20260930.md`、`PROGRESS-reply-quality-20260930.md`。真机:`docs/testing/compliance-launch-20260930.md`。 ## 产品决定 | 项 | 决定 | |---|---| | 注销 | 7 天冷静期,期间重新登录可撤销;到期删除个人内容与账号;订单、支付、点数流水等 16 张表保留但去身份;剩余点数作废 | | 主体与联系方式 | 先用占位(`frontend/src/lib/legal-entity.ts` 一处),正式发布前以 `JYOTISHA_REQUIRE_LEGAL_ENTITY=1` 跑测试拦住占位与草稿 | | 客服 | 站内反馈表单 + 后台处理;投诉在注销时保留处理记录、清空联系方式(Claude 合并时按常规做法定,已写进注销弹窗与隐私政策草稿) | | 审核 | 输入命中不送模型不扣点;输出命中整段替换并退点;日志不存原文。自伤类改回求助句(12356)而非「不能讨论」,待法务确认 | | 点踩 | 保存这一轮 + 模型当时读到的上下文(点踩时由服务端按同一段拼接代码还原);90 天后清空正文只留统计;注销即删 | ## 合并中处理的问题 - 注销会自动删除所有带 user_id 的表,包括新建的 `user_feedback`:改为保留并在清除时置空 `contact`(迁移、TS 镜像、弹窗文案、隐私政策草稿四处一致)。 - `tests/test_api_server_security.py` 的全站页面清单:A/B/C/E 新增的 `terms`、`privacy`、`admin/account-deletions`、`admin/feedback`、`admin/reply-quality` 未登记,已补(三栏注释)。 ## 验证(Claude 实跑,基线 origin/staging `f898df55`,前端与 `5208f19b` 相同) | 项 | 结果 | |---|---| | tsc | 0 错 | | lint | 0 error / 126 warning(同基线) | | npm test 全量 | 4,470 / fail 24,失败名单与基线逐条相同;新增 52 条,消失 0 条 | | next build | `/` `○ Static`;`/terms`、`/privacy` 静态 | | 首屏 gzip-9 | 646,480 → 652,948 B(+1.0%,在 ±2% 内;首屏多一个脚本,是外壳里的协议重新同意检查) | | Python 快速门 | 1000 passed / 2 skipped;门内 npm 步用系统 Node 20,属已知环境失败 | ## 新增数据库表(均只加不改;本机无 Docker,未跑 test:db,部署到 staging 时第一次真实执行) `user_consents`(20260930010000)、`account_deletion_requests` 及清除函数(20260930020000)、`user_feedback` + `reply_ratings`(20260930030000)、`moderation_events`(20260930040000)、`reply_quality_snapshots`(20260930050000)。 ## 带给律师 / 需要产品提供 1. 运营主体全称、联系地址、客服邮箱(电话 / 微信可选)、ICP 备案号。 2. 协议与隐私政策草稿里 13 处【待确认】:在线支付是否开放与方式、退款规则与时限、管辖法院、服务器日志是否记 IP 与保存期、正式站启用的模型服务商及所在国、出生地点搜索服务商、是否启用 VedAstro、支付服务商名称、数据出境合规路径、订单与点数流水保存年限、内容审核日志保存期、备份与加密覆盖范围;另加投诉记录保存年限。 3. 接收用户数据的第三方:模型服务商(OpenAI / Anthropic / 兼容接口,后台配置)、Resend(境外)、Geoapify / Mapbox / GeoNames(可能境外)、VedAstro(境外,是否启用待确认)、易支付。 4. 内容审核:本地词表(12 条规则 5 类)与自伤求助热线待法务审;正式审核服务(阿里云内容安全)需要开通账号与密钥。 5. 生成式 AI 标识、算法备案(本轮未做)。 ## 环境缺口 无 Docker(数据库测试);无 staging 测试账号与真机(浏览器全流程、注销 7 天后真实清除);阿里云密钥;协议文本未经律师审定。 ## 门禁失败与修复(BUG-1118) 推 `2f6581ff` 后 staging 门禁 validate 失败(Gitea 日志需令牌,看不到)。本机排查:隐私扫描、Python 编译均通过;在本机用 PostgreSQL 17.11 预编译二进制 + 一个只支持 up / down / exec psql 的 `docker compose` 替身(脚本在会话临时目录,不入仓)跑全部 `database-*.test.ts`,比基线多 4 条失败:3 条是注销迁移的冻结触发器引用 `new.amount`(跨表复用,另两张表没有该列),1 条是表清单缺六张新表。修复后失败名单与基线逐条相同。 本机数据库测试方法(供以后无 Docker 时复用):`embedded-postgres-binaries-linux-amd64-17.x.jar` 解出 `initdb/pg_ctl/postgres`;用 `pg` 客户端重放 `deploy/postgres/001-bootstrap-roles.sh` 做模板库;替身 `docker` 在 `compose up` 时复制模板启动实例、`exec psql` 用 `pg` 客户端执行 `-Atc` / `-f -`。已知替身局限:不支持 `pg_dump`、部署脚本类测试(基线同样 6 条失败)。