feat: 实现协议全文与同意记录功能

新增协议全文后台管理、版本化发布及本人同意记录功能,支持可撤销授权;完善资料与授权相关边界提示,调整评估提交时的资料与授权校验逻辑,同步更新相关页面文案与路由。
This commit is contained in:
hujun
2026-10-14 14:53:13 +08:00
parent b418969e92
commit c95482a0f3
58 changed files with 3269 additions and 146 deletions
+232 -1
View File
@@ -1,6 +1,237 @@
# AI融资项目新会话交接
## 当前状态:2026-10-10 产品AI条件分析与后台人工复核已回撤
## 新会话先读:2026-10-14 进度已整理
本轮按用户要求记录进度,未继续开发、重新部署、调用模型或执行验收。开发进度2.36/1.46、技术文档v2.04/1.17已同步。先读取本节和下方最新发布记录,再结合用户的新需求接续;下方旧记录中的“未部署/未迁移”不作为当前待办。
- 线上后端及管理端:20261014-product-ai-r1,2026-10-14 14:19:02(Asia/Shanghai)恢复入口/worker;API为https://airz.hqling.cloud/api/v1,管理端入口https://airz.hqling.cloud/index/login。原16字段还原已于上午发布,本次不再迁移,31产品与旧报告保留。
- 已确认产品规则:仅条件项/关联条件第一列手输,其他列保留结构控件;不推荐无触发结果,推荐/不推荐模板统一 `{X}`,AI决定正文适用性并顺序填值。自定义硬条件三态影响推荐,资料不足不能判为不符;基础分80可配置,标准规则、算分、排序与保存前复算由服务端控制。不要恢复已撤回的整页全手输方案或原产品原文AI整理功能。
- 小程序:申请条件及其解析保持,不新增“AI 根据自填资料判断”等来源说明;有效期和未填可选项隐藏,列表/对比补匹配度、Logo和排序文案,区分条件不符、资料不足与待确认。当前源码已配套,本地微信29页编译及111项展示/路由检查通过;用户自行发行,本次新版版本号与发行时间尚未反馈。
- 发布证据:后端715项本地纯检查、133项服务器文件摘要、6个上架产品编译、30表维护期一致性、29服务器/31公网HTTPS及回退预检通过,29份备份已下载核验;服务在发布核验时正常。证据根D:/AAdesk/202609/airz-backups/production-release/airz-product-ai-20261014,以release-receipt.json为发布时回执。本节是记录既有结果,不是新的服务器实测;不要重跑发布/迁移/初始化脚本或改写旧回执。
- 尚未完成:真机、真实模型判断质量及正式验收。用户此前暂缓验收,不自动继续验收或发起付费模型调用。照片在线长期保存、备份滚动7天;照片/短信仍关闭,正式协议未发布,主体和联系方式暂无,保留待填,不重复追问;备份定时触发和真实照片恢复未验收。
- 工作区:前端D:/WorkSpace/cyun/ai融资,后端D:/AAdesk/202609/airz;两仓已有大量未提交改动,全部保留,不擅自提交/推送/覆盖。默认后端.env指向正式配置,测试只能使用显式隔离入口;无独立测试服务器,小程序由用户部署。
接续时先处理用户的新需求或反馈。若用户报告小程序已发行,再登记版本、时间及对应源码摘要,并按具体问题处理;不重复已完成的后端发布和产品表还原。进度与技术范围分别见[开发进度](开发进度.md)和[开发文档](开发文档.md)。
## 当前工作:2026-10-14 自定义AI条件与 `{X}` 后端已部署
用户明确要求“部署一下后端,我来发行小程序”。现有https://airz.hqling.cloud已发布20261014-product-ai-r1,14:18:04完成11个运行文件替换,14:19:02恢复入口/worker(Asia/Shanghai)。条件第一列手输、自定义硬/软条件AI三态判断、推荐/不推荐正文适用性及多个 `{X}` 顺序填值已配套上线;不推荐移除触发结果,复用现有一次评估请求。小程序由用户发行,本轮不再修改其运行代码。
发布范围为ProductPresentation、ProductPublication、ProductAiConditions、ProductAiTemplates、ProductMatching、AssessmentNeedsReport、AnalysisTasks、Assessment、DeepSeekClient与管理端product.js/product/form.html。133项运行/依赖摘要核验、现有6个上架产品候选编译、30表维护期业务行及完整结构一致性通过,产品仍原16字段/31产品,完整旧表保持。本轮无需迁移、没有业务数据导入或重算历史报告,仅同步fa_config资源版本值和site.php对应版本,.env/权限及其他配置保持。
715项本地纯检查和10个源码语法检查通过,候选11文件与前轮已验证最终摘要一致;29项服务器和31项公网可信HTTPS及精确回退预检通过。三服务active、worker ready,最后心跳1秒,活动评估/模型调用及三队列0。维护期未触发真实模型/短信,真机及真实模型判断质量仍未验收。最初本地检查的Windows默认编码/隔离类加载入口失败已修正为UTF-8与已有仓库外隔离bootstrap后通过,不计入成功数量;宝塔调查弹窗只关闭、没有提交调查。
服务器归档/root/airz-product-ai-20261014,本机D:/AAdesk/202609/airz-backups/production-release/airz-product-ai-20261014。29份before源码、site/Nginx、数据库灾难备份与回执已下载并独立核摘要,目录权限限制为当前Windows用户/SYSTEM;不下载.env。临时传输和凭据脚本已清理,宝塔退出并关闭专用浏览器。以manifest.json、verify.json、final-verification.json、public-smoke.json、backup-download.json、server-cleanup.json、panel-cleanup.json和release-receipt.json为本轮证据;详细说明见后端database/product-ai-release-20261014.md。
当前小程序源码/前轮微信29页编译及111项展示检查保持,申请条件保持且不新增AI来源说明,用户自行发行。下方“自定义AI条件和 `{X}` 未部署”是前轮历史状态。本轮不提交/推送/PR,不重跑产品表迁移;以后回退先保护新数据并核对新AI配置/报告与旧代码的兼容性,不能整库覆盖或照旧重放发布脚本。
## 当前工作:2026-10-14 小程序产品展示配套完成(本地)
用户确认申请条件保持,不新增“AI 根据自填资料判断”等来源说明,并同意简化详情、同步匹配列表与对比展示。本轮仅调整小程序 matches 服务和 product/matches/compare 三页。申请条件模板、规则解析、既有资料准备内容保持;AI 已填模板正文保留,只移除自动判断理由中的自填来源后缀,关联依据显示中文资料名称或实际值,不展示内部英文编号。
详情和对比去掉有效期,未填写的额度、利率、期限、还款、渠道及资料来源等可选项隐藏;对比中所有产品均未填写时隐藏整行,部分有值时保留并以“—”显示缺失列。列表及对比补机构 Logo 与实际匹配度,0%正常展示,条件不符/资料不足/旧结果无分数时不造分。推荐理由条数不再当作满足条件数量;排序文案遵循冻结版本,对比仍按所选顺序。资料缺失显示“资料不足”,配置缺失或尚未判断显示“待确认”,不改服务端准入、评分或排序算法。
最终111项针对性检查通过:23项隔离UTS展示、38项实际Chrome页面与交互、19项现有产品展示、31项分包路由及新微信产物检查,失败与重复运行不累计。手机390×844和桌面1280×900无页面横向溢出、错误覆盖层或运行/控制台错误;浏览器QA使用合成数据并拦截所有外部请求,未发业务POST。HBuilderX 5.26微信29页编译成功,H5编译成功但存在既有services/layout.uts的onResize/窗口回调类型声明警告,本轮不扩展修复。真机尚未验证。
证据根:D:/AAdesk/202609/airz-backups/product-miniapp-sync-20261014,before/before-docs保留本轮修改前状态;service-qa.json、ui-qa.json及手机/桌面截图保留验证结果,verification.json绑定最终源码摘要与编译结果,清理以cleanup.json为准。Browser插件未提供,使用已有Playwright/Chrome;首次CLI预览启动中断后重新启动成功,HBuilderX默认浏览器自动打开首页时未在拦截QA范围内,无法据此保证整轮没有正式只读GET。QA路由初始化失败改为全新导航后通过,未改业务路由。
本轮未修改或初始化后端、连接数据库、调用真实模型、部署、发行、提交或推送。此前自定义AI条件及统一 `{X}` 后端/管理端实现仍未发布,后续应配套核对完整发布范围;当前小程序源码和本地微信编译产物已更新,用户自行发行。保留既有未提交改动,融资28项不变;不要用默认后端.env启动测试,或将本轮本地完成视为后端已上线。
## 当前工作:2026-10-14 推荐与不推荐统一 `{X}`(本地)
用户要求不推荐移除“触发结果”,推荐/不推荐模板只用 `{X}`。管理端两个表格均保留关联条件、模板内容、操作三列,关联条件继续手输;多个 `{X}` 按出现顺序填入不同内容。AI 根据正文选择是否适用,不能因资料不足写成明确不符合。标准准入、加减分及排名仍由服务端决定,模板不新增门槛。
新配置 `aiTemplates` 精确五键,保存于原16字段的 `other`,无需DDL。旧六种变量编辑时转为 `{X}`,原 fail/unknown 模板均转换为 caution,允许同条件两份正文由 AI 分别选择;历史报告及未编辑旧冻结目录保持。模型八键 `templateRenderings` 与自定义条件判断合入现有一次请求,绑定版本/摘要、事实引用、精确槽数、金额/时长单位及保存前复算均校验。单次合计32条 AI 工作、32槽、48KB实际关联描述,超量明确尚未判断;不适用对象及 profileOnly 已移除规则的绑定不额外评估。
本轮真实 Chrome 表单51项、隔离假模型实际任务49项通过;涵盖新保存/回显、旧模板转换、手机布局、多槽顺序、正文选择、三态、非法输出无半报告、冻结重试、旧报告保持、租约/用量和归属。另运行新模板纯测试及编辑/发布/规则/存储/AI条件回归、PHP/JS语法检查;最终数量和源码摘要以本轮 `verification.json` 为准,失败及重复不累计。
证据根:D:/AAdesk/202609/airz-backups/product-template-x-20261014,before及before-docs保留前轮状态,template-ui-qa.json/template-task-qa.json/qa-summary.json与截图保留证据,所属服务清理以cleanup.json为准。Browser插件未提供,使用已有Playwright/Chrome;仅仓库外隔离ROOT、本机合成MySQL/Redis/HTTP与假模型,不读取正式.env、不连接正式库或调用真实模型。真实模型的正文选择与填值质量尚未付费验证,本轮未部署/提交/推送或修改小程序运行代码。
本轮运行变更为7个后端库(新ProductAiTemplates及ProductPresentation、ProductPublication、ProductMatching、AssessmentNeedsReport、AnalysisTasks、Assessment)与两个管理端文件;前轮自定义AI条件配套仍未部署,后续发布必须连同其ProductAiConditions和DeepSeekClient等一起核对,不能仅覆盖页面。不得用此前产品表恢复授权自动部署新功能或重跑正式迁移;产品仍原16字段,小程序由用户发行。
## 当前工作:2026-10-14 条件第一列手输与自定义 AI 匹配(本地)
2026-10-14 最新:按用户纠正,仅准入/加减分的“条件项”和推荐/不推荐的“关联条件”第一列改为普通手输,其他列保留结构控件。隐藏内部英文编号,地区/用途及枚举多选改为勾选;改名保留值、对象与分值,模板按中文名称关联及回显。自定义硬/软条件与独立文字模板接入现有一次 AI 评估,标准规则保持,服务端算分、排序和保存前复算;旧快照不重算。产品仍为原16字段,配置保存在other,本轮无需DDL。代码及隔离Chrome/假模型任务验证通过,尚未部署本轮修改或调用真实模型。
新增可选manualSoftConditions(原硬条件七键加points)与textTemplates(id/condition/outcome/text),已有模板仍存ruleId;名称重名和删除原引用拦保存,旧独立文字条件碰同名仍保持原语义。同产品相同文字关联共用判断,避免推荐/不推荐矛盾。AI明确不符使硬准入不推荐,未知不排名;软项仅满足时加减分,0—100在所有分值相加后统一限制;文字模板仅决定理由展示。
判断严格绑定冻结产品id/版本/条件hash及白名单事实,完整结果随报告保存。复用原调用、预算、租约和用量;一次最多32个不同判断/48KB条件描述,超范围明确尚未判断,不能按满足处理。8192输出预算及真实供应商判断质量尚未付费验证;照片未参与评估,不新增28项融资字段,不恢复已撤回的产品原文AI整理。
证据根:D:/AAdesk/202609/airz-backups/product-first-column-20261014;root-checks.json、admin-qa.json、admin-edge-qa.json、ai-task-qa.json及verification.json。Chrome1280×900/390×844实际保存、回显、中文关联、改名、版本冲突和勾选通过;实际AnalysisTasks假模型三态、加减分、重试冻结、错绑定拒绝、迟到租约与用量通过;旧匹配/报告事务回归通过,失败/重复执行不计成功。原AI测试入口默认ROOT问题已修为仓库外无.env,最终测试使用本机显式隔离库/Redis且真实模型构造阻断,未连接正式库。测试进程最终状态以cleanup.json为准。
本轮只改后端/管理端10个运行文件及3个测试,未部署、迁移正式库、提交或推送。发布须配套ProductPresentation、ProductPublication、ProductAiConditions、ProductMatching、AssessmentNeedsReport、AnalysisTasks、Assessment、DeepSeekClient与product.js/form.html,不能只覆盖管理端文件。上午已发布的产品16字段及其他功能按下方发布记录保持。误扩大的整页文字方案已撤回,before及废弃方案归档位于D:/AAdesk/202609/airz-backups/product-text-ai-20261014;不要恢复ProductTextRules/ProductAiMatching废弃文件。
## 当前工作:2026-10-14 正式产品表还原与配套发布
用户明确授权“正式服务器也一起处理并部署”。https://airz.hqling.cloud已发布20261014-product-original-r1,fa_product从实际29列恢复原16个字段,31产品保留;仍使用的匹配参数在原other文本配置,expectation/quota恢复额度/期限说明。额外bank_logo经核对31条均为空后移除;6产品旧日期限制解除并递增内部版本,产品开放通过上下架管理。历史冻结报告不重算,其余28业务表数据/结构、账号权限与.env保持。
17文件定向发布、131运行/依赖摘要、产品逐字段/其他业务表一致性、服务器和公网可信HTTPS、精确回退预检通过,入口与worker已恢复;三服务active、worker ready/idle、活动评估/调用及队列0。本地613项迁移与产品回归及14项发布工具边界检查通过;此前页面/微信编译是前轮证据。小程序由用户重新编译发行,本轮没有发行小程序、真实模型/短信调用、业务导入、提交或推送,真机和正式验收仍待。
证据及备份:D:/AAdesk/202609/airz-backups/production-release/airz-product-original-20261014;服务器/root/airz-product-original-20261014。完整旧产品表、before源码及私密灾难备份保留;恢复须重新暂停写入并保护后续数据,按本轮migration-applied.json精确双表RENAME及恢复源码,不整库覆盖。备份下载和清理以backup-download.json/server-cleanup.json/panel-cleanup.json为准。详细说明:后端database/product-original-release-20261014.md。下方“未部署/未迁移”和仅编辑清空日期为历史状态。
## 当前工作:2026-10-13 管理端移除产品有效期(本地)
用户要求去掉生效日期和失效时间。后台新增/编辑页已移除两输入;控制器统一在保存和发布预检将valid_from/valid_until设为NULL,客户端补传日期也不能恢复限制。旧产品在下一次编辑保存后解除原日期约束,未编辑的旧数据不批量改写;旧规则保护、版本冲突、历史冻结报告及内部日期兼容保持。产品状态通过上架/下架管理,不改融资28项或小程序运行源码。
本轮622项针对性检查通过:纯内存565项、新16/旧28列实际事务保存各12项、管理端实际Chrome交互33项;含新增/回显/上下架、过期及未来旧产品预检/保存、补传日期覆盖、旧窗口冲突。1280×900与390×844,无页面错误/警告或外部请求;Browser插件未提供,使用已有Playwright/Chrome。PHP语法与差异检查通过,失败或重复运行不累计。证据:D:/AAdesk/202609/airz-backups/product-remove-dates-20261013,before保留修改前源码,verification.json绑定最终摘要,资源与合成行清理见cleanup.json。
仅本地修改两个管理端运行文件及一份纯内存测试,未部署、提交、推送、正式库访问或真实模型调用;尚未发行的小程序和此前配套后端发布范围保持。下方日期选填描述为历史状态,以本段为准。
## 当前工作:2026-10-13 准入条件统一录入完成(本地)
用户要求移除独立“地区与用途”,统一点击“添加条件”;条件项支持下拉建议或手输入。管理端已实现,已有地区/用途转换为条件行回显,按对象分别维护用途;重复地区/同一对象重复用途、空条件阻止提交。已知名称继续映射现有规则,任意自定义名称与文字要求保存在原other展示配置的可选manualConditions列表,仅对适用对象提示人工核实、unknown且无推荐排名;既有硬性不符仍不推荐,不重算旧报告。
本轮1013项针对性检查通过,其中管理端实际Chrome交互42项(1280×900、390×844),自定义纯逻辑29项、实际任务/保存/报告读取12项;其余为编辑/发布/规则/评分/存储、新16/旧28列兼容、215项历史报告/PDF回归。页面身份、非空、无错误覆盖层、控制台无错误/警告及外部请求为0。使用现有Playwright/Chrome,因为Browser插件未提供。失败或重复运行不累计,前轮2120项为历史记录。
仅改后端/管理端六个运行文件与两份测试,没有新增表列、小程序运行代码、正式库写入、部署、提交、推送或真实模型调用。发布仍须配套此前原16字段实现,不能仅覆盖旧三个管理端文件。证据根:D:/AAdesk/202609/airz-backups/product-condition-input-20261013,verification.json绑定最终八个源码摘要;before保留本轮修改前文件,截图与admin-qa.json保留页面证据。所属进程、合成行恢复与端口释放以cleanup.json为准。
测试环境首次后台MySQL进程意外退出,改为持续会话启动后验证通过;历史PDF测试的空目录和依赖前提在全新本机合成库airz_product_test_2026101320、已有锁定PDF引擎/字体副本中补齐后通过,不改业务代码。不要重跑start.py/history-env.py/旧setup.py或使用默认.env测试。下一步可在已有本地管理端刷新核对;服务器与小程序发行安排保持。
## 当前工作:2026-10-13 原16字段与文本配置本地实施完成
用户已选择恢复16个原字段名,匹配参数、可选日期和内部版本收纳到原other文本配置;expectation/quota恢复为额度/期限说明。管理端仅产品名称、适用对象为基本必填(新建默认企业),机构/类型/来源/额度/期限/利率/日期等可空,填写后仍校验;资料不足显示待核实,不进入推荐排名。保留InnoDB事务、varchar(100)产品名与状态默认草稿,旧冻结报告不重算。
本轮2120项检查通过:纯转换/发布/编辑/规则/评分、16与28字段实际模型及目录、评估提交/重评/助手/匹配接口、历史报告/PDF、迁移拒绝与回撤、UTS及实际页面;管理端15项、小程序受控H5 8项,1280×900和390×844无应用控制台错误。微信29页编译成功。失败和重复运行不累计,前轮582/980项不另加。
本轮只在专用本机合成MySQL/Redis/HTTP/H5环境验证,不读取正式.env、不访问正式库、不调用真实模型、未部署/提交/推送。正式产品表仍未迁移;发布应配套后端与管理端,不能只覆盖原三个文件。小程序仍由用户发行,真机、正式数据预检和用户验收尚未完成。
证据根:D:/AAdesk/202609/airz-backups/product-original-storage-20261013,verification.json绑定源码摘要,migration-qa.json记录11项演练,admin-qa.json/mobile-qa.json与截图记录页面验证。合成迁移保留before原表与精确回撤SQL;工具不能自动暂停写入,生产转换须另按目标、备份和维护窗口授权。
所属服务停止和端口释放以cleanup.json为准,合成库与原表备份保留;不要重跑创建脚本,不使用默认.env进行测试。下一步可看管理端页面;若要上线,再按配套代码和产品表转换的具体范围准备发布。
## 前轮历史:2026-10-13 产品表原字段核对与有效期选填
用户提供原始16字段产品表,要求尽可能还原并减少必填。当前28字段依赖保存/发布/目录SQL/匹配;完整还原建议恢复expectation/quota并把机器参数和内部版本移到原other配置,保留InnoDB事务及varchar(100)防截断,需完整数据转换。已异步询问“恢复物理字段/仅简化管理端”,尚未收到选择;物理还原和其他字段放宽未实施,不执行旧database/migrate.py、不删列或覆盖建表。
两种方案共通的日期选填已完成:NULL表示无对应日期边界,填写日期仍校验并限制未来/过期,目录/冻结匹配/当前可用性及UTS文案同步。155发布、234编辑、151旧匹配、18UTS、24实际隔离MySQL共582项通过,PHP语法/差异检查和微信29页重新编译成功。未部署/正式库访问/模型调用/提交,隔离MySQL已停止、端口释放,既有数据回滚并核对。备份与证据:D:/AAdesk/202609/airz-backups/product-original-20261013。详情见[原字段与选填核对](产品表还原与选填核对-20261013.md);此前980项为前轮历史验证。
## 前轮状态:2026-10-13 产品机构库按客户原型完成本地实施
用户确认前轮十项建议并要求以原型为准,确认基础分默认80可配置、满足软条件时加减分,未知不计分。管理端八标签、列表筛选/视图/规则/上下架、保存回显/版本/万元转换已修复;规则、模板、评分、资料与真实Logo/顾问电话接入后端及小程序。新目录v2按评分排序,旧v1保持原结果;原型未采集指标为待核实,不增加融资28项,不恢复已撤回的产品AI分析。共980项检查和微信29页编译通过,详见[实施记录](产品机构库原型实施-20261013.md)。
本轮未部署、提交或调用真实模型,两仓既有改动保留。后台前三文件已先备份,配置扩展无需DDL;发布必须同步ProductPresentation、匹配/DTO和管理端相关文件,不能仅覆盖原三文件。真实出处/Logo/顾问渠道由运营核实;本地测试MySQL/Redis/HTTP/H5服务已停止,证据和合成库留在D:/AAdesk/202609/airz-backups/product-prototype-20261013。不要重跑旧setup/reset脚本或直接用默认.env做测试(默认库为远端正式库)。下一步可核对截图/页面,再按确认范围发布后端;小程序仍由用户发行。正式协议/照片/短信及长期照片/7天备份安排见下方前轮状态。
## 前轮状态:2026-10-13 存储、7天滚动备份与密钥恢复准备完成
用户授权继续唯一生产服务器的存储准备,明确在线照片长期保存、备份副本滚动7天。私有目录`/www/wwwroot/xctai.cn/private-documents`已建,www:www/0700、实际FPM合成读写/0600检查通过并清理临时文件;既有.env仅追加directory及enabled=false。照片/短信仍关闭,三张新表0行,正式协议未发布;没有业务数据清理或照片固定到期任务。见[落地记录](照片存储配置落地-20261013.md)。
备份工具在Web外root-only目录,独立`/etc/cron.d/airz-private-photos`每天04:20(Asia/Shanghai),备份目录`/www/backup/airz-private-documents`为root:root/0700,文件0600。工具用REPEATABLE READ只读快照及不可变密文形成对应归档,缺文件或异常失败;每次成功后只清理超过7天且完整校验有效的本工具旧包,不删除在线照片、孤立密文、原SQL或业务行。故障可延迟清理,需查看受控日志处理;原04:00数据库任务和保留3份保持,没有异地照片副本。
共享AES密钥已有独立本机DPAPI CurrentUser副本:D:/AAdesk/202609/airz-backups/key-escrow/production-data-key.dpapi.json,ACL仅当前用户/SYSTEM。独立进程指纹和合成GCM恢复校验通过,无明文密钥文件、没有轮换密钥或持久RSA私钥;换机/重装需受控迁移原Windows用户配置,不能说灾难恢复全面完成。
10:55:12最终核对四服务active,FPM检查、目录权限、关闭状态、配置变更范围及首份空快照校验通过;Windows文件测试6通过/1跳过、Linux7项通过。定时任务首次触发和实际用户照片恢复尚未验证,不计功能/正式验收。宝塔退出、专用浏览器关闭、临时登录/命令脚本已清理。私密归档D:/AAdesk/202609/airz-backups/private-storage-setup/20261013-01:以final-verification-retry.json为成功回执,isolation-hardening.json是最终工具摘要;失败回执保留,不能计成功,不重放prepare/install或再次导出密钥。服务端environment.before.private只留root-only目录,不下载.env。
协议草案同步7天备份规则并重生成格式/摘要,未正式发布。主体、联系方式和申请处理责任暂无,删除后元数据30天/其余证据期限仍待确认,不实施其清理。下一项在这些信息具备时定稿协议并按明确范围开放照片;保留待填,不重复追问、不发布占位正文,也不接续暂缓的真机或正式验收。撤回配置时先只停新增cron并保留备份/密钥,.env必须匹配本轮after摘要且仍关闭、无新照片才能用服务器before恢复;禁止整库覆盖或清空在线目录。
进度2.32/1.42、开发文档v2.00/1.13,14前端运行摘要、29页/63任务/融资28项及产品AI回撤保持;小程序用户发行,未提交/推送/PR。下方保留各轮历史状态,接续时以本节及落地回执为准。
## 前轮状态:2026-10-13 在线照片长期保存已确认,规则已修订
用户解释后明确“希望长期保存”。当前在线照片在账户正常使用且仍需本人保管时长期保存,不设置上传起固定到期时间,原30天建议取消。本人删除、用途结束、撤销作为保存依据的同意及注销申请仍按规则处理;不把长期保存写成永久保存保证或撤销后任意留存。照片备份7天和物理删除完成后元数据30天仍仅建议,不推导为在线照片期限。下方各轮30天为历史建议,后续不得照旧新增照片到期删除任务。
已更新[照片规则](协议草案/照片保存与删除规则.md)、隐私政策/资料使用协议、草案入口和[存储方案](私有照片存储与备份方案-20261013.md),格式核对及[草案摘要](协议草案/草案清单.json)已重新生成;用户协议与数据授权正文保持。既有PrivateDocuments没有固定到期删除,此次不改前后端运行代码或增加任务/配置。
本次仅本地修订,不访问生产或读取.env、不正式发布/启用/验收/发行;照片和短信仍关闭,主体及删除联系方式用户暂无,目录权限/照片备份/独立密钥恢复还未落实。前轮只读服务器证据及归档保持,不能改写其摘要或重跑发布;原14前端运行摘要保持。进度2.31/1.41、开发文档v1.99/1.12,29页/63任务/融资28项、产品AI回撤及小程序用户发行安排保持,无提交/推送/PR。
下一项依当前长期保存规则准备现有服务器的关闭状态目录权限及备份恢复安排,删除申请处理和其他副本期限单独落实;生产写入按明确范围和恢复办法推进,不新增在线照片到期删除引擎、不重复追问暂无主体信息、不接续暂缓的真机或正式验收。
## 前轮状态:2026-10-13 私有存储/备份只读核对完成,尚未配置
用户继续下一步且先不验收,已对唯一现有服务器做只读核对并形成[私有照片存储与备份方案](私有照片存储与备份方案-20261013.md)。推荐 `/www/wwwroot/xctai.cn/private-documents`(public同级),www:www/0700、文件0600;它符合现有public/.user.ini的open_basedir,不能只看CLI的空限制。目录不存在、祖先无symlink、无公开root/alias覆盖;本轮没有创建目录、修改immutable配置或放宽路径权限。
生产版本保持20261012-agreement-documents-r1,照片enabled=false/directory空、短信关闭。10:03:51三张新表均0行、活动评估/模型调用及三队列0;10:10:47三服务active,.env/本站Nginx/.user.ini/PHP/FPM五配置摘要保持(Asia/Shanghai)。这些是本轮时点检查,不是功能验收或整时段模型计费统计。未DDL/业务写入、权限/角色变更、模型/短信请求、发行或提交/推送/PR。
宝塔当前使用data/db/分库,旧default.db为空不能据此判无备份。真实MySQL备份每天04:00、目标ALL、localhost保留3份;10-11/12/13三份airz gzip只读解压通过,最新04:00:01含三张新表,未恢复。照片密文没有日常备份,已知发布包不含.env,尚无独立生产密钥恢复证据;现有密钥32字节/GCM内存往返正常不等于已托管。同盘剩余约166GiB,不代表异地或主机故障保护;地域、云快照和其他副本未核实。
私密检查归档:D:/AAdesk/202609/airz-backups/private-storage-preflight/20261013-01;storage-inventory/backup-discovery/backup-php-detail/preferred-storage/final-guards五回执可接续。panel-cleanup证实宝塔退出、专用浏览器关闭、login.private.js及command.private.js删除;权限核对结果以preferred-storage的worker字段为准。后续复用既有DPAPI凭据,不索取/输出密码、不下载.env,不覆盖本轮或上轮发布回执,不重跑已完成部署。
下一项可准备关闭状态下的推荐目录权限、root-only照片备份目录和独立密钥恢复安排,具体路径/权限/备份排除/删除与恢复保护见方案;尚未执行,不能把只读核对写成生产配置完成。实际生产写入需明确对应范围和恢复办法,不凭此前29文件部署授权自动增加计划任务、传出密钥或开放照片。主体/隐私删除联系方式用户暂无,继续保留待填;照片30天/备份7天/物理删除完成后元数据30天只是建议,不能设置或发布为已生效。
原四份协议正文/草案摘要、前后端运行源码未改,正式正文未发布,照片/短信仍关闭;用户先不验收,小程序由用户发行。进度2.30/1.40、开发文档v1.98/1.11;29页/63任务/融资28项、同事产品库和产品AI回撤保持。下方为各轮历史状态,按当前状态接续,不自动恢复真机/正式签收。
## 前轮状态:2026-10-13 协议草案已整理,暂缓验收
用户先不验收,要求继续下一步;本轮完成[四份协议草案及待定信息](协议草案/README.md)和[照片保存/删除规则](协议草案/照片保存与删除规则.md)。用户明确暂时没有平台对外名称、运营主体和隐私/删除联系方式,正文保留明确待填位置,不追问或编造。四份UTF-8无BOM纯文本可定稿后用于现有协议后台,不提供自动导入/发布。
照片只供本人保存、查看、删除,未进入评估/模型/OCR/外部查询。撤销资料授权阻止旧同意记录的新上传,不自动删除既有文件;本人仍能管理。在线删除、元数据、同意版本证据和备份副本分别说明。数据授权仍只是本地意向,不充当第三方凭证、实际查询或自填/AI的处理门禁。AI实际经腾讯云TokenHub调用DeepSeek,服务方信息/留存/地域及处理依据待核对。
期限建议为照片上传起30天、照片备份7天、完成删除后元数据30天,全部尚待确认,不是已启用规则。现有代码没有自动到期/元数据/备份清理,不新增复杂引擎;要启用时落实最小授权运维清理与备份恢复保护。账号/报告/对话/同意/日志期限单独定稿,不能套用照片期限。正式目录/ACL、备份实际范围、密钥恢复和执行人仍未核对。
下一步可核对现有服务器私有存储/权限及备份方案,仍只使用现有服务器;实际开放须补主体/联系方式、确认期限并落实规则。当前没有发布占位正文或开启照片,短信仍关闭、正式外部查询未接入;后端发布仍为20261012-agreement-documents-r1,小程序由用户自行发行。本轮不连接生产、验收、发模型/短信、提交/推送/PR。
四份正文通过现有后端纯文本/长度/code-scope校验,时间使用仅内存2099格式夹具而非真实生效日期;本地摘要/编码/链接核对不算功能验收。草案源码绑定[清单](协议草案/草案清单.json),修改后需更新。进度2.29/1.39、文档v1.97/1.10,29页面/63任务/融资28项及产品AI回撤保持。下方2026-10-12服务状态是历史发布时点,不是本轮线上重测;不能重跑已完成发布或已清理测试工具。
## 前轮状态:2026-10-12 唯一现有服务器已部署
用户明确授权“就一个服务器,没有专门的测试服务器,直接部署吧,小程序我自己部署”。后端已发布20261012-agreement-documents-r1;不再要求另找独立测试服务器。前端APP_ENVIRONMENT=production,正式API=https://airz.hqling.cloud/api/v1,test地址留空、demo=false;小程序由用户从当前完整29页源码重新编译发行,本轮没有上传微信或发布H5,也未重新编译目标端。
发布29文件、三张空表(fa_agreement_revision/fa_user_consent/fa_private_document)、协议五节点和独立运营v2模板;7已有源码/22新增,旧26表、已有角色/账号绑定、产品库、.env/模型与非版本site配置保持。17:00:39完成备份,17:00:58更新,17:05:07恢复入口/worker,17:10:26最终核验(Asia/Shanghai)。27服务器HTTPS/31公网可信TLS、116源码摘要、29文件精确回退干跑通过,三服务active、worker ready/idle心跳0秒,活动工作及队列0;以上为发布检查时点。维护模型请求/真实短信0。
首次验证发现全局Nginx错误拦截将协议404 JSON改为HTML,已仅在本域名server增加fastcgi_intercept_errors off并重新验证,全局配置保持;维护标记已清理,不能再宣称Nginx完全原样。精确回退工具已兼容本次修正,原Nginx/site/7before源码与26表灾难dump保留;新增权限只有未被更改且无新绑定时可按本批IDs定向删除,三张增量表保留。上线后不直接重跑旧脚本,不整库覆盖后续数据。
37备份文件已下载逐项SHA核验,服务器归档root/700/600,本机仅当前Windows用户/SYSTEM访问;宝塔退出、专用浏览器关闭,临时传输和凭据清理。证据:D:/AAdesk/202609/airz-backups/production-release/airz-agreement-documents-1791794619319;[发布说明](后端协议与照片发布-20261012.md)及[发布回执](D:/AAdesk/202609/airz-backups/production-release/airz-agreement-documents-1791794619319/release-receipt.json)。14相关前端源码摘要已冻结,不能当微信上传包摘要;已清理本机测试runner不能复跑。两仓既有未提交改动保留,没有提交/推送/PR。
下一步是用户小程序发行与设备复核,并完成实际启用条件:四份正式协议全文未提供/审核发布(明确404 AGREEMENT_NOT_AVAILABLE);短信渠道/签名/模板未接入(503 SMS_NOT_CONFIGURED);照片正式用途、期限、撤销处理、Web外私有目录/ACL及密钥恢复未确认,真实上传继续关闭。既有密码登录允许协议明确未发布,自填评估/28项字段保持,照片暂不参与评估。小程序先确认微信request/uploadFile/downloadFile合法域名,记录实际发行版本/时间/源码或包摘要,真机及正式验收不预填通过。
进度2.28/1.38、开发文档v1.96/1.09,29页面/63任务、产品AI回撤和同事产品库保持。下方独立测试前置、未部署及默认test描述是历史快照,由本段覆盖。
## 前轮状态:2026-10-12 第1步本机独立测试准备完成
用户要求“推进第1步”:分开测试/生产配置,接通测试协议与照片,仅合成资料、短信关闭。已清空services/config.uts中原指向已发布服务的TEST_API_URL;默认test未配置时请求明确失败,production也留空,未知环境不回退。development仅在本轮前端副本显式启用,指向本机18580。后端原.env未读取或修改,新增.env.test.sample,正式私有上传配置仍默认关闭。
最小配套文件、三份增量DDL、协议后台权限、顺序/回退及微信合法域名条件见[测试部署清单](协议与照片测试部署清单-20261012.md)。14前端/30后端运行及DDL/配置源码清单、13配置/API预检、32实际前后端H5检查(20页面本机API请求、0运行/控制台错误/未知外呼)、26组照片与30项协议检查通过。验证同意、上传、原卡片缩略图/菜单预览、离页恢复、跨账户拒绝、撤销后禁止新上传及本人删除;没有评估/真实模型任务。
本轮证据D:/AAdesk/202609/airz-backups/test-configuration/1791793388934;63份bootstrap审计全部模型/短信/生产.env false。29表清空、Redis零键、照片零文件后删除精确合成库,所属API18580/H55182及子进程/MySQL/Redis停止并释放端口。run.py是已清理本轮工具,不能直接重复start;必须创建新的归属环境。H5复用现有HBuilderX/Playwright,未安装依赖;前轮29页微信/Android编译证据保持,本轮未重新编译目标端。默认源码现在不连接远程服务;不能把仓库后端.env当测试配置直接启动。
进度2.27/1.37、开发文档v1.95/1.08。下一步先取得独立测试服务器/站点及HTTPS域名,再按具体目标预检/授权部署测试站点、配置微信request/uploadFile/downloadFile合法域名并编译体验版真机验证;当前未指定远程测试目标,不自行写外部服务器。FILE-001正式用途/期限/正文/目录与权限/密钥恢复仍阻塞,不等同正式上线或解除验收条件。融资28项、29页面、63任务、同事产品库及产品AI回撤保持;未提交/推送/PR。
## 前轮状态:2026-10-12 私有资料上传内部实现(默认关闭、未上线)
资料照片上传、本人鉴权预览和删除内部代码已实现,真实上传默认关闭、正式目录留空;照片单独保存、未核验、暂不参与评估。上传后直接在原卡片显示缩略图,查看/删除从卡片菜单操作,没有下方独立列表;离页后可恢复本人已保存照片,同类多张及删除失败的ID可继续管理。168项私有资料/44次本机HTTP、268项公开头像/76HTTP、351项协议/86HTTP、26组UTS、30项协议及31项分包通过,29页Android/微信编译和58项受控H5通过;未上线。正式用途/期限/目录与真机验收待办。详见[开发记录](私有资料上传开发-20261012.md)。
接续代码已实现三个接口及原卡片操作,私有Secret加密照片不进public/uploads或公开附件表;服务端归属/同意检查,撤销后禁止新上传、本人仍可管理。默认private_documents.enabled=false且directory为空,正式用途/保留期限/实际目录及ACL尚未确认,不得启用。上传未知回执仅手动重试,可能另存;复用GET /consents?scope=documents返回独立的本人资料引用,不依赖同意分页或撤销状态;重新进入时恢复缩略图及各ID操作,不新增业务接口或评估绑定。
本轮证据D:/AAdesk/202609/airz-backups/private-documents/1791787367342及C:/Users/JUN/AppData/Local/Temp/airz-private-documents-ui-1791787367342;精确合成库/文件/Redis/所属服务清理以cleanup回执为准,不能直接复跑已清理runner。默认两仓生产地址未改,不启动默认框架或未拦截H5;原5174服务保持。仅新建明确归属隔离环境,0生产/真实短信/模型/发布/提交/推送/PR。
进度2.26/1.36、开发文档v1.94/1.07。FILE-001正式条件仍阻塞,FILE-002/004内部完成但未正式验收;融资28项、29页面、63任务、既有短信/协议改动及同事产品库保持,产品AI回撤继续有效。后续正式启用需另行具体预检/授权和真机验证,不自动上线或增加OCR/外部查询。
## 前轮状态:2026-10-12 资料上传方案简化
用户明确要求“还是不设计这么复杂”。[简化方案](superpowers/specs/2026-10-12-private-documents-design.md)已覆盖原复杂提案,只保留上传照片、本人查看和删除,复用现有选图、登录鉴权和图片校验。照片保存到服务器Web目录外,随机文件名,小型资料表记录归属,沿用既有加密。不能把身份证等直接放入public/uploads。
取消云存储扩展层、上传命令账本/租约、专门原键查询接口、多阶段状态机及独立清理worker,不再按旧提案扩张。资料仍选填,融资28项不增加;附件进入评估另做最小集成,不做OCR或外部查询。
下一步按三个后端接口与原资料卡片推进,正式用途/保存期限和实际私有目录在启用前确定。本轮仅简化文档,没有上传运行代码/DDL/存储目录或生产操作。两仓短信/协议改动、29页面、63任务及原测试回执保持;进度2.25/1.35、开发文档v1.93/1.06为同日简化修订,FILE-001条件仍待,FILE-002/004未实施。
默认前后端仍指向生产,实施须全新合成隔离环境,不复用已清理的协议runner。未提交/推送;同事产品库与产品AI回撤保持。
## 前轮状态:2026-10-12 协议全文与同意记录内部实现
协议全文、后台审核/不可变版本和本人同意/可选撤销记录已实现,新增两页共29页,63任务编号保持。融资28项填写内容、私有上传/外部查询及同事产品库未改,产品AI回撤保持。正式协议正文未提供、未发布;两张新表只在本机隔离库安装,正式权限未迁移、代码未部署,短信仍默认关闭。
当前版只接受审核发布的结构化正文;同版不可变,未来尚未生效不进入当前,最新下架不回退旧版,历史全文保留。同意/撤销键共用本人唯一空间,旧键可以补确认,仅documents/data提供撤销。认证后同意记录未知时手动原键重试;明确404未发布允许已有账户密码登录且不造记录,网络/503不能绕过。待确认仅同会话页面内保存,不提供刷新/进程重启持久恢复。
最终六套隔离1730项/380次本机HTTP通过;协议351、后台500、会话284、资料268、短信账户271、内容服务56。纯协议40/权限106另列;14PHP语法与两仓diff通过,失败和重复运行不累计。公开读与同源发布的误404已先复现再修正。独立复审发现的问题均已红绿修正并复审关闭,30项纯源码及31项微信分包检查通过;最终源码29页Android class于12:21:51、微信小程序于12:22:35编译成功(2026-10-12,Asia/Shanghai)。初轮H5完整78项与最终复审专项48项分开记录,最终源码绑定source-manifest.final-return.json及final-return-receipt.json,见开发记录及本轮verification。
后端证据D:/AAdesk/202609/airz-backups/agreement-consents/1791775959310,前端证据C:/Users/JUN/AppData/Local/Temp/airz-agreements-ui-20261012及后续专项。新隔离28表/8触发器和Redis零键已在清理前核验;精确库/所属服务清理以本轮cleanup回执为准,禁止复用已清理runner测试。默认前后端仍连接生产,不通过默认H5入口或框架回归。归档包含私密配置,不整包共享。
进度2.24/1.34、开发文档v1.92/1.05,见[开发记录](协议全文与同意记录开发-20261012.md)。正式全文、资料用途/保留期限/撤销后处理、第三方授权凭据、真机和正式运营签收仍待;FILE-003仅内部协议与本地记录功能完成,FILE-001/002/004依各自条件推进。生产上线需另做具体范围预检并获得发布授权,不自动恢复产品AI或继续上传/外部查询。
## 前轮状态:2026-10-12 短信账户内部代码已实现,默认关闭
用户已授权先写短信登录/首次注册、验证码改密和原/新号码双验证换绑代码,服务商、已审核签名及模板暂缺。本轮后端实现已完成,sms_verification.enabled=false;关闭时在Provider Hook及短信Redis连接前拒绝,返回503/SMS_NOT_CONFIGURED,不模拟成功、不注册账户、不发送真实短信。原密码登录与账户资料保持可用。产品机构库由同事维护,本轮未改产品模块、融资评估28项或前端运行源码,已回撤的产品AI条件分析不恢复。
新增SmsVerification/Provider契约及AccountSms,复用现有Token、Auth和手机号唯一索引,无DDL/迁移。验证码用途/账户/当前号码绑定、摘要存储、冷却/限流、原子单双码核销;改密/换绑撤销本人全部Token。验证码已消费后的存储失败不恢复旧码,须重发。短信改密仅登录本人,不增加匿名找回密码;Auth锁内重核手机号,已修复换绑后旧号码并发密码登录重建会话的问题。
四套最终隔离测试:短信引擎71、短信账户271/54HTTP、原会话284/70HTTP、资料头像268/76HTTP,共894项/200次本机HTTP通过。双worker检查一次注册、号码唯一归属及赢家Token撤销/输家号码与Token保持;旧号码专项27项不重复计入。12PHP语法、两仓diff及独立只读复审通过,未重新编译前端或执行真实渠道/目标端验收。
归档D:/AAdesk/202609/airz-backups/account-sms/1791773313671保留脱敏输出、verification与cleanup回执。26合成表核空/结构和8触发器保持、Redis DB15零键,本轮精确数据库已删除、所属MySQL/Redis已退出/端口释放;395模型屏蔽回执确认真实客户端加载0次,短信JSON夹具及本轮生成Python缓存已清理。不读取默认生产.env、无真实短信/模型/生产访问/部署/提交/推送。测试环境已清理,不能直接重跑旧runner的test。
进度2.23/1.33、开发文档v1.91/1.04,见[短信账户开发记录](短信账户功能开发-20261012.md)。AUTH-001真实渠道仍阻塞,AUTH-002/004内部功能接通但正式未验收。下一步待资料齐备后补Provider适配、验证真实渠道及小程序端,再单独安排发布;期间可以按用户新要求做其他功能,无需改融资录入内容。下方保留前轮历史状态,产品AI回撤继续有效。
## 前轮状态:2026-10-10 产品AI条件分析与后台人工复核已回撤
用户已要求撤回“25条正式产品 AI 条件分析与后台人工复核”。本地分析/归一化/证据校验、独立任务与预算账本、后台原文对照及草稿/确认接口、权限、消费命令和专用配置/迁移/测试全部撤回;旧产品后台和DeepSeek客户端恢复到本功能前内容。本功能与其余20条接续已取消,后续会话不得按旧试点授权自动恢复或继续调用。