Files
airz-uniapp/docs/superpowers/plans/2026-10-12-agreement-consents.md
hujun c95482a0f3 feat: 实现协议全文与同意记录功能
新增协议全文后台管理、版本化发布及本人同意记录功能,支持可撤销授权;完善资料与授权相关边界提示,调整评估提交时的资料与授权校验逻辑,同步更新相关页面文案与路由。
2026-10-14 14:53:13 +08:00

18 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 协议全文与同意记录实施计划
> 本轮用户已授权继续前两项,直接在现有会话执行,不创建提交/推送。三个互不覆盖的子任务按dispatching-parallel-agents处理;共享数据库测试由主控顺序执行。
**目标:** 内容后台能够发布不可变协议版本,小程序可读全文,服务端保存本人可追溯的同意与可选撤销记录。
**架构:** fa_acticle继续承载草稿,新增agreement_revision保留正式版本,user_consent保存幂等同意及撤销命令,首次撤销时间保持。公开全文/鉴权同意API与现有登录契约兼容,短信仍关闭,正式正文不编造。技术栈沿用PHP7.4/ThinkPHP5/MySQL5.7/Redis、uni-app x/UTS。
**设计:** [已授权范围](../specs/2026-10-12-agreement-consents-design.md)。不改融资28项输入/产品模块、不接生产/真实短信/模型,不执行生产迁移。
- [x] 协议发布:AgreementRegistry及后台Agreements使用内容CSRF和权限,红测试先证明服务缺失;冻结(code,version)唯一快照、正文修订须新版本,current与发布同顺序锁定,旧入口不能绕过。提供database/agreement-revision-schema.sql,纯校验/发布测试通过。
- [x] 同意服务:先编写tests/agreements.php并在新隔离环境取得红测试;ConsentLedger执行新同意当前版校验、旧键原回执、账户锁/会话重核、双用途撤销及严格字段/分页校验;新增api/v1/Agreements控制器及完整匹配路由,提供database/user-consent-schema.sql并更新期望schema。
- [x] 前端:新增services/agreements.uts、匿名全文页和本人记录页,现有登录/隐私/资料链接接通。所见版本勾选、认证后保存、未知原键手动确认、账户/代次守卫;参数/守卫红绿测试完成,30项纯源码、31项微信分包通过,最终29页Android 12:21:51/微信12:22:35编译成功。初轮78项与最终复审48项受控页面检查分开保留。
- [x] 隔离验证:全新所属MySQL/Redis/ROOT,初始26表到两表定向安装后的28表基线。按顺序执行协议HTTP/事务/权限/历史/并发、原会话/资料/短信账户回归;测试前后核结构/触发器/空表/零键/进程归属/模型屏蔽。
- [x] 收口:独立只读复审关闭全部明确P1/P2,14项PHP语法和两仓diff通过;源码/测试回执、开发说明与交接已更新。最终前端回执final-return-receipt.json绑定10文件摘要及最新两端编译,初轮与复审证据不累计。精确清理本轮数据库/服务及夹具,保留私密证据;清理末端检查失败已通过后续只读复核补证,具体原因未确认。未发布正文/未部署/真实业务未验收明确记录。
每项只改所属文件,已有短信代码、旧候选和历史发布证据保持。前端新增两页面预计总29页,63业务任务编号不扩增;正式协议、资料留存及真实渠道条件不擅自批准。