Files
airz-uniapp/docs/新会话交接.md
T
hujun 71b3c25695 feat: 优化账户切换时的页面状态一致性,增加登录回跳校验和课程阅读新逻辑
- 增加账户状态监听定时器,页面切换时自动校验账户归属,避免跨账户操作
- 新增登录回跳路径校验函数,限制仅允许指定页面回跳,防止非法跳转
- 课程页改为整篇连续阅读,底部仅一次标记已读,兼容历史记录
- 完善助手、对比页、资料填写页等多处的账户状态校验逻辑,防止错版数据提交
- 优化账户资料请求逻辑,增加版本校验,避免旧请求覆盖新数据
2026-10-07 10:01:05 +08:00

700 lines
154 KiB
Markdown
Raw 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.
# AI融资项目新会话交接
记录日期:2026-10-07。本文件为接续入口;课程最新交互以[开发进度](开发进度.md)0.77节及下方课程简化检查点为准,整篇连续阅读、仅一次标记已读。其余当前存储与流程以[评估版本与最新资料](评估版本与最新资料.md)、[开发进度](开发进度.md)0.76节(CONTENT-002/003/004内容、课程进度与搜索组合开发检查)、0.75节(AUTH-003/004账户资料、头像及会话撤销后端隔离HTTP开发检查)、0.74节(AUTH-003/004账户资料、改密及退出组合开发检查)、0.73节(ASSESS-004评估新建/修改后端隔离HTTP开发检查)、0.72节(ASSESS-004资料填写、确认提交与档案回显组合开发检查)、0.71节(PRODUCT-004匹配读取与产品解释后端隔离开发检查)、0.70节(PRODUCT-004/005匹配详情与对比历史版本组合开发检查)、0.69节(CHAT-004后端幂等/额度/历史隔离开发检查)、0.68节(CHAT-004历史版本上下文与异常会话组合开发检查)、0.67节(REPORT-006行动页与报告可用性组合开发检查)、0.66节(REPORT-005微信PDF与导出边界开发检查)、0.65节(REPORT-004历史报告与重评组合开发检查)、0.64节(REPORT-003报告生成与持久化开发检查)、0.63节(REPORT-002异步任务与补偿链开发检查)、0.62节(反馈与消息后端生产发布)、0.61节(反馈与消息配套发布准备)、0.60节(反馈恢复与消息组合检查)、0.59节(反馈回复通知联动)、0.58节(会员反馈原键恢复)、0.57节(后台反馈处理及既有小程序发布状态)、0.55节(后端发布)及[开发文档](开发文档.md)v1.46为准。历史章节中的域名、部署及“待开发”以最新记录为准。
## 新会话接续检查点:2026-10-07(课程简化)
用户要求课程不分章节,减少复杂度。已将 `packages/content/lesson/lesson.uvue` 改为整篇连续阅读,所有正文直接展示,只保留自然小标题;移除目录/折叠/编号/逐节完成/开始继续学习/进度条和节数。底部仅“我已读完”,已读后禁用并显示“已读完”。匿名直接阅读,点击标记时登录并回跳;已读状态加载慢或失败不阻止正文。
- 仅课程页业务源码修改,后台数据结构、已上线API及历史记录兼容,无后端变更或迁移。一次操作依次补齐旧接口未完成段落,全部成功才显示课程已读;途中失败重载服务器状态后仅补未完成部分。逐请求前后核对账户/版本/页面代次,换账户/离页停止余下请求,双击不重复。后台稳定ID属于存储兼容,不重新引入用户章节流程。
- Chrome手机390×844/360×740、桌面1280×900最终57项/53业务请求/15合成PUT及1登录POST通过:整篇文本/无章节控件/滚动到末尾/单一已读、重复零写与刷新恢复、老部分记录、慢/失败状态仍阅读、部分保存失败恢复、双击、409停止、立即/保存中换账户、离页、匿名零GET与密码登录回跳、小屏适配。身份/非空/无遮罩/横溢/段落顺序/封面/三截图通过,pageerror=0、未定义API=0,console仅刻意503/409;全部外部API拦截。首轮截图图片等待误判空集合,补可见封面背景条件后最终通过。
- HBuilderX5.26 Android08:36:34、微信08:37:08,27页面编译成功。初始CLI未打开HBuilderX,正常启动后成功;新5175初编译等待后运行。Browser plugin not available,沿用缓存Playwright CLI,无新增依赖;共享layout既有H5类型警告保留。业务页及四说明UTF-8无BOM/主要行尾、两仓库diff通过;保留既有未提交。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-reading-20261007/`,安全证据 `verification.json`、`reading-mobile.png`、`reading-end-mobile.png`、`reading-desktop.png`、`android-final.log`、`weixin-final.log`;临时脚本/CLI日志含合成会话,不整体分享。存储/cookies/routes清空、专用reading浏览器关闭,当前源码预览5175/PID15480保留。本轮开始5173/5174/旧5175无监听,未停止其他服务。未读正式.env/连生产/启数据库Redisworker/真实短信模型,后端只读,无发布/提交/推送/正式验收。
- 台账1.67/0.77,63任务/27页面及状态保持;下一项仍为内容、课程已读与搜索后端隔离HTTP检查。当前需求覆盖0.76及更早用户章节学习描述;检查历史记录、幂等、内容版本、账户归属、失败恢复即可,不恢复章节目录或逐节完成。后台 `tests/content_catalog.php` 显式bootstrap但固定3309,先统一隔离守卫/随机HTTP/精确清理再另建本机环境。真机/跨设备/真实后端及正式验收待补,用户自行发布小程序,本轮源码未发行,不沿用历史生产授权。
## 新会话接续检查点:2026-10-06(CONTENT-002/003/004)
本轮完成内容、课程进度与搜索组合开发检查,复现并修复六类问题。保留两仓库全部既有工作和用户既有小程序发布状态,未正式验收、部署、提交或推送。
- 五源码文件:`services/content.uts`、`packages/content/lesson/lesson.uvue`、`news/news.uvue`、`classroom/classroom.uvue`、`search/search.uvue`。共享解析校验详情ID/完整正文、课程章节/场景/数量/版本、分页页码/大小/总数/hasMore和同页唯一ID;保留合法列表/首页摘要及后端过滤坏行的不足20条响应。进度核对课程/版本/唯一章节及当前章节归属,完成回执须包含所选章节并保持版本。分页追加拒绝重复,错误保留旧列表和页码;搜索补可见性守卫。
- 课程可见期每秒核对Token,操作/回包核对账户及代次,立即或无操作换账户清旧进度/展开状态并重新读取。离页停止检查;重复完成、加载/保存中或隐藏页不提交,迟到401不清新会话。原六缺陷为错详情ID、重复/外来进度、错误页码、旧页向新账户写进度、换账户闲置旧进度、不同版本完成回执;修复后六项复测均false。
- Chrome手机390×844、桌面1280×900最终123项/107次全量拦截业务请求/9次合成PUT或登录POST通过,涵盖坏响应/非法参数、两条首页共享解析、下架重试/分页/分类竞争、重复完成/失败重试/版本/章节/账户/迟到响应/离页、匿名登录回跳,以及搜索关键词/类型竞争/分页429与重复/详情/空/断网恢复/清空/建议。场景检查含选择状态与新课程标题证据;身份/非空/无遮罩/横溢/图片及七截图通过,pageerror=0、未定义API=0,console仅刻意404/503/401/429和net::ERR_FAILED。无真实后端、短信或模型请求。
- HBuilderX5.26最终Android21:27:44、微信21:34:02,27页面编译通过。UTS前向引用沿用回调;旧5174返回旧共享模块,另启5175补临时HX_APP_ROOT后确认新export。测试初期自定义uni-button禁用断言、登录定位/协议勾选及弱请求计数已修正,中断结果不计最终数。Browser plugin not available,复用缓存Playwright CLI,无新增依赖;共享layout既有H5类型警告保留。两仓库diff、五源码及两台账UTF-8无BOM/主要行尾约定通过。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-combo-20261006/`,安全证据为 `verification.json`、`repro-after.json`、七张截图、`android-final.log`、`weixin-final.log`。临时脚本/CLI日志含无服务器权限合成会话,不整体分享。浏览器存储/cookies/routes清空,专用content-combo会话关闭;当前源码H5预览5175/PID68580保留,旧5174/PID76784及另一项目5173保留,后续核对归属再复用/停止。未启动数据库/Redis/后端/worker,未读正式.env或连接生产,后端只读;前端 `%SystemDrive%/`、`scripts/`、`.vite/` 及两仓库既有未提交保持。
- 台账1.66/0.76,63任务/27页面不变;CONTENT-002/003待验收、CONTENT-004开发中保持。真实后端组合、真机/跨设备及正式验收未覆盖,此前及本轮新增源码仍未配套发布,不沿用历史生产授权。
- 下一开发入口:CONTENT-002/003/004后端内容、课程进度与搜索隔离HTTP检查。`D:/AAdesk/202609/airz/tests/content_catalog.php` 已要求显式bootstrap但固定3309且未复用report_test_bootstrap;先统一隔离守卫、随机本机HTTP继承及精确清理,再另建本机库/Redis。检查发布/下架/坏行、列表/详情/首页/搜索契约、鉴权/账户隔离/重复完成、章节重排保持/正文改变失效、版本冲突及事务/并发失败。不重复前端组合、自行正式验收、接供应商、调用真实短信/模型、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(AUTH-003/004后端)
本轮完成账户资料、头像及会话撤销后端隔离HTTP开发检查,仅修改四个后端测试文件,前后端业务源码未修改。两仓库全部既有工作及用户既有小程序发布状态保持,未正式验收、部署、提交或推送。
- `D:/AAdesk/202609/airz/tests/api_profile.php`、`tests/api_session.php` 接显式 `--bootstrap=<path>`,缺参在框架初始化前拒绝;新增 `tests/account_http_test.php`、`tests/account_http_router.php`,随机本机HTTP和双进程继承相同隔离bootstrap/ROOT,头像写入独立临时目录。故障模式只从本次runtime文件读取,按归属精确清理,清理成功才PASS,异常非零。
- 资料268项/76次真实本机HTTP通过:鉴权/越权/JSON/未知字段/no-store、昵称边界与持久化、个人及企业评估资料/历史日志字节保持、伪图片/GIF/原始和重编码大小/尺寸/像素拒绝,PNG/JPEG/WebP归一PNG与安全元数据、附件归属/路径/文件、上传不自动绑定、省略保持/null默认。触发器验证入库失败文件清理及昵称头像事务回滚,目录故障和移除故障后重试通过。
- 会话281项/69次真实本机HTTP通过:入参/Bearer/过期/禁用、旧散列升级、退出故障保留与成功只撤当前Token、改密输入/旧密码/DB/Redis失败回滚、成功撤全部本账户会话且另一账户保持、晚Hook失败关闭及重新登录、登录Hook新Token清理、8/32位边界。双PHP及用户行锁验证三轮登录/改密竞争后旧密码无有效Token、同旧密码双改密仅一成功;短信503和未路由换绑404均无假成功。合计549项/145请求,属于开发检查。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-account-backend-20261006-1791290960616/`,MySQL5.7.26仅127.0.0.1:3323、Redis5.0.14.1仅127.0.0.1:6403/DB15,模型127.0.0.1:1且关闭,无worker。26表由schema初始化,无正式.env/生产连接/真实短信或模型/新增依赖。初期启动参数、ID类型、Token导入与空JSON预期已修正;收尾扩展不支持shutdown,使用已有redis-cli正常关闭,中断结果不计最终数。七业务表/故障触发器/Redis键/头像目录均0,测试库已DROP,专用HTTP/MySQL/Redis停止,3323/6403无监听。四PHP lint、两缺bootstrap拒绝、两仓库diff/UTF-8无BOM/LF通过。
- 安全证据:ROOT内 `verification.json`、`cleanup.json`、`services.json`、`profile-final.out`/`profile-final.err`、`session-final.out`/`session-final.err`,最终stderr空。临时bootstrap/runtime/工具文件不整体分享或直接复用。前端未变,沿用0.74浏览器/微信/Android编译证据;5174/PID76784预览核对归属后保留,另一项目5173保持。前端 `%SystemDrive%/`、`scripts/`、`.vite/` 及两仓库既有未提交保留。
- 台账1.65/0.75,63任务/27页面不变,AUTH-003/004仍开发中;完整登录/换绑受短信供应商阻塞,真机/跨设备/正式验收未覆盖。此前新增业务源码仍未配套发布,不沿用历史发布授权。
- 下一开发入口:CONTENT-002/003/004内容、课程进度与搜索组合开发检查。入口为 `packages/content/services/content.uts`、`services/search.uts` 和 `news/news.uvue`、`article/article.uvue`、`classroom/classroom.uvue`、`lesson/lesson.uvue`、`search/search.uvue`。核对列表/详情与下架状态、章节版本和账户隔离、重复完成/失败重试/迟到回包、搜索关键词/分类分页与旧响应竞争;先用受控API响应与现有H5预览,如需后端HTTP先适配显式隔离入口并另建本机环境。不要重复账户专项、自行接供应商、正式验收、真实短信/模型调用、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(AUTH-003/004)
本轮完成账户资料、改密及退出组合开发检查,修复五类已复现问题。两仓库全部既有工作及用户既有小程序发布状态保持,未正式验收、部署、提交或推送。
- 七个源码文件:`packages/account/services/account.uts`、`profile/profile.uvue`、`edit-profile/edit-profile.uvue`、`security/security.uvue`、`password/password.uvue`、`change-phone/change-phone.uvue`、`components/SecurityCode.uvue`。修复同手机号新Token提交旧页资料、个人中心保留旧账户内容、旧退出确认误退新账户、离页改密回包主动跳转、保存后迟到GET覆盖新昵称缓存。页面及弹窗/选图/回包校验账户和代次,可见期定时检查、离页停止;资料/头像/改密回执校验归属与完整性,写入使旧读取失效。昵称继续独立于评估实名。改密成功清理原账户本机会话但隐藏页不跳转;密码/验证码离页清空,短信目标变化/离页使旧发送响应失效,退出失败可重试,未确认签到/反馈命令仍按既有约定保留。
- Chrome手机390×844、桌面1280×900最终103项/48次全量拦截业务请求/21次合成写请求通过。覆盖资料/头像/改密坏回执、账户切换/旧菜单/迟到读取保存与上传、昵称独立、资料失败重试、头像大小/过期选图/默认头像、退出确认/失败重试/会话与缓存清理、改密确认/可见性/切模式/成功与离页/迟到401、短信与换绑未开放及短信目标变化、安全页过期。pageerror=0、未定义API=0,console仅刻意401/409/422/503,身份/非空/无遮罩/横溢及六截图通过。无实际后端/短信/模型请求,合成改密回执不证明真实服务端全Token撤销。
- HBuilderX5.26最终Android20:38:52、微信20:39:33,27页面编译通过。脚本初期返回页预期、uni-input事件等待、同名占位文字及隐藏组件定位已修正,早期中断结果不计入最终数。Browser plugin not available,复用缓存Playwright CLI,无新增依赖;共享layout既有H5类型警告保留。两仓库diff、七文件及两台账UTF-8无BOM/主要行尾约定通过。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-auth003004-20261006/`。安全证据:`verification.json`、`profile-mobile.png`、`phone-mobile.png`、`edit-mobile.png`、`password-mobile.png`、`edit-desktop.png`、`password-desktop.png`、`android-final.log`、`weixin-final.log`。脚本/CLI日志含无服务器权限合成会话,不整体分享。存储/cookies/routes清空、验证浏览器已关闭。本轮本地预览 `http://localhost:5174/#/packages/account/profile/profile`,5174/PID76784保留,Node命令属于本项目,输出ROOT/h5;下次先核对归属再复用或停止。另一项目5173/PID68536保持。后端只读,无正式.env/生产连接/数据库/Redis/worker或真实短信/模型。
- 台账1.64/0.74,63任务/27页面不变,AUTH-003/004仍开发中。原密码改密已接通,账户短信/换绑没有正式路由,完整任务仍受供应商阻塞。真机/真实渠道/跨设备及正式验收未覆盖;此前及本轮新增源码仍未配套发布,不沿用历史发布授权。保留前端 `%SystemDrive%/`、`scripts/`、`.vite/` 及两仓库既有未提交。
- 下一开发入口:AUTH-003/004账户资料、头像及会话撤销后端隔离HTTP检查。旧 `D:/AAdesk/202609/airz/tests/api_profile.php`、`tests/api_session.php` 参数检查前初始化默认环境、HTTP固定127.0.0.1,不得直接运行;先适配显式隔离bootstrap、随机本机HTTP继承、独立头像目录及精确清理,再另建本机库/Redis。验证归属/字段/持久化/头像文件、昵称不改评估实名、事务失败、退出当前会话/改密全部会话撤销、未开放短信拒绝。不要自行接供应商、真实短信或模型调用、正式验收、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(ASSESS-004后端)
本轮完成评估新建、修改接口的后端隔离HTTP开发检查,修正测试入口及过时夹具;前后端业务源码未修改。保留两仓库全部既有工作和用户既有小程序发布状态,未正式验收、部署、提交或推送。
- `D:/AAdesk/202609/airz/tests/api_assessments.php` 接显式 `--bootstrap=<path>`,缺参在框架初始化前拒绝,复用report_test_bootstrap。采用inputVersion=3/AssessmentStore,删除旧资料主键/加密身份/任务落资料表假设;新增 `tests/assessment_http_router.php`,随机本机HTTP及双进程继承同一bootstrap/队列,分析开关只从隔离runtime读取。按本次账户/产品/队列/作业文件/故障触发器精确清理,清理成功才输出PASS,异常非零。
- HTTP专项514项/158次请求通过:匿名/撤销Token/越权/no-store/非法输入及JSON大小、元金额精度/零数与未知、只读脱敏/完整回填、个人/企业独立新建和各一份最新资料、修改本评估最新版本、原键重放不回写最新资料、错内容/作用域/基准/类型冲突、旧版不变、同键新建/修改双进程各一输入、异键修改一成功一REVISION_CONFLICT。触发器注入资料更新失败验证新建/修改完整事务回滚,移除故障后原键可提交;处理中拒绝修改,同键不新增调用,个人/企业重评失败保留旧成功报告,重试成功才发布新版,迟到旧任务零调用;23版分页/独立记录分页/过滤/软删除拒绝通过。仅5次显式假调用,无真实模型/消费worker。版本专项58项通过,合计572项,不记作正式业务验收。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-assessment-backend-20261006-1791288138879/`,MySQL5.7.26仅127.0.0.1:3322、Redis5.0.14.1仅127.0.0.1:6402/DB15,模型127.0.0.1:1。26表由schema初始化,PDF复制现有锁定依赖/字体,无安装或正式.env/生产连接。初期合成用户名长度、MySQL启动参数及ThinkPHP测试DDL未缓冲查询问题已修正,DDL改用独立PDO,早期未完成结果不计最终数。六业务表/故障触发器/Redis键均0,测试库已DROP,专用HTTP/MySQL/Redis停止,3322/6402无监听。两文件PHP7.4 lint、缺bootstrap拒绝、两仓库diff/UTF-8无BOM通过。
- 安全证据ROOT内 `verification.json`,最终 `assessment-final.out`/`assessment-final.err`、`revisions-final.out`/`revisions-final.err`;临时bootstrap/runtime/工具文件不整体分享或直接复用,下次另建隔离环境。前端业务源码未变,不重复浏览器/平台编译,沿用0.72最终证据。`%SystemDrive%/`、`scripts/`、`.vite/` 及两仓库既有未提交保持。
- 台账1.63/0.73,63任务/27页面不变,ASSESS-004仍开发中;真实渠道、真机及正式验收未覆盖。此前新增业务源码仍未配套发布,不沿用历史生产授权。
- 下一开发入口:AUTH-003/004账户资料、改密及退出组合开发检查。核对个人中心/编辑资料账户隔离和迟到响应、昵称不覆盖评估实名、保存失败重试、改密/退出会话撤销与旧页清理;短信/换绑未开放不产生假成功。优先受控响应,如需后端HTTP先核对脚本隔离入口,另建本机库/Redis。不重复评估/匹配/助手专项、自行真实短信或模型调用、正式验收、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(ASSESS-004)
本轮完成资料填写、确认提交与档案回显组合开发检查,修复五类已复现问题。保留两仓库全部既有工作及用户此前小程序发布状态,新增源码尚未发行;本轮未正式验收、部署、提交或推送。
- 四个源码文件:`packages/finance/services/records.uts` 核对评估/版本/状态/回执/分页归属,修改回填须有有效版本与完整元单位资料,修改回执须属于原评估且生成新版本;`confirm/confirm.uvue` 补账户/可见性/请求代次守卫;`assessment/assessment.uvue`、`archive/archive.uvue` 补可见期账户检查和离页停止,旧操作及选图回调守卫。档案重新加载后重启检查,版本请求结束后再次核对详情,避免换账户清空后访问空详情。
- Chrome手机390×844、桌面1280×900最终96项/72次受控业务请求/13次合成POST通过。覆盖个人/企业空白新建与最新资料修改、历史档案修改仍读最新、零经营月数/零负债、12.345678万元=123456.78元、原键重放/改内容换键、坏回执/版本/分页、附件授权拒绝、脱敏/完整度局部重试、失败保留旧成功结果入口、账户立即操作/无操作清空/重载及离页/迟到401。pageerror=0,console仅刻意401,未定义API=0;身份/非空/无遮罩/横溢/四截图通过。全部外部请求拦截,无实际后端或模型调用;真实失败持久化沿用0.65证据,不把本轮页面检查当正式验收。
- HBuilderX5.26最终Android18:29:34、微信18:30:24,27页面编译成功。Number(string)不兼容Kotlin改为parseInt;初期脚本字段定位、锁定类型/自定义按钮断言、立即操作自动等待竞争、只读夹具脱敏及预览加载超时已修正,早期未完成结果不计入最终通过数。Browser plugin not available,缓存Playwright CLI,无新增依赖;共享layout既有H5类型警告保留。diff及变更文本UTF-8无BOM检查通过,保留行尾约定。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-assess004-20261006/`,安全证据为 `verification.json` 与 `confirm-mobile.png`、`archive-mobile.png`、`confirm-desktop.png`、`archive-desktop.png`。`repro.js`、`verify.js` 和CLI日志含无服务器权限合成会话,不整体分享或直接复用。存储/cookies/routes清空,专用 `assess004`、`assess004-final` 浏览器已关闭,本轮5174/PID76016停止且无监听;另一项目5173/PID68536保留。未启动数据库/Redis/后端/worker,未读正式.env/连接生产/调用真实模型;后端仅只读。前端 `%SystemDrive%/`、`scripts/`、`.vite/` 及两仓库既有未提交工作保留。
- 台账1.62/0.72,63任务/27页面不变,ASSESS-004仍开发中。真机、Safari/微信内H5、真实渠道及正式验收未覆盖;此前新增业务源码及本轮四文件仍未配套发布,不沿用历史发布授权。
- 下一开发入口:评估新建/修改后端隔离HTTP检查。旧 `D:/AAdesk/202609/airz/tests/api_assessments.php` 在参数检查前初始化默认环境,夹具未声明inputVersion=3,不得直接运行;先适配显式隔离bootstrap、当前版本存储、子进程/本机HTTP继承及精确清理,再另建本机库/Redis和假模型。`tests/assessment_revisions.php` 已接显式report_test_bootstrap,可作版本行为回归入口。不要重复匹配/助手专项、自行正式验收、真实模型调用、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(PRODUCT-004后端)
本轮完成匹配读取与产品解释在当前存储/历史版本下的后端隔离开发检查,仅修改测试脚本与夹具,未修改前后端业务源码。两仓库全部既有工作及用户既有小程序发布状态保持,本轮未正式验收、部署、提交或推送。
- `D:/AAdesk/202609/airz/tests/match_records.php`、`tests/product_explanations.php` 接显式 `--bootstrap=<path>`,缺参时在框架初始化前退出;新增 `tests/match_test_fixtures.php` 复用inputVersion=3/AssessmentStore,故障注入同时更新已发布版本日志和最新镜像。双进程和新增 `tests/match_http_router.php` 继承隔离入口及随机队列,HTTP仅本机;精确清理本次账户、产品、队列,清理成功才输出PASS,异常非零。
- 匹配238项/101次真实本机HTTP、产品解释52项,共290项通过。覆盖三态/分页/游标/鉴权/越权/非法参数/no-store/损坏快照/目录故障、个人及企业重评处理中/失败保留旧版、新版成功默认切换/旧游标继续原版、历史解释只读及无调用预留、同键HTTP重放只预留一次。解释覆盖双进程幂等、重复消费/缓存、冻结值与游标不变、脱敏/非法输出/reasonId重排、原键重放/新键重试/三次上限、租约/迟到用量/每日次数及删除记录。
- 零候选旧夹具不适用v3资料模式,已临时给“普惠基础融资贷”加入必不满足的收入规则,验证completed的0 eligible/3 ineligible/1 unknown并finally恢复原配置。仅修正测试假设,无后端业务缺陷修复;早期未通过结果不计入最终通过数。四文件PHP7.4 lint、两缺bootstrap拒绝检查、两仓库diff及35个变更文本UTF-8无BOM检查通过。前端未变,不重复平台编译/浏览器检查,沿用0.70最终证据。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-match-backend-20261006-1791279449016/`,MySQL仅127.0.0.1:3321、Redis仅127.0.0.1:6401/DB15、模型地址127.0.0.1:1。隔离账户/产品/会话/日志均0、Redis DB15无键,专用HTTP及MySQL/Redis已停止,收尾再次核对3321/6401无监听。未读正式.env、连接生产数据库/Redis/worker或调用真实模型。安全证据为ROOT内 `verification.json`、最终 `match-final.out`/`explain-final.out`;临时bootstrap/runtime/工具文件不整体分享或直接复用,下次另建隔离环境。
- 台账1.61/0.71,63任务/27页面不变,PRODUCT-004仍开发中、PRODUCT-005待验收。真实产品、跨浏览器/真机、生产容量和正式验收未覆盖;此前REPORT-002/003/004后端、档案修复、REPORT-005微信PDF、REPORT-006、CHAT-004及0.70前端源码仍未配套发布,不沿用历史发布授权。前端既有 `%SystemDrive%/`、`scripts/` 和两仓库未提交工作保留。
- 下一开发入口:ASSESS-004资料填写、确认提交与档案回显组合检查,核对个人/企业新建空白和修改最新资料、重评失败保留旧报告、金额精度、同键重放、账户变化和迟到回包。优先受控API响应;如需后端写夹具,先检查对应脚本隔离入口,另建本机库/Redis及假模型。不要重复匹配/助手专项、自行真实模型调用、正式验收、部署或重新发行小程序。
## 新会话接续检查点:2026-10-06(PRODUCT-004/005)
本轮完成匹配列表、产品详情、对比的历史版本组合开发检查。保留两仓库全部既有工作,小程序既有发布状态保持,本轮未正式验收、部署、提交或推送。
- 修复已复现的错快照分页追加、默认入口刷新换版、换账户后旧产品解释请求/对比详情跳转。`matches.uts` 校验版本/产品快照/分组/重复ID/游标/状态/统计;解释与详情复用冻结记录核对,公共产品独立核对。列表分页失败保留首屏与原游标局部重试,对比锁定首次成功快照;三个页面操作前/可见期/迟到回包均核对账户并清旧资料。H5地址固定首次成功revisionId、分组和实际选择;选择缓存绑定版本。`compare.uts`、登录页增加resumeMatch白名单,三个入口登录后恢复同版产品/选择/栏目/来源;历史解释保持只读。
- Chrome手机390×844、桌面1280×900共97项通过、104次全量拦截受控请求,6次合成POST(3解释、3登录)。覆盖服务坏响应、v1/零候选/零利率、冻结额度/材料与下架/unknown、旧版及新版默认回包、跨组选满三项/移除/补选/刷新/切栏、单列404/503/错快照重试、分页503/错快照/重复行原游标重试、换组迟到/换账户迟到401/立即旧动作/无操作清空、登录恢复/非法参数、解释原键重试/错快照轮询/查询恢复/次数上限及离页迟到详情。pageerror=0,console仅刻意401/404/503;身份/非空/无遮罩/横溢/截图通过。未生成真实重评任务,重评发布行为沿用0.65后端证据,不把合成回包当作真实业务验收。
- HBuilderX5.26最终微信17:18:58、Android17:19:47编译成功,63任务/27页面不变。Browser plugin not available,缓存Playwright CLI run-code --filename,无新依赖;共享layout既有H5类型警告保留。测试脚本的require/正则分组/重复参数/按钮文案定位问题已修正,不计通过数。
- 仓库外安全证据 `C:/Users/JUN/AppData/Local/Temp/airz-product-combo-verification.json`、`airz-product-combo-mobile.png`、`airz-product-combo-desktop.png`;临时repro/qa脚本和CLI日志含无服务权限的合成会话,不整体分享。存储/cookies/routes清空、专用浏览器关闭,本轮localhost预览停止;另一17:12:56启动的127.0.0.1:5173 Vite进程并非本轮启动命令,保留。无数据库/Redis/后端/worker/正式.env/正式连接/真实模型调用,后端源码只读。既有 `%SystemDrive%/`、`scripts/` 保留,无本轮新增未跟踪Vite缓存。
- 台账1.60/0.70,PRODUCT-004开发中、PRODUCT-005待验收。真实产品、跨浏览器/真机与正式验收未覆盖;前轮REPORT-002/003/004后端、档案修复、REPORT-005微信PDF、REPORT-006、CHAT-004及本轮源码仍未配套发布,不沿用历史发布授权。
- 下一开发入口:匹配只读与产品解释后端的当前存储/历史版本隔离检查。`D:/AAdesk/202609/airz/tests/match_records.php`、`tests/product_explanations.php` 在校验参数前初始化默认环境,仍用inputVersion=2和直接修改match_result的旧夹具;先适配显式隔离bootstrap、当前AssessmentStore、子进程与HTTP路由继承及精确清理,再新建本机库/Redis和假模型。不要直接运行旧脚本、重跑助手专项、自行真实模型调用/正式验收/部署。
## 新会话接续检查点:2026-10-06(CHAT-004后端)
本轮完成助手消息幂等、并发额度与历史上下文隔离开发检查,保留两仓库全部既有工作。前端源码未变,小程序已发布状态保持,本轮未正式验收、部署、提交或推送。
- 后端 `tests/assistant_chats.php` 改为显式 `--bootstrap=<path>`,复用report_test_bootstrap守卫,在框架初始化前拒绝缺参;夹具采用inputVersion=3/AssessmentStore,双进程继承隔离入口、随机队列和作业文件。新增 `tests/assistant_http_router.php` 只接受本机专用标记和相同bootstrap,补PATH_INFO。失败/清理异常返回非零,清理成功才输出PASS,精确删除本次账户/产品/队列。
- 专项165项通过:双进程同键创建/发送/失败重试、不同键互斥、重复消费、成功重放不重复预留、暂停/额度耗尽重放、助手/产品解释竞争评估剩余额度、失败和软删除日志保留额度、租约/迟到用量/分页/脱敏/金额。个人重评处理中/失败/新版成功均保留旧会话冻结收入和产品,新会话取新版本;改名/下架不改旧上下文,失效会员/删除会话的待办假调用0。18次真实本机HTTP覆盖鉴权、越权、原键重放/改文、历史预览/恢复/错版、非法数组版本、撤销Token及no-store;错误方法按既有精确路由404,无调用预留。
- 复现并修复 `application/common/library/AssessmentStore.php` 一处问题:旧报告无待关闭解释时重写旧日志,同秒无变化UPDATE返回0被误判失败并标AI_INTERNAL。现在仅关闭旧queued/running解释时更新旧快照,其他情况保留旧行;真实故障回滚及缺失解释日志拒绝保持。报告持久化75、版本58、历史报告215项通过,加专项合计513;三个PHP7.4 lint、两仓库diff/UTF-8无BOM通过。前端未变,不重复平台编译/浏览器检查,沿用0.68最终证据。
- 全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-assistant-backend-20261006-1791275687879/`;MySQL5.7.26仅127.0.0.1:3310/airz_product_test_1791275687879,Redis5.0.14.1仅127.0.0.1:6398/DB15,无正式.env/3306/6379/线上库/生产worker,真实模型0。初期回环认证、旧夹具断言及ROOT缺PDF依赖问题已修正,不计通过数;PDF复制现有锁定依赖/字体,无安装或模板修改。六业务表0、故障触发器0、Redis键0,库已DROP、MySQL/Redis及专用PHP正常停止,3310/6398/8098/5173无监听。
- 安全证据为ROOT内 `verification.json`,四结果日志为 `assistant-result.log`、`persistence-result.log`、`revisions-result.log`、`history-result.log`;临时runtime/工具文件保留,不整体分享或直接复用bootstrap,下次另建隔离环境。前端 `%SystemDrive%/`、`scripts/` 及既有改动保留,本轮新增后端修复尚未上线。
- 台账1.59/0.69,63任务/27页面不变,CHAT-004仍开发中,CHAT-001—003待验收。真实语义、供应商费用对账、生产容量及真机未覆盖;不将假模型结果记作正式验收。
- 下一开发入口:PRODUCT-004/005匹配列表、产品详情及对比的历史/重评版本组合检查,重点分页/补选/刷新/单列失败重试、当前可用性与冻结值、账户变化及迟到回包。不要重复助手专项、自行启用真实模型、正式验收或沿用旧发布授权部署;前轮REPORT-002/003/004后端、档案修复、REPORT-005微信PDF、REPORT-006及0.68前端源码也仍未配套发布。
## 新会话接续检查点:2026-10-06(CHAT-004)
本轮完成历史版本上下文与异常会话的组合开发检查,保留两仓库全部既有工作。小程序此前已由用户发布,本轮新增源码未发行;暂不正式验收、部署、提交或推送。
- 修复五类问题:预览、历史恢复、创建接受错版,发送接受错误请求回执,账户切换后立即发送旧问题。`packages/finance/services/assistant.uts` 增加评估/产品/显式版本/展示ID及版本有效性校验、创建会话编号校验、发送requestId/正文/尝试序号校验;无绑定历史入口仍恢复原冻结上下文,同键重放允许更高尝试序号。`packages/finance/assistant/assistant.uvue` 发送前校验账户与页面代次,首次/已有会话发送及旧请求重试均阻止换账户后的旧内容外发。
- Chrome手机390×844/桌面1280×900共62项通过,81次受控API请求、33次合成POST:上下文预览/创建/恢复、显式/无绑定历史、错版/回执、原键重放、429/503、断网、轮询、失败重试上限、历史分页、换账户/迟到401、立即换账户发送/重试、合成登录恢复及非法参数。页面身份/非空/无遮罩/横溢/截图通过,pageerror=0,console仅刻意429/503/401及net::ERR_FAILED;未定义请求0。全部API被拦截,本轮额度检查是提示/恢复检查,不证明后端并发额度。
- 微信16:23:43、Android16:25:31 HBuilderX5.26最终源码编译成功,63任务/27页面不变。Browser plugin not available,使用缓存Playwright CLI的run-code --filename;共享layout既有H5类型警告保留,无新增依赖。
- 仓库外证据为TEMP内 `airz-chat004-result.json`、`airz-chat004-mobile.png`、`airz-chat004-desktop.png`,最终脚本 `airz-chat004-qa.js`,初始复现脚本 `airz-chat004-repro.js` / `airz-chat004-switch-repro.js`。结果JSON无凭据,临时脚本/CLI日志含无服务权限的合成会话,不整体分享。存储/cookies/拦截路由清空,about:blank后关闭专用浏览器,5173停止;本轮生成的两个未跟踪Vite缓存文件已清除。未启动数据库/Redis/后端/worker,未读默认.env或连接生产,真实模型0;后端源码只读,既有 `%SystemDrive%/`、`scripts/` 保留。
- CHAT-004仍开发中,CHAT-001—003待验收,台账1.58/0.68;真实语义、真机/跨浏览器及生产容量未覆盖。前轮REPORT-002/003/004后端、档案修复、REPORT-005微信PDF、REPORT-006及本轮源码仍未配套发布。
- 下一开发入口:助手后端消息幂等、并发额度和历史上下文的隔离检查。旧 `D:/AAdesk/202609/airz/tests/assistant_chats.php` 会在校验参数前初始化默认环境,且夹具仍沿用旧inputVersion=2;先适配显式隔离bootstrap、当前版本存储、并发子进程与精确清理,再使用新建本机库/Redis及假模型,不直接运行旧脚本,不自行真实模型调用、正式验收或沿用历史授权发布。
## 新会话接续检查点:2026-10-06(REPORT-006)
本轮完成行动页与报告可用性组合开发检查,保留两仓库全部既有工作。小程序此前已由用户发布,本轮源码未发行;暂不正式验收、部署、提交或推送。
- 修改 `packages/finance/next-step/next-step.uvue`:增加报告版本及重评处理中/失败/已有新版提示;v1旧版和v2无产品匹配结果时将入口改为“查看准备说明”,明确暂不提供产品材料。既有冻结版本与产品当前可用性守卫继续生效,不重算历史。
- Chrome手机390×844/桌面1280×900共38项通过:个人/企业历史与当前版、处理中/失败、v1/无匹配、冻结材料、下架/未知/不符/待核实、错版/错快照、无报告/404/409、账户切换/迟到响应及合成登录恢复。报告与AI入口/请求保留同版revisionId=72;优化进入editId=45并回填最新资料,无新建/自动提交。页面非空、身份/遮罩/横溢/截图通过,pageerror=0、console仅刻意404/409,无未定义请求。全部API为受控合成响应,仅GET及一次合成登录POST,不连接实际后端或调用模型。
- 微信15:57:28、Android15:58:55 HBuilderX5.26编译成功;63任务/27页面不变。Browser plugin not available,使用缓存Playwright CLI的run-code --filename;前期测试长参数/同页hash/onLoad/locator问题已修正,不计入业务通过。共享layout既有H5类型警告保留。
- 证据为TEMP内 `airz-report006-verification.json`、`airz-report006-20261006-processing-mobile.png`、`airz-report006-20261006-actions-desktop.png`;临时脚本 `airz-report006-boundaries.js`,本轮CLI日志/快照移至 `airz-report006-cli-artifacts/`。含无服务权限的合成会话,不整体分享;浏览器存储/路由清空、专用浏览器关闭、5173停止。未启动数据库/Redis/后端/worker,未读取默认.env或连接生产;既有 `%SystemDrive%/` 和 `scripts/` 保留。
- REPORT-006待验收状态保持,台账1.57/0.67。真机、跨浏览器、真实产品材料/办理渠道及正式业务验收未覆盖;前轮REPORT-002/003/004后端、档案修复、REPORT-005微信PDF及本轮源码仍未配套发布。
- 下一开发入口:CHAT-004历史版本上下文与异常会话组合检查,核对预览/创建/历史恢复绑定、账户变化/迟到响应及失败重试/额度错误。继续使用隔离数据和假模型,不自行正式验收、收费模型调用或复用历史发布授权。
## 新会话接续检查点:2026-10-06(REPORT-005)
本轮修复用户反馈的小程序“当前客户端暂未开放PDF下载”,并完成导出边界开发检查。保留两仓库及REPORT-002/003/004全部未提交工作;小程序此前已由用户发布,本轮新增源码尚未发行,暂不正式验收、提交/推送或部署。
- 前端 `packages/finance/services/report-export.uts` 新增MP-WEIXIN分支:HTTPS下载、本账户Bearer请求头、显式revisionId、PDF MIME/头尾/长度/20 MiB校验,下载后打开系统PDF预览并显示保存/转发菜单。下载中取消abort且清理迟到文件,旧401不清新账户、账户变化不打开旧文件;预览接管后保留临时文件,返回小程序或下次导出清理,删除失败重试。不调用saveFile,不把Token放URL或文件名;报告和行动页共用组件。
- H5补显式版本编号、未压缩Content-Length与实际长度一致性及空响应防护。其他原生端/微信内H5的既有提示保持;本轮无后端/数据库变更。
- 新增 `scripts/test-report-export.cjs`,先用HBuilderX编译微信,再执行 `D:/Develop/nvm/nodejs/node.exe scripts/test-report-export.cjs`;实际微信产物38项隔离API检查通过,无网络/数据库。微信14:41:30、Android14:36:23编译成功,脚本语法及diff检查通过。
- Chrome手机390×844/桌面1280×900,实际报告页6项、H5服务边界17项通过;503保留报告并重试实际下载,鉴权/版本绑定及错误文件不下载。全部页面API为合成响应,边界fake fetch,无真实后端联调;pageerror=0、准备阶段console为空,业务console仅刻意503。首次裸UTS导入为测试路径错误,改 `?import` 后通过。Browser plugin not available,复用缓存Playwright。本轮PDF仅头尾标志夹具,未验证实际内容渲染;中文分页证据沿用0.65与6.21,不重复宣称本轮真机验证。
- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-pdf-weixin-1791268574971/`:无凭据 `verification.json` 及截图 `h5-download-mobile.png`、`h5-download-desktop.png`。浏览器存储清空/route撤销/关闭,前台5173预览停止;未启动数据库、Redis、后端或worker,未读取默认.env、连接线上或调用模型。临时工具文件包含无服务器权限合成会话,不整体分享;前端未跟踪 `%SystemDrive%/` 继续保留。
- 发布前在微信后台单独配置downloadFile合法域名 `https://airz.hqling.cloud`,request合法域名不能替代;本轮未修改后台,用户需重新编译发行小程序。微信系统预览、保存/转发、真机域名及生产并发/容量仍未验证。REPORT-005待验收状态保持,当前台账1.56/0.66,63任务/27页面不变。
- 下一开发入口为REPORT-006行动页与报告可用性组合检查,关注处理中/失败/历史版本、行动入口的版本上下文和账户变化;不重复实施微信PDF,不自行真实模型调用、正式验收或沿用历史授权部署。前轮REPORT-002/003/004后端及档案修复也仍未上线。
## 新会话接续检查点:2026-10-06(REPORT-004)
本轮完成历史报告与重评组合开发检查,保留两仓库及REPORT-002/003全部未提交工作。小程序已由用户发布,暂不正式验收、不重复发行;本轮没有生产部署、提交或推送。
- 后端修复 `D:/AAdesk/202609/airz/application/api/controller/v1/Assessments.php` 的 `revisionId` 原始类型读取,非法数组统一返回404/REVISION_NOT_FOUND,不再由框架强转导致500;越权仍优先404/ASSESSMENT_NOT_FOUND。
- 前端修复 `packages/finance/services/records.uts`:档案详情核对评估ID和显式版本,完整度核对显式版本。实际受控错版回包已复现并修复,错误不会展示另一版收入/完整度,重新加载和局部重试恢复正确资料。
- 新增后端 `tests/report_history.php`、`tests/report_history_http_router.php`,必须显式隔离bootstrap;个人/企业初版成功、重评排队/失败/重试/新版成功、旧版显式读取、报告/匹配/PDF同版、冻结产品不变、历史解释只读、游标版本、v1兼容、匿名/越权/非法版本、引擎503与撤销Token401共215项通过。`assessment_revisions.php` 适配显式bootstrap、并发子进程及精确清理,58项通过,合计273项PHP检查;四个本轮PHP文件7.4 lint与diff检查通过。
- Chrome手机390×844/桌面1280×900共32项、82次隔离GET请求通过,全部API转发本机8098,三类错版用受控响应注入。三栏/完整匹配列表/详情、失败与处理中旧报告、新版默认与历史深链、只读解释和三次PDF下载通过;pageerror/console error/warn均0。13文件PDF收入/序号/冻结名称/身份脱敏52项检查通过,个人历史8页、企业新版3页Poppler渲染核对;未改导出模板。微信10:08:29、Android10:08:53 HBuilderX5.26本地编译成功,27页/63任务不变。Browser plugin not available,沿用缓存Playwright;真机/跨浏览器/正式模型未验证。
- 隔离ROOT `C:/Users/JUN/AppData/Local/Temp/airz-report004-20261006-1791251466341/`;MySQL5.7.26在3310随机库 `airz_product_test_1791251466341`、Redis5.0.14.1在6398/DB15。未加载正式.env、未连正式3306/6379/线上/生产worker,模型外呼0。六业务表0、故障触发器0、Redis键0,库已DROP,MySQL/Redis正常停止,8098 PHP停止,浏览器存储清空并关闭。后台常驻H5预览启动被自动审批 `blocked by policy` 拒绝,未提供更具体原因,未重试/绕过;5173也已停止。
- 安全证据:ROOT内 `verification.json`、`cleanup-result.json`、`ui-result.json`、`pdf-verification.json`;截图 `archive-mismatch-fixed-mobile.png`、`historical-matches-desktop.png`、`historical-personal-product.png` 等。fixture和浏览器日志可能含已撤销的合成Token,不整体共享或重启bootstrap,后续另建隔离环境;前端未跟踪 `%SystemDrive%/` 继续保留。
- REPORT-004整体仍开发中,本轮三处修复尚未上线;真实产品、外部查询、人工业务签收及正式验收状态不变。下一开发项为REPORT-005 PDF导出边界与容量检查,优先异常二进制、超限、取消/离页、登录状态变化和分页可读性;不要重复REPORT-004组合检查、自行真实模型调用或沿用历史授权部署。
## 新会话接续检查点:2026-10-06(REPORT-003)
本轮继续完成报告持久化开发检查,保留前轮REPORT-002及当前两仓库全部未提交工作。小程序已由用户发布,暂不正式验收、重复发行、部署、提交或推送。
- 后端实现:`D:/AAdesk/202609/airz/application/common/library/Assessment.php`、`AssessmentStore.php` 与 `AnalysisTasks.php` 将报告、匹配、当前/历史输入快照、旧解释关闭、发布指针与result_version同事务保存;真实写故障全部回滚,缺失旧解释日志安全失败,迟到结果只记原用量。新建门槛仍inputVersion=3,v1报告与旧冻结v2继续兼容。
- 新增 `tests/report_persistence.php`(75项)与 `tests/report_test_bootstrap.php`(必须显式隔离bootstrap,限制本机测试库、非正式端口及禁用的模型地址)。覆盖版本兼容、快照/模型事实复用、产品硬规则和当前配置变化、三态/null持久化、损坏哈希、四处真实SQL故障回滚、旧queued/running解释日志缺失、正常重评关闭旧解释及迟到任务保护。
- 旧回归已适配当前存储:`assessment_readiness.php`、`product_matching_tasks.php`、`assessment_demand_router.php` 显式隔离加载;`readiness_fixtures.php` 在测试内构造历史v2需求及策略,不通过生产接口新建v2。准备度/报告58项、匹配19项、任务36项,加专项共188项通过;10个PHP文件7.4 lint与diff检查通过,模型外呼0。
- 全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-report003-20261006-1791249639741/`,MySQL5.7.26在3310随机库 `airz_product_test_1791249639742`、Redis5.0.14.1在6398/DB15;未加载正式.env、未连正式3306/6379或线上/生产worker。六业务表已为0、故障触发器0、Redis键0,测试库已DROP,两个测试服务已正常停止;安全证据为ROOT内 `verification.json`。临时目录保留,不整体共享或直接重启bootstrap;下一轮另建隔离环境。
- 状态:自填报告/演示产品支线已实现,REPORT-003持久化本地检查完成;完整任务仍阻塞于真实产品、外部查询、人工业务规则签收及生产容量/守护,不能标整体验收完成。前端源码本轮未变,不重复小程序或Android编译。
- 下一开发项:REPORT-004历史报告与重评组合流程,优先检查重评处理中/失败保留旧结果、本人历史版本与匹配/PDF版本一致性,再按问题做最小修复。不要重复实施REPORT-003或运行旧版默认配置脚本,不自行启用真实模型或安排正式验收/生产发布。
## 新会话接续检查点:2026-10-06(REPORT-002)
本轮继续开发后端异步任务与补偿链,暂不正式验收、部署、提交或推送;小程序已由用户自行发布,本轮不重复处理移动端发行。
- 后端改动:`D:/AAdesk/202609/airz/application/common/library/AnalysisTasks.php` 加强合法 `task_id`、租约和补偿判断。非法/缺失任务ID不投递、不执行;异常运行任务明确失败为 `AI_TASK_INTERRUPTED`;失败日志按当前合法任务ID精确更新;未来有效租约不被恢复器误失败;queued 漏投仍补投且不增加尝试次数;迟到结果只补记原调用用量。
- 测试改动:`D:/AAdesk/202609/airz/tests/analysis_tasks.php` 必须传入显式隔离 `--bootstrap`,并改用当前 `fa_ai_chat`/`AssessmentStore` 读取状态;夹具使用 `inputVersion=3`,本轮测试显式把报告目标设为v1,只检查调度、租约、重试、Redis和日志边界。
- 验证:两个PHP文件7.4 lint通过;独立隔离 MySQL `127.0.0.1:3310/airz_product_test_2026100602` 与 Redis `127.0.0.1:6398`/DB15 中,模型关闭、假客户端回归 `PASS: 36 analysis task checks.`。覆盖并发重试/消费者、过期/缺失租约、非法任务ID、迟到结果、Redis断开补投和历史日志保护。回归后已停止3310/6398隔离服务。
- 边界:未读取或连接默认 `.env`、正式3306/6379、线上数据库或生产worker;未做真实模型、v2报告语义、生产守护/容量验收。临时ROOT含测试数据和日志,不整体共享或直接复用。
- 当前状态:REPORT-002整体仍开发中,新增代码和测试均未提交/推送;下一开发项优先为REPORT-003报告生成与持久化,继续保留v1历史兼容并单独验证v2策略/产品快照。
## 新会话接续检查点:2026-10-05
本轮收到“发布吧,小程序端我自己发布”后,已在维护窗口内通过宝塔 Playwright 完成明确生产目标 `111.230.144.231:3306/airz` 的迁移与后端发布。完整私密备份为 `/root/airz-feedback-release-20261005-114514`;迁移前后均完成预检,`fa_feedback` 的四列及 `uk_user_feedback_request(user_id,request_id)` 已补齐,`fa_user_message` 唯一索引保持存在,迁移后 `missingFields=[]`、`indexExists=true`、`duplicateGroups=0`、`changeCount=0`。迁移行摘要备份为 `/root/airz-feedback-release-20261005-114514/migration/feedback-20261005-115239-3e7a68c4.json`。
- 已按精确清单发布 7 个后端文件,发布包 SHA-256 为 `597A2BC55D8877FCA5EFC205C1B0761D14B0B1E614196DD7C1C1FF7B8775D4B3`;线上文件哈希与发布包一致,PHP 7.4 lint 通过,权限为 `644 root:root`。`php-fpm-74`、`redis`、`airz-analysis` 已恢复 active,Redis 认证后分析队列为0,worker 发布后无 warning/error 日志。
- 只读烟测通过:`/api/v1/home=200`;匿名 `/api/v1/messages`、`/api/v1/products`、`/api/v1/points` 均为401;后台反馈入口返回登录页;`/.env=404`。未创建真实反馈或回复。临时发布包、迁移脚本、临时 env、解压目录和烟测响应已清理。
- 本轮只发布后端,小程序端由用户自行发布;未提交、未推送、未创建 PR。回滚只恢复代码,保留迁移后的字段、反馈、回复、审计和通知数据,禁止整表恢复。详见[反馈与消息发布清单](反馈消息发布清单.md)。
## 新会话接续检查点:2026-10-04
本轮已完成0.60反馈原键恢复与回复通知的组合开发检查,业务实现无新增变更,不进行正式验收、提交/推送或部署。0.59建议的消息跳转、分类分页、已读水位与账户切换组合检查已补充,后续无需把它当作尚未执行的本轮任务。
- 两仓库及既有未提交改动均保留;新增后端 `D:/AAdesk/202609/airz/tests/feedback_recovery_notifications.php`。首次执行修正新测试的分页游标断言,业务实现保持既有契约。最终组合24项、通知43项、反馈67项,共134项通过,PHP7.4语法通过,夹具回滚/并发清理及原行保持,模型调用0。
- 前端Chrome Playwright手机390×844/桌面1280×900补充42项、38次受控请求通过,覆盖分类20+3分页/503重试、已读水位外新通知、第一页之外反馈目标、通知跳转与原键恢复/确认、跨账户旧弹窗/动作/迟到分页/401/成功回执。pageerror=0,console仅刻意503/401两条,截图无横溢或遮挡。所有API在浏览器内拦截为合成响应,无新增真实HTTP联调或真机证据;Browser plugin not available,复用已有缓存Playwright。
- 全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-feedback-combo-1791117356770/`,MySQL8.0.44随机库 `127.0.0.1:3309/airz_product_test_1791117356770` 从schema初始化26表;不是生产MySQL5.7验证。显式bootstrap不加载正式.env、模型关闭,无正式3306/线上/worker调用,未启动Redis或PHP HTTP。库已DROP、MySQL正常停止、浏览器存储清空并关闭,3309/8097/6398无监听,5173原预览保留。
- 安全证据:ROOT内 `verification.json`、`ui-result.json`、`cleanup-result.json`、`combo-pending-mobile.png`、`combo-confirmed-desktop.png`。自动审批以 `blocked by policy` 拒绝本轮文件清理,未重试或绕过;本ROOT与初始化失败目录 `C:/Users/JUN/AppData/Local/Temp/airz-feedback-combo-1791117251852/` 的mysql-data/runtime/工具文件及本轮生成日志保留,不整体共享或启动bootstrap。仅单独参考安全证据,历史私密ROOT未改,新检查必须另建隔离环境。
- 当前台账1.50、开发文档仍v1.46,63任务/27页面;前端源码未变,未重复Android/微信编译,沿用0.59编译记录。后端最新发布仍0.55,用户已发布的小程序不含0.57—0.59新增源码,正式验收状态不因本轮检查改变。
- 下一步优先准备0.57—0.59配套发布的文件清单、发布顺序、兼容性和回滚检查,可先做本地准备;实际部署/前端发行需要新的明确授权。积分规则/正式迁移、真实产品及私有附件/短信/数据/人工客服依赖继续按既有业务决策,不自行启用或虚构供应商能力。
## 上一轮接续检查点:2026-10-04(0.59历史)
本轮已按用户“阅读交接并继续下一步开发”完成0.59反馈回复与站内消息通知联动,代码、隔离检查和文档已收尾;继续暂不做正式验收。此前0.58的“通知联动尚未实施”已被本节取代。
- 两仓库仍为前端 `D:/WorkSpace/cyun/ai融资`、后端 `D:/AAdesk/202609/airz`;保留所有既有未提交及未跟踪改动。本轮未提交/推送、部署或正式验收。
- 后台 `resolved/closed` 非空回复首次产生一条本人服务通知,事件键 `(user_id,feedback_replied,feedback_id)`;重复保存/修订不重复通知,不重置已读,点击查看最新回复。处理中/空回复/匿名/已删除会员不通知,无历史自动回补。反馈、审计、通知同事务,通知故障返回 `FEEDBACK_NOTIFICATION_UNAVAILABLE` 并全部回滚;复用既有表和唯一索引,无DDL。
- 消息目标 `{kind:feedback,feedbackId}` 同时验证消息与反馈归属;删除或归属变化显示不可用。消息/帮助/登录前端只生成白名单路由,通过本人单条API读最新回复并核对ID,旧反馈不在第一页也能查看;局部重试、登录回跳、离页/换账户/旧弹窗/旧列表动作及迟到401守卫已实现。
- 后端通知43项、反馈67项、处理32项,共142项通过;Chrome手机390×844/桌面1280×900页面48项、51请求通过(46真实隔离、5受控故障/坏响应),含完整真实密码登录回跳和实际撤销Token后的迟到401。pageerror=0,3条console仅刻意503/404/401,截图无横溢或遮挡。Browser plugin not available,使用已有缓存Playwright,无新增依赖;Android19:38:59、微信19:39:40编译成功,27页面。
- 当前台账1.49、开发文档v1.46;仍63任务/27页面,SUPPORT-002及MSG正式验收状态不因开发检查改变。后端最近发布仍为0.55,已发布的小程序不含0.57—0.59新增源码;反馈新增目标需配套前端,不能沿用历史部署授权。
- 下一接续可补消息跳转与原键恢复组合场景、分类分页及账户切换的剩余开发检查,再按台账推进供应商无关项;不要重复把通知功能当作未实施。积分规则/正式迁移、私有附件、短信/数据及人工客服仍遵循原业务决策。
- 当前仅5173预览保留;新建测试库与Token已清除,3309/8097/6398无监听。私密临时文件删除被策略拒绝,精确ROOT及证据见下节;不能直接复用、整体共享或启动历史bootstrap。默认后端.env按正式库风险处理,不直接初始化应用或运行worker;新检查另建隔离环境。
## 本轮开发:2026-10-04 反馈回复与消息通知联动
主要入口:后端 `application/admin/library/FeedbackEditor.php`、`application/common/library/UserMessages.php`、新增 `tests/feedback_notifications.php`;前端 `services/messages.uts`、`packages/account/messages/messages.uvue`、`packages/content/help/help.uvue`、`packages/content/services/feedback.uts`、`packages/account/login/login.uvue`。`FeedbackRecords.php` 的上一轮requestId契约保留。通知正文仅为查看提示,不复制反馈原文/回复,不向外部渠道发送消息。
隔离ROOT `C:/Users/JUN/AppData/Local/Temp/airz-feedback-notify-1791113938987/`,库 `127.0.0.1:3309/airz_product_test_1791113938987` 从schema初始化26表,仅合成资料;PHP8097、独立Redis6398/DB15和随机前缀,未加载正式.env、未连接正式3306/线上、无模型/worker调用。新MySQL8默认认证与旧PHP不兼容,已仅在本轮隔离实例切换为mysql_native_password后通过检查,未修改系统或正式MySQL。
收尾已清除两名合成会员全部Token(含真实登录新增凭证)、DROP本轮库,MySQL/Redis正常关闭、PHP停止、浏览器关闭,3309/8097/6398无监听;5173预览仍使用配置中的体验API。自动审批以 `blocked by policy` 拒绝删除本ROOT下 `fixture.json`、`runtime`、`mysql-data`,未重试或绕过,私密文件保留;不得整体共享或直接复用,下一次须新建隔离环境,历史测试ROOT未动。
安全证据:本ROOT的 `ui-result.json`(48项、51请求)、`verification.json`、`cleanup-db-result.json`、`cleanup-result.json`;截图 `feedback-reply-mobile.png`、`feedback-reply-desktop.png` 已视觉核对。fixture含合成Token/密码,不属于安全证据;不要直接输出或分享。开发检查不能代替正式发布、运营/真机、多设备或供应商验收。
## 上一轮接续检查点:2026-10-04(0.58历史)
用户准备切换新会话时开发停在0.58会员反馈原键恢复,源码、隔离开发检查及文档收尾已完成。当时下一项“反馈回复与站内消息通知联动”仅为建议,已在最新0.59实施;该次交接仅补记录,未新增业务代码、提交、推送或发布。
- 前端仓库:`D:/WorkSpace/cyun/ai融资`;后端仓库:`D:/AAdesk/202609/airz`。两仓库保留未提交及未跟踪改动,新会话先检查适用指令及工作树,不能回滚或批量覆盖。
- 已完成:0.57后台反馈并发保护/事务审计、0.58会员待确认提交恢复;本轮后端67项、页面93项及Android/微信编译通过。当前台账1.48、开发文档v1.45,任务仍63项、页面27个。
- 发布状态:此前小程序已由用户发布,版本/渠道未知;0.57后台增强和0.58前后端新增源码尚未发布,后端最近发布见0.55。新前端依赖后端requestId回执,须先或配套发布;当前没有新增部署授权。
- 下一开发入口:后端 `application/admin/library/FeedbackEditor.php`、`application/common/library/FeedbackRecords.php`,前端 `services/messages.uts`、`packages/content/help/help.uvue`。先阅读现有消息持久化及目标白名单,再实现后台回复触发本人通知、重复保存不重复通知、消息跳转本人反馈和账户切换守卫;通知需与反馈保存/审计的事务边界一致。
- 环境复核:本次交接前只确认5173预览仍监听,3309/8097/6398无监听;本轮测试库和Token已清除。私密临时文件删除被策略拒绝,精确ROOT及证据见下一节,禁止直接复用或整体共享。后端默认.env仍按正式库风险处理,不能直接初始化应用、运行worker或旧reset/cleanup;新检查须另建明确隔离环境。
- 仍待依赖:积分规则/正式迁移、私有附件、短信/数据与人工客服供应商按既有决策处理,不将未确认规则或供应商能力作为已完成项。
## 本轮开发:2026-10-04 会员反馈原键恢复
用户要求继续开发,暂不做正式验收。帮助页发送前按会员保存并回读 `{requestId, content}`,刷新、离页重进、真正关闭Chrome进程再启动均恢复原请求键和原文,锁定原内容并显示“确认上次提交”,不自动POST。退出、401及切换账户仍清理其他私有缓存,只保留本次待确认命令;原会员重新鉴权后才恢复,另一会员不能看到或确认。普通草稿、Token、反馈列表和回复不保存在该恢复记录中。
后端DTO新增 `requestId:string|null`,历史记录保留null,原键重放返回原记录当前处理状态。前端核对回执原键及完整响应,再比较本机命令后清理,迟到响应不能清新键或回填另一账户;网络/401/服务故障/409/坏回执保键,确定参数/附件拒绝才清键并保留可编辑原文。存储读写/清理故障、静默失败或损坏记录阻止覆盖并显示重新读取入口;修复H5同步读取吞异常返回空值时误判为无记录的问题,删除成功以键不存在确认。复用既有列与唯一索引,无新增DDL。
检查通过:反馈后端67项;真实隔离HTTP配合Chrome Playwright手机390×844/桌面1280×900主流程72项、进程重启及存储故障补充21项,共93项页面开发检查、29次反馈POST。覆盖成功入库后丢回执、刷新/离页、列表503仍确认、实际Token撤销401、主动退出、账户切换、迟到回执、错/缺requestId、坏回复、422确定拒绝及存储异常。重新登录使用真实 `saveSession` 恢复合成会话,未覆盖完整真实登录表单;两批pageerror均0,13条console仅刻意网络/401/422/503故障。Browser插件不可用,使用已有缓存Playwright,无新增依赖;最终手机和列表加载完成的桌面截图无横溢/遮挡。HBuilderX 5.26最终Android 19:14:42、微信19:16:09编译成功,27页面。
隔离ROOT为 `C:/Users/JUN/AppData/Local/Temp/airz-feedback-recovery-1791111261423/`,数据库为 `127.0.0.1:3309/airz_product_test_1791111261424`,26张表全部由schema初始化,仅合成资料;PHP8097、独立Redis6398/DB15及随机Token前缀,不加载正式.env、未连接正式3306/线上,无模型/worker调用。收尾已DROP本轮库、清除两枚Token,MySQL/Redis正常关闭、PHP停止,3309/8097/6398无监听,浏览器关闭。自动审批以 `blocked by policy` 拒绝删除ROOT下 `fixture.json`、`browser-profile`、`runtime`、`mysql-data`,未重试或绕过,私密文件保留;禁止整体共享或直接复用,后续须重新建立明确隔离环境。历史测试ROOT未动。
安全证据:本ROOT的 `ui-result.json`(72项)、`ui-extra-result.json`(21项)、`cleanup-db-result.json`、`cleanup-result.json`,截图 `feedback-pending-mobile.png`、`feedback-confirmed-desktop.png`(列表加载完成后补拍)、`feedback-storage-recovered-mobile.png`。JSON中的会员计数是各自检查阶段快照,不代表清理后仍有数据。H5开发预览 `http://localhost:5173/` 保留;浏览器测试转发已随测试浏览器关闭,预览仍使用配置中的体验API,不能视为后端新增回执已发布。
当前发布边界:用户此前发布的小程序版本/渠道未知,这批前端源码尚未发行;后端仍以0.55发布为准,0.57后台增强及本轮requestId回执未部署。新前端必须在后端回执支持 `requestId` 后或配套发行,否则旧后端即使已经保存反馈,前端仍保持待确认。本轮未提交/推送、不复用历史部署授权、不做正式验收。下一开发项建议反馈回复与站内消息通知联动,补齐本人反馈目标跳转、幂等通知及账户切换守卫;积分规则/正式迁移、私有附件、短信/数据与人工客服供应商继续按原决策处理。
## 上一轮开发:2026-10-04 小程序已发布,后台反馈处理增强
用户确认小程序端已经发布,未提供版本号/渠道;后文“前端尚未发行/需重发小程序”均为历史阶段记录,当前小程序状态以本节为准,H5及其他端仍各自记录。继续开发,不开展正式验收。本轮新增后端改动尚未部署,不沿用此前发布授权。
后台反馈保存新增 CSRF、SHA-256快照版本冲突、当前管理员/角色权限复核和事务审计。旧页面保存不会覆盖新回复,提示复制当前草稿后重新打开核对;同状态同回复保持处理人、不重复审计,审计失败回滚反馈。成功/拒绝/历史日志仅保留安全编号、状态、版本及错误枚举,不保存会员原文、回复或Token。页面补标题和窄屏弹窗负边距修复;现有表/角色复用,无DDL/权限增量。会员小程序反馈API契约未变。
反馈服务65项、处理事务/双PHP进程/审计故障32项、HTTP25项/13请求、权限回归227项/158请求、重试审计90项、模型配置审计20项、权限定义97项、9PHP lint与反馈JS语法通过。页面使用本机缓存Playwright(Browser plugin not available)对真实隔离HTTP完成22项检查:1280×900/390×844、冲突持续显示并保留草稿、打开最新回复和再次保存,console/error/warn为0。不是生产或运营验收,不调用模型/worker或正式数据库。
本轮隔离ROOT为 `C:/Users/JUN/AppData/Local/Temp/airz-feedback-edit-20261004-21199964/`,库为 `127.0.0.1:3309/airz_product_test_2026100421199964`。测试账号、反馈、日志已清空,私密UI夹具JSON已删除;隔离库已DROP,MySQL通过mysqladmin正常关闭,PHP8097/8098已停止,三端口无监听,浏览器已关闭。自动审批拒绝删除该ROOT下mysql-data/runtime/sessions及bootstrap/router/fixture工具,仅返回blocked by policy;未重试或绕过,文件保留,禁止当作可复用环境直接启动。与前轮遗留 `airz-home-catalog-20261004*` 无关,前轮文件未动。安全证据为本ROOT的 `ui-result.json`、`verification.json`、`feedback-conflict-desktop.png`、`feedback-conflict-mobile.png` 和 `feedback-saved-mobile.png`;不整体共享含会话的临时目录。
当时规划的会员反馈离页/进程重启原键恢复已在最新0.58完成,见本文件顶部。积分规则/正式迁移、私有附件、短信/数据及人工客服供应商仍按已有业务决策处理。
## 本轮部署:2026-10-04 后端发布
用户已授权继续开发并部署后端。本次只发布后端到 `https://airz.hqling.cloud`,不发布前端,不执行数据库迁移、积分表迁移或正式业务验收。线上目录为 `/www/wwwroot/xctai.cn`,API 前缀 `/api/v1`,后台入口 `/ZYurKboadX.php`。
发布包 `/tmp/airz-release-20261004.zip` 实际部署 3716 个文件,SHA-256 为 `9A39A29E77D43EEF5DA2CE5E1217FB24B4E1DBCDF97E7E266C7FDF7E55E5FEFB`。按 `stage → prepare → deploy → resume → verify → cleanup` 完成;prepare 确认 26 张表且 worker 已停,deploy 返回 `DEPLOYED files=3716`,resume 返回 `worker=active`,cleanup 私密归档为 `/root/airz-backend-20261004`。PyMySQL 仅作为临时部署依赖,已在结束后清理。
verify 与本机只读烟测:`/api/v1/home` 200;匿名 `/api/v1/messages`、`/api/v1/products`、`/api/v1/points` 401;`/.env`、`/.git/config`、数据库结构及旧发布包路径 404。`airz-analysis`、`php-fpm-74`、`redis` 已恢复,未调用收费模型或修改线上业务数据。后续继续开发前先阅读开发进度0.55和本节;前端尚未发行,真机、多设备、真实模型和正式验收仍未完成。
## 本轮开发:2026-10-04 反馈与消息适配层响应契约增强
反馈帮助页已用提交回执及时回填列表,回复优先显示 `handledAt`,并可读取单条反馈详情;服务层严格校验反馈编号、状态、正文、时间、分页数字、分页标记和列表项。消息服务严格校验分类、编号、快照、分页游标、消息字段、详情关联对象及 `read-all` 回执;关联目标只生成报告和评估白名单路由,防止通知数据直接下发任意链接。首页/帮助页保留页面代次与账户令牌守卫。
首次 Android 编译发现 `feedback.uts` 列表 `map` 的 UTS/Kotlin 回调类型推断错误,已显式转换为 `UTSJSONObject[]` 后修复。HBuilderX 5.26 Android 与微信小程序 27 页面最终编译通过,`git diff --check` 通过。尚未执行隔离数据库回归、线上部署、前端发行、真机或正式验收;所有改动仍未提交。
## 本轮开发:2026-10-04 首页聚合 BASE-004(隔离数据库回归完成)
后端新增只读 `GET /api/v1/home`,返回公开课程/文章摘要;带有效登录凭据时仅返回当前会员的评估元数据和未读消息数。草稿评估不计入,排队任务显示“排队中”,查询不读取输入资料、报告、匹配正文或消息私密字段。前端首页已接入严格响应解析并移除硬编码数量,聚合失败时保留公开内容和真实消息数的局部降级。
后端 `tests/home_catalog.php` 已补充匿名及登录隔离回归,覆盖草稿过滤、本人未读数、最新状态和敏感字段不泄露;夹具事务回滚、无模型/worker调用。新建临时 MySQL 8 实例仅监听 `127.0.0.1:3309`,从 `database/schema.sql` 初始化随机库 `airz_product_test_20261004123000` 后执行回归,结果为 `checks=8`、`modelCalls=0`、`writes=0`、`rollback=true`。PHP 7.4 lint、首页 Web/Android/微信编译与 `git diff --check` 已通过;测试后 3309 已停止且无监听,正式 3306、线上数据库和业务数据未连接或修改。临时目录清理由本机策略拦截,未影响工作区或正式服务。下一步继续前端发布前的开发项,仍不进行正式验收。
## 本轮开发:2026-10-03 FAQ 服务端导入与隔离 HTTP 联调
FAQ 初始内容已按 `database/faq_initial.json` 导入本机隔离 MySQL `127.0.0.1:3310/airz_product_test_20261003`:首次预检显示 8 条待导入,首次 apply 成功插入 8 条;数据库复核为 8 条 `published`、8 个唯一 slug。重复预检和重复 apply 均保持 `keptExisting=8, inserted=0`,导入回执记录了 ID、slug 和内容 SHA-256。正式 `.env`、3306 数据库和线上环境均未连接或写入。
在同一隔离库启动临时 PHP HTTP 服务后,`GET /api/v1/help/faqs` 及三个分类筛选分别返回 8、3、3、2 条;非法 `category`、非法 `page` 返回 HTTP 422,POST 返回 HTTP 404。临时将 8 条 FAQ 全部下架时接口返回空 `items`,随后已恢复 8 条 `published`。服务端配置显式锁定隔离主机、端口、库名并关闭 DeepSeek,未调用模型或 worker。
HTTP 联调完成后已停止本轮 PHP/MySQL 临时进程,删除临时 INI、路由/bootstrap 和运行目录;后端工作树中原有未提交改动均保留。FAQ 服务端导入与公开读取联调完成,下一步接前端 FAQ 页面真实读取并做页面级错误/空态联调;仍不进行线上导入或前端发行,除非另行明确授权。
## 本轮开发:2026-10-04 FAQ 页面级隔离联调(已完成)
H5 入口 `http://localhost:5173/#/packages/content/help/help` 已使用 Playwright CLI 完成桌面 1280×900 与手机 390×844 检查。Browser 插件在本会话不可用,按前端测试技能记录为 fallback;浏览器只把正式 API URL 的 FAQ 请求转发到本机隔离 PHP `127.0.0.1:8097`,`services/config.uts` 继续保持 `APP_ENVIRONMENT=test`,未改为本地或正式环境。
真实隔离读取显示 8 条 FAQ,分为“账户使用”3 条、“融资评估”3 条、“资料与隐私”2 条;首条展开答案与接口内容一致。页面身份、非空首屏、无 Vite/Webpack 错误遮罩、无横向溢出及控制台 error/warn 均通过。浏览器层受控 503 显示“暂时无法加载帮助内容,请稍后重试”和“重新加载”,恢复转发后重新加载回到 8 条;空 `items` 显示“常见问题正在整理中”。从 FAQ 进入首页再返回的延迟响应场景中,离页后的伪造数据没有回填,返回后正常隔离 FAQ 保持。
证据保留在 `C:/Users/JUN/AppData/Local/Temp/airz-faq-page-20261003/`,包括 `faq-expanded-desktop-verified.png`、`faq-mobile-verified.png`、`faq-error-mobile.png`、请求/控制台记录和导入回执。收尾按回执逐行核对 ID、slug、内容 SHA-256 后,仅在 `127.0.0.1:3309/airz_product_test_20260930` 事务删除本轮新增 8 条,回执 ID 残留为 0、已发布 FAQ 为 0;未连接或修改正式 3306/线上。8097、3309、5173 已全部停止,H5/FAQ 尚未发行到正式前端。
本轮只完成隔离联调和证据整理,未进行线上 FAQ 导入、正式前端发行、真机/多设备验收或反馈客服接入;下一步需在明确发布授权后再安排正式资源导入与发行,或继续反馈提交/处理闭环开发。
## 本轮部署:2026-10-02 后端发布
后端提交 `5fee3cf` 已部署至 `https://airz.hqling.cloud`,API 前缀为 `/api/v1`,后台入口为 `/ZYurKboadX.php`。发布包实际部署 3,714 个文件,SHA-256 为 `C36BE3FD6AB7E64833F03FBC400DEC4924521809789B1C55C68348D5EFE5DD57`;服务器私密备份为 `/root/airz-backend-20261002/`。`airz-analysis`、PHP-FPM、Redis 已恢复运行,队列为空,积分配置仍关闭且未执行原表迁移。公网内容接口、鉴权入口、敏感路径和 HTTP→HTTPS 跳转已完成烟测;详细过程见后端 `deployment-baota.md`。
前端尚未重新发行;积分页面真实余额、规则、流水读取、登录恢复及隔离页面联调已完成,积分原表迁移与正式奖励发布另行安排。
## 本轮开发:2026-10-02 积分页面恢复与隔离联调
页面修复未知签到原键被今日已签阻断、确定拒绝后卡旧键、读取失败无法确认旧请求、跨接口混合日期/规则及账户切换旧上下文问题。四读取原子显示;加载开始恢复pending且错误页保留确认按钮;按Token/页面代次/可见性处理迟到响应,规则/任务/签到/分页/明细展开动作前核对账户。共享API错误保留HTTP状态和业务码,确定未入账才弃键;网络/账本/写冲突及坏回执继续原键确认。成功回执严格校验奖励/余额/重放标记,历史balanceAfter不覆盖当前余额。
手机390×844/桌面1280×900 Chrome Playwright主流程98项通过,127次浏览器积分请求中123次进入本机真实后端、4次受控故障;登录回跳使用合成认证响应。覆盖默认关闭、20+7流水分页、NULL/零/负记录、规则及展开、读503恢复、跨日/规则切换、确定拒绝弃键、写冲突保键、实际提交后丢响应/刷新已签/坏当前规则原键确认、五种坏成功回执、账户切换及迟到401。pageerror=0,无框架遮罩/横溢;13条console日志均为刻意HTTP错误或空JSON响应。证据在 `C:/Users/JUN/AppData/Local/Temp/airz-points-page-20261002/`,完整状态见开发进度0.51。
补充81项/81请求通过,共179项/208积分请求(201真实隔离后端、7受控故障)。额外覆盖真实网络中断、成功丢回执后流水503仍确认、分页与展开换账户、实际请求冲突/无效输入/负余额拒绝及未知503保键。共享会话清理现在只保留原userId的三字段未确认命令,其它资料/会话仍清,恢复必须重新鉴权;契约已更新v3。最终Android 19:22:21、微信小程序19:23:14编译通过,H5保留既有编译警告。
登录清理专项35项通过(15真实积分请求、2合成登录):真实提交丢响应后撤销Token,401清除会话和资料哨兵但保留原键,重新登录该会员后用原键真实重放、只一笔到账。累计214项/223积分请求,其中216真实隔离后端、7受控故障。专项实际覆盖401路径,过期/主动退出/saveSession切换的同一清理例外为源码覆盖,完整交互未另测。
清理完成:本轮两个随机积分库、空源库、Token、runtime、私密fixture/INI移除,独立MySQL3309正常关闭、PHP64115停止;原Redis队列摘要保持,3306与线上未动、模型/worker未调用。`ui-result.json`、`ui-extra-result.json`、`ui-auth-recovery-result.json`、截图、两份cleanup回执及verification保留;脚本不能复用已删夹具,继续时须重新准备明确隔离环境。本轮3309/64115/5173均无监听;后台重新启动H5预览被自动审批以blocked by policy拒绝,未绕过。历史PID和默认.env不可直接复用。
正式积分仍enabled=false、DEC-POINT待确认、原表两列/两索引未迁移,本轮未生产写入、未调用模型/worker、未前端发行或运营/真机验收。POINT-002/004开发中,邀请与资料奖励未实施。下一步顺序:确认DEC-POINT业务与发布参数 → 获得具体迁移授权后显式只读预检/完整备份/4项增量迁移 → 复检并安排发布冒烟 → 发行前端。合成7/13分不能作为业务批准,不复用历史部署或迁移授权。
## 前序检查:积分联调前置阻塞(页面状态已由本轮更新)
2026-10-02 已用项目指定的 HBuilderX 5.26 CLI 完成 Web 与 Android 编译,均成功;仅保留既有 `services/layout.uts`、PDF 下载空响应等编译器 warning。随后临时启动独立 MySQL 3309(只含积分合成表结构),运行 `tests/points_http.php --env=<explicit-isolated.ini>`,999 项、87 个请求全部通过;脚本自建的随机数据库、Token、临时运行目录和 HTTP 服务已清理,3306 实例与线上环境未触碰。页面真实联调尚未执行。
源码复核发现正式 `fa_user_score_log` 尚未应用 `request_id`、`rule_version` 及两个索引时,`UserPoints::listing()` 与 `checkIn()` 会依赖缺失列并返回 `POINT_LEDGER_UNAVAILABLE`;不能通过运行时删除字段或伪造兼容数据绕过,否则会破坏签到幂等。下一步顺序固定为:确认 DEC-POINT 规则与发布参数 → 在已迁移的隔离合成库完成页面联调 → 获得迁移授权后执行只读预检、完整备份和 4 项增量迁移 → 复检并重部署/冒烟 → 再发行前端。未获规则和迁移授权前不改线上表、不发布奖励、不发行前端。
## 本轮开发:2026-10-02 积分页面真实读取
积分页 `packages/account/points/points.uvue` 已切换为读取后端 `/points`、`/rules`、`/tasks`、`/ledger`,移除本机签到天数、固定 10 分和体验邀请码。关闭配置下保留 `null` 奖励并显示服务未发布,不伪造到账;流水使用服务端快照游标,空流水允许 `snapshotId=0`。
签到请求由 `services/points.uts` 生成并按当前账户保存 `requestId`、服务端业务日和规则版本;网络结果不确定时沿用原键确认,成功后重新读取余额。登录入口增加 `resumePoints=1` 白名单回跳,页面异步请求校验页面代次与当前 Token,离页或切换账户的迟到响应不会覆盖新状态。积分规则仍默认关闭,未执行原表迁移或正式奖励发布。
HBuilderX 5.26 Android 与微信小程序 27 页面编译均通过。前端尚未重新发行,真实设备和服务端开启规则的到账流程待后续业务规则确认。
## 本轮开发:2026-10-01 积分协议与隔离检查
用户继续开发,仍暂不做运营、真机或发布验收。积分五接口协议已补显式Bearer、原始HTTP方法和覆盖头拒绝、JSON Content-Type/三唯一字符串字段、原始query白名单/重复与编码拒绝;五个精确路径错误方法405,未知路径404,v1框架错误补no-store。Common现有CORS入口已在鉴权前处理允许Origin的匿名OPTIONS,本轮未改共享CORS或其它API鉴权。
真实HTTP87请求/1079项检查通过:草案/发布/暂停/坏规则、同键历史重放、跨日/规则变更、实际丢弃已提交成功响应后原键确认、停用/删除/撤销、Cookie/旧Token头拒绝、原始query和JSON重复键、本人快照分页/隐私/旧NULL/0、余额边界、坏回执和Redis不可用。测试用新合成数据库、Redis DB15随机Token前缀及临时ROOT/RUNTIME、随机ENV_PREFIX;不加载仓库正式.env。自建数据库、Token、服务和临时文件已删除,原两表结构/数据及原Redis队列摘要保持,0模型/worker调用。
主服务238项、HTTP输入190项纯检查通过,原表23项只读预检通过(4增量/14类质量计数全0)。迁移质量检查新增非NULL历史时间(0至253402271999上海四位年份范围)及正UINT流水主键,NULL历史时间继续保留;首次快照坏ID映射POINT_LEDGER_INVALID,不误报客户端422。
迁移纯110项、独立合成apply/双表完整备份/Windows ACL/恢复89项通过。只复制共享两表结构,在第一新库合成2会员4流水,apply4增量/重复apply0;完整schema+NDJSON恢复第二新库、逐列摘要一致,目录3文件仅当前用户ACL及读写probe验证通过。演练修复Windows原生绝对路径及父级路径校验,补纯validateBackupPath。两个自建库、私密INI/备份/probe按所有权精确清理,共享原表摘要保持;安全回执C:/Users/JUN/AppData/Local/Temp/airz-points-migration-20261001/apply-20261001-115749-d50a5cd87fd5a84a/verification.json保留,不能把合成恢复当生产迁移证据。
业务规则仍待DEC-POINT确认,真实配置enabled=false、版本/奖励/权益/期限/等级策略null。POINT-002开发中,POINT-003未做,POINT-004积分页面尚未接后端,27页面/63任务保持。下一子项可实施积分页真实余额/规则/流水读取、登录恢复和签到原键确认;未发布状态不写死10分或固定邀请码,不导入本机体验记录。原表迁移、实际奖励发布和部署另行安排,不复用历史生产授权。
新HTTP开发检查入口为后端tests/points_http.php --env=<明确本机3309私密环境>,附points_http_bootstrap.php/router.php;脚本自行建立和清理独立合成库/临时服务,不复用旧bootstrap初始化应用。3309/PID19100、8097/PID43340仍仅监听127.0.0.1;继续先核对监听/配置,不默认运行worker、旧cleanup/reset或读取正式.env。
## 历史开发:2026-10-01 积分后端基础(默认关闭、原表未迁移/未部署/未接页面)
用户继续下一轮,数额/权益/期限/等级的首阶段建议尚未获业务回复,DEC-POINT/POINT-001待确认。已新增PointsRules/UserPoints、v1 Points五路由(余额/规则/流水/签到/任务),默认enabled=false且规则版本、奖励、权益/期限/等级策略为null。POINT-002后端基础开发中,POINT-003未做,POINT-004页面仍本机体验签到+10及固定码,未接后端;27页面/63任务保持。完整接口与规则状态见[积分契约](积分规则与开发契约.md),结构/迁移说明见后端 `D:/AAdesk/202609/airz/database/points-design.md`。
入账先锁正常会员、优先原成功请求回执,再校验锁后上海日期、固定当日事件及发布规则;同日同键重放、异键拒绝,余额/一条完整流水同事务,历史balanceAfter不覆盖当前余额。仅1062/1205/1213且确定回滚映射写冲突,未知提交/回滚为账本不可用。流水ID有界游标只本人,NULL历史元字段保留,不下发memo。旧后台score/level修改与旧User::score封闭,现有level 0/1初始化保持;资料/邀请任务不可用,不给普通运营发奖入口。
schema.sql期望增加request_id CHAR(36)、rule_version VARCHAR(64),ASCII ascii_bin可空,唯一(user_id,request_id)及idx_user_point_id(user_id,id),ScoreLog中文元注释已补。迁移脚本 `database/migrate_points.php` 默认只读、显式环境/精确目标,apply需停写确认及双表完整私密备份,MySQL DDL隐式提交、无自动恢复。本轮只读预检已在3309/airz_product_test_20260930通过:4项增量、质量计数各项0、applied=false;修正PHP7.4的原生事务追踪,采用PDO::beginTransaction配合RR READ ONLY。未实际迁移任何原fa_user/score_log,apply、完整备份和Windows ACL尚未运行。
本轮开发检查通过:主服务纯237项、旧写保护纯98项、迁移纯84项、隔离事务45项、独立只读预检22项及16PHP lint。事务只使用127.0.0.1:3309隔离库随机pts_合成表,真正双PHP同键/异键、锁等待跨业务日和trigger故障回滚覆盖;原fa_user/score_log结构与数据摘要保持,合成表精确清理且余留0。只读预检连续两次、精确目标、13类安全计数、无backup/apply及原两表结构/数据摘要一致通过。未正式库、未默认.env、未部署、未HTTP/浏览器/Redis/worker/模型,不开展运营或真机验收;后端源码/合成表检查不等于页面已到账。
下一步先确认业务规则,再显式隔离迁移apply/备份/重复预检验证、HTTP开发检查及前端真实读取/原键确认联调;邀请资格/关系留POINT-003,完整POINT-004后续推进。3309/8097仍仅监听127.0.0.1、原PID保持;继续先核对隔离监听/bootstrap,不默认初始化应用、运行worker、旧cleanup/reset或重用历史生产授权,默认.env仍指正式库。
## 历史设计:2026-10-01 积分规则与开发契约(0.47)
本轮仅整理规则/接口/数据库设计草案,新增[积分规则与开发契约](积分规则与开发契约.md)及后端 `D:/AAdesk/202609/airz/database/points-design.md`;未实现任何积分API、签到到账、迁移脚本或部署,未连接DB、执行运行测试或收费模型。POINT-001仍受DEC-POINT待确认阻塞,POINT-002/003/004未实施,27页面/63任务保持;不把本轮文档校验称为开发检查通过。
首阶段建议每日10分、服务端上海业务日每日一次且不补签,资料/邀请关闭,积分不导入本机体验记录。奖励数额、权益、有效期和会员level策略待确认;未发布规则必须停止新入账且奖励null,不使用页面示例兜底。现有score_log已具business_type/business_id、uk_user_business、idx_user_time,首阶段仅拟新增request_id/rule_version两个可空字段、用户请求唯一及idx_user_point_id(user_id,id)游标索引,成功流水保存冻结回执,不重复增加已有业务列/索引或另建签到表;本轮只读仓库结构,目标库须实施前显式预检。
拟接口保留POST /points/check-in,严格三字段requestId/expectedRuleVersion/expectedDate,expectedDate为服务端日期预期、不是补签,取得用户锁后按当日验证,防锁等待跨午夜误发奖。流水目标改为snapshotId/beforeId有界游标,当前无已发布积分API;旧成功请求跨日/暂停可返回原回执,随后重新读取余额,不能用历史balanceAfter覆盖当前值。后台绝对值score编辑、User::score吞异常及level联动是实施前门禁;邀请关系/资格/奖励另属POINT-003。
下一步先确认首阶段规则,再实施POINT-002的写方保护、明确配置、字段增量、余额/流水/签到服务及相应页面;完整邀请和POINT-004后续推进。本轮正式库、默认.env、线上、源码/测试/schema保持,不复用此前生产迁移或部署授权。继续前仍先核对隔离监听/bootstrap,不默认运行worker或旧cleanup/reset。
本轮仅文档校验:8目标文档UTF-8无BOM/无行尾空白,两新方案10处本地链接目标存在、围栏配对,两仓库限定文档diff检查通过(仅既有LF/CRLF提示);只读方案复核已对齐源码字段/已有索引,补清错误优先级、已回滚竞争错误码及ID游标索引。未连接数据库/Redis/HTTP、未调用模型,不是运行测试,未形成真实积分开发检查或到账证据;POINT-001决策仍未批准。
## 历史开发:2026-10-01 模型运行参数与调用额度受控配置(未部署)
用户要求继续开发,仍暂不做运营、真机或发布验收。本轮ADMIN-003独立 `GET modelconfig/index` / `POST modelconfig/update`受控配置子项源码完成,四字段为暂停新调用、新评估模型Flash/Pro、每日三场景共享次数1–1000和评估尝试1–3;助手/产品解释仍固定3次,环境开关是硬限制,不编辑凭据/地址/timeout/maxTokens。复用保留 `fa_config.ai_runtime_policy` JSON,无新表/字段,通用配置入口/模型/refreshFile保护该行;无跨操作缓存,三场景会员锁内一次共享锁策略快照,旧调用模型冻结,进行中的curl自然收尾,暂停后的未开始任务沿禁用路径失败且保留已有预留。
保存CAS版本、CSRF、`cfg_`随机请求键、四种原因和成功审计同事务;审计失败回滚,原键重放返回旧回执,不覆盖后续变更,拒绝日志只记白名单。技术v5继承v4,新增3节点/1模板共4项已仅在 `127.0.0.1:3309/airz_product_test_20260930`显式备份初始化、复检0项,旧规则/绑定保持,不换绑或生产迁移。
本轮检查通过:策略纯83/事务24、双PHP/双连接并发43、业务路径纯63/隔离DB43、权限97、审计20,原服务53/用量76/重试39;服务HTTP207项(95请求)、Chrome Playwright桌面1280×900/手机390×844页面67项。首行并发实测MySQL1213,一方成功另一冲突;只确定1062/1205/1213映射冲突,不自动重试。覆盖提交成功却丢响应后刷新保留原键/同audit及version重放、另一管理员冲突刷新、CSRF/字段白名单/Referer不回显、旧技术v4可读服务但无配置读写权、客服运营拒写和超管通用Config保留行保护。坏策略禁止编辑、服务固定报错,quota保留已预留数但dailyLimit/remainingToday/maxAttempts为NULL。无未解释console/pageerror、横溢或文字重叠,刻意中断响应的一条网络错误另记。
收尾修了确认关闭动画期间快速响应阻断自动刷新的时序问题,以及同请求字段顺序变化误判异意图的问题。元字段固定规范顺序,乱序重放返回原audit/version且不覆盖后续保存;新增2项纯/1项隔离DB检查计入83/24,6表摘要一致并完整回滚。
并发14表、HTTP原13表和Redis原队列摘要一致,原Config与site.php摘要保持;held精确清理3项通过,owned配置/账号/绑定/审计/任务夹具已精确清理,凭据JSON及scope私密JSON删除,0模型/worker调用。23PHP lint、2JS语法、26源码/测试文件UTF-8无BOM/空白检查通过。原MySQL3309/PID19100和PHP8097/PID43340仍仅监听127.0.0.1,无本机analysis:work,bootstrap仍为 `C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930/bootstrap.php`。证据目录 `C:/Users/JUN/AppData/Local/Temp/airz-admin-runtime-policy-20261001/`有 `verification.json/ui-result.json`、`saved-desktop.png/saved-mobile.png/invalid-mobile.png`。页面脚本依赖已删夹具,不可直接重跑,须重新建立显式隔离夹具。
仅本地开发,正式库、默认 `.env`、线上、真实worker和移动端未改,未部署/验收,ADMIN-003保持开发中。供应商账单/余额与外部告警尚需能力/方案确认,下一项按已具备依赖选择,不承诺外部能力。维护见后端 `D:/AAdesk/202609/airz/database/admin-services.md`和 `database/admin-permissions.md`。继续先复查3309/8097监听及显式bootstrap,不默认运行worker/恢复、不重跑旧cleanup/reset,不复用历史生产发布授权。
## 历史开发:2026-10-01 分析进程心跳与进度超时提示(未部署)
用户要求继续下一步,仍暂不做运营、真机或发布验收。本轮ADMIN-003最近登记常驻分析进程的进度观测子项源码完成:独立Redis JSON键按数据库及配置队列隔离;随机实例标识本次启动,原子核验instanceId及startedAt,新进程可接替,旧进程不能覆盖新进程的进度或停止状态。首写已落地却丢响应后也只走原子校验,普通进度更新可补登记缺失键,停止不复建。一次执行和仅恢复模式不登记;启动/工作/空闲/队列降级/停止边界记录安全元数据,Redis故障不影响业务执行、任务租约、调用预算和日志。
后台沿用服务检查只读GET及技术v4权限,无新节点/模板、角色换绑或数据库结构迁移。显示最后进度、年龄及阈值,明确区分缺记录、未启用、损坏、存储不可用和进度超时;超时不证明进程死亡、全部worker停止或供应商健康,退出路径上报停止不证明任务正常完成。暂不改DeepSeekClient,阈值为配置值(默认180秒)、模型timeout+60、任务租约及30秒的最大值,TTL86400秒且大于阈值;外部告警投递仍待方案。供应商余额/费用对账和受控配置编辑未完成,ADMIN-003保持开发中。
验证通过:心跳纯133项、真实隔离Redis90项(含首写丢响应12项)、服务纯53项/隔离DB14项、服务HTTP207项(95请求)、Chrome Playwright桌面1280×900/移动390×844页面43项,9文件PHP lint/JS语法通过。覆盖新owner保护、丢键恢复/停止不复建、once/recover-only、退出和致命错误回执、Redis故障和9种后台状态;无console/pageerror、文档横溢或文字重叠,0模型调用。13表原有记录和Redis原队列摘要保持,HTTP held精确清理3项通过;合成账号/会员/会话/调用/日志及所有随机观测键精确清理,凭据JSON和浏览器scope私密JSON删除。
仅本地开发/显式隔离检查,不部署、不改正式库、默认 `.env` 或移动端。维护契约见后端 `D:/AAdesk/202609/airz/database/admin-services.md`;证据目录 `C:/Users/JUN/AppData/Local/Temp/airz-admin-heartbeat-20261001/`有 `verification.json/ui-result.json/redis-result.json`及截图。专用8098/PID36740已停止,原MySQL3309/PID19100、PHP8097/PID43340仍监听127.0.0.1,无真实worker;原bootstrap仍为 `C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930/bootstrap.php`。继续先复查监听和隔离配置,不复用已删夹具、不运行默认worker或旧cleanup/reset。下一开发项建议推进模型运行参数和调用额度的受控配置;供应商余额/费用对账仍依赖接口能力确认,外部告警投递方案另定,不复用历史生产发布授权。
## 历史开发:2026-10-01 只读模型与服务检查、调用用量(未部署)
用户要求继续下一步,仍暂不开展运营、真机或发布验收。ADMIN-003 首个只读子项源码完成:后台 `GET servicestatus/index/usage`,固定七项服务检查与任务排队/运行/租约观察,以及按会员/日期/场景/状态的安全调用元数据、20条分页和会员当日预留额度。模型只查PHP当前配置,不探测供应商;队列和登录Redis仅有限只读命令,目录只检查存在/权限不写探针,短信未接入、worker无心跳显示未知。队列正常不能证明进程存活,登记模型/密钥及用户Token额度不作为真实执行或供应商余额。
报表仅含已识别且未删除的评估/产品解释/助手记录,首尾日期包含、最多31天、默认PHP当日。额度按真实预算独立统计今日00:00后全部assistant预留,包含失败、软删除、遗留和未来时间,不随报表窗口/场景/状态变化。Token单值/汇总保留十进制字符串,未知NULL与已知0区分;不估算费用。数据不含正文、输入、报告、匹配、上下文、凭据、连接路径或原异常。包含超管的写入口均拒绝,不派发/恢复/消费队列或调用模型;页面加载/失败清旧指标和分页、锁定查询控件避免筛选错配。
新增3节点及独立技术 `v4` 模板,旧技术 `v3/v2/v1`、客服 `v2`、运营 `v1` 规则和账号绑定保留,不自动扩权。显式隔离库 `127.0.0.1:3309/airz_product_test_20260930` 备份应用4项,重复预检0项,原8097的 `__menu__`精确刷新;无业务表字段迁移。权限备份和本轮页面证据目录 `C:/Users/JUN/AppData/Local/Temp/airz-admin-services-20261001/`。正式库、默认 `.env`、线上与移动端源码未改,未部署。
维护与显式隔离测试见后端 `D:/AAdesk/202609/airz/database/admin-services.md`,权限见 `database/admin-permissions.md`。ADMIN-003保持开发中,供应商余额/费用对账、受控配置编辑和心跳告警仍待开发;ADMIN-002完整外部查询/对账继续依赖DATA-004。FAQ/反馈及全部受控后台仍须配套正式部署后再明确分配新模板,不运行默认.env/worker或旧cleanup/reset。
验证:服务纯48项/隔离DB13项、用量纯76项/隔离DB26项、权限定义90项;服务HTTP203项(95请求)、原权限227项(158请求)、Chrome Playwright桌面1280×900/移动390×844页面56项通过。覆盖真实20条分页、未知/零与大Token、历史筛选不改今日额度、加载防重、错误清旧结果与恢复、超管禁写和旧角色拒绝;无console/pageerror/横溢或文字重叠。全部合成账号/会员/会话/调用/日志精确清理,凭据JSON删除,13表原有行和Redis原队列摘要保持,0模型调用。安全回执 `verification.json`、`ui-result.json`和截图在上述临时目录;脚本依赖已删夹具,不能直接重跑,需显式新建随机夹具。
原MySQL3309/PHP8097保留,监听127.0.0.1,模型关闭、worker未启动。下一轮先重查监听和原bootstrap `C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930/bootstrap.php`;不要默认加载正式 `.env` 或运行旧cleanup/reset。下一开发子项建议补分析进程心跳与失联提示,外部告警投递方案另定;供应商余额/费用对账和受控配置编辑尚未完成。
## 历史开发:2026-10-01 受控人工重试与操作审计(未部署)
用户授权继续下一步,仍暂不开展运营、真机或发布验收。ADMIN-002 的人工重试/审计源码已完成:`POST assessment/retry` 严格要求CSRF、预期当前失败版本/任务、`adm_`加32位小写十六进制随机请求键和四种固定原因。失败详情显示确认弹窗,防重复提交,失联保留原键,接受后刷新当前元数据/历史尝试并提供操作日志入口。用户与管理员请求命名空间隔离,排障查询已支持管理员请求键定位原版本和任务。
固定顺序锁管理员/会员/会话/当前输入,复用用户失败重试、尝试上限及每日调用预留。成功审计复用 `fa_admin_log`,与任务及回执同事务;审计失败全回滚。成功重放先核验原审计意图、返回原任务,不随新版本变化创建新任务。提交后才派发,失败保留接受回执,可原键补投;结束钩子的拒绝日志仅白名单,写失败不会覆盖既有固定响应。表单输入、已发布报告、匹配和历史版本保持冻结。Redis可重复投递同任务,执行幂等靠任务/租约校验,不能表述为队列exactly-once。
新增 `assessment/retry` 仅技术 `v3` 模板授权。旧技术 `v2`、客服 `v2`、运营 `v1`及账号绑定保留,不自动扩权。本机隔离库显式备份应用1节点/1模板共2项,重复预检0项,两个隔离runtime的 `__menu__`精确刷新;没有业务表字段迁移。正式库、默认 `.env`、线上及移动端源码均未修改,未部署。维护见后端 `D:/AAdesk/202609/airz/database/admin-assessment.md`。
验证:重试服务纯39项/隔离事务45项、审计90项、权限82项、诊断纯48项/隔离事务47项;重试HTTP/数据库1016项(91请求),原排障回归1075项(200请求),原权限227项(158请求)均通过。Chrome Playwright桌面1280×900/移动390×844页面38项通过,特别覆盖失联→取消→页面内刷新→CSRF更新→原键返回同任务/审计,以及冲突刷新、状态/调用列表刷新和旧技术角色隐藏按钮。无新增未解释console/pageerror,刻意丢弃一次响应的网络错误单独记录。13表原有行及其他队列摘要一致,0次模型调用。
本轮合成账号、会员、评估、调用、消息、日志、专用trigger与随机队列已精确清理,临时凭据JSON已删除,profile恢复。两条浏览器匿名登出日志经确切ID/时间/来源/行hash核验后纳入本轮清理,未按范围删除。安全回执 `C:/Users/JUN/AppData/Local/Temp/airz-admin-retry-20261001/verification.json`、`ui-result.json`;截图和权限备份亦在该目录。临时UI脚本依赖已删除夹具,不能直接重跑;需显式创建新夹具。8098专用PHP已停止,原MySQL3309/PHP8097保留,下一轮先核对监听和原bootstrap,不运行默认.env/worker或旧cleanup/reset。
ADMIN-002 保持开发中,完整外部查询/对账依赖 DATA-004;下一独立开发项可推进 ADMIN-003 服务状态检查。FAQ/反馈及全部受控后台仍须配套正式部署后再明确分配新模板,不直接运行默认worker或旧cleanup/reset。
## 本轮继续开发:2026-10-01 已有评估任务只读排障(未部署)
用户要求继续下一步开发,仍暂不做验收。ADMIN-002 的已有评估任务只读排障完成源码和隔离开发检查:FastAdmin 新增评估任务列表与详情,按评估/任务/请求/会员 ID 精确查询,显示阶段、派发、租约、稳定错误提示及分别分页的提交版本/调用尝试。当前任务、已发布结果和历史输入版本分开;历史零调用、未关联旧调用、坏版本/错指针、缺任务/租约可定位,产品解释不混入评估尝试。未知用量不冒充零,迟到用量更新时间不冒充完成时间。
只在数据库提取安全元数据,不返回表单、报告、匹配、分析上下文、模型正文、供应商异常原文和密钥。控制器包含超管的所有写入口拒绝,无恢复、派发、人工重试或模型调用。新增3个只读权限节点及客服/技术 `v2` 模板,运营仍 `v1`;原客服/技术 `v1` 与账号绑定保留,不自动扩权。只对隔离库 `127.0.0.1:3309/airz_product_test_20260930` 显式备份应用5项,重复预检0项,精确刷新隔离 `__menu__`;备份及UI截图在 `C:/Users/JUN/AppData/Local/Temp/airz-admin-assessment-20261001/`。
48项纯投影、42项隔离事务、1053项HTTP/数据库开发检查通过(194次请求),包含超管写入拒绝和上述异常关联;原后台权限另227项回归通过(158次请求),权限定义75项、隐私37项和字段投影73项通过。桌面1280×900/移动390×844页面27项查询、详情、tab、分页、错误/空态检查通过,无新增控制台错误。合成对象及临时账号JSON已精确清理、原记录保持,0次模型调用。正式库、默认 `.env`、线上和移动端源码未改,未部署或做运营/真机验收。
接口与测试命令见后端 `D:/AAdesk/202609/airz/database/admin-assessment.md`,权限说明仍 `database/admin-permissions.md`。ADMIN-002 保持开发中,下一开发子项建议受控人工重试与操作审计;完整外部查询/对账依赖 DATA-004,ADMIN-003 服务检查也尚未做。正式发布仍须配套FAQ/反馈字段和受控后台,再由超管明确分配新模板。
隔离MySQL3309/PHP8097继续监听127.0.0.1,bootstrap仍为 `C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930/bootstrap.php`,模型关闭、worker未启动。下一轮先核对监听;禁止加载默认正式 `.env` 或运行旧cleanup/reset。临时UI脚本依赖已经删除的合成凭据JSON,不能直接重跑,应使用显式隔离测试重新创建随机夹具。
## 本轮继续开发:2026-10-01 后台菜单与角色权限(未部署)
用户同意继续 ADMIN-001 功能开发,仍暂不开展验收。已新增 FastAdmin 运营/客服/技术三个最小权限模板,复用三张管理员权限表,不恢复会员组/会员规则、不创建账号或自动绑定。运营管理产品和内容;客服处理反馈及只读融资资质;技术只读配置、受控启停密钥及查看范围内日志。姓名、手机号、企业信息保持掩码,资料附件/证件原文/密码/令牌/密钥不输出;独立 `user/info/financial` 只给客服。技术模型配置写入及密钥新增/轮换由超管保留,受控配置继续属于 ADMIN-003。
资料与系统消息后台全只读(包含超管和批量/导入/回收站);会员、资料、密钥列表及模型选择器限制查询和返回字段。密钥批量仅改合法状态,不改密文/所属模型/用量。反馈列表和编辑移除历史附件地址;日志新写入和历史读取脱敏,URL不保留查询串。通用排序与缓存清理补权限校验,角色登录首屏只打开有权业务页。
后端 `database/migrate_admin_permissions.php` 必须显式 `--env --target`,默认只读;应用要求 `--apply --backup-dir`,备份/锁表后仅增量插入,模板漂移、危险同名节点或不兼容层级拒绝。只对隔离库 `127.0.0.1:3309/airz_product_test_20260930` 初始化50节点/3模板并精确刷新 `__menu__`,既有角色和账号绑定保持;备份在 `C:/Users/JUN/AppData/Local/Temp/airz-admin-permissions-20261001/`。源码、FAQ/反馈业务及反馈字段必须配套正式部署后再绑定新角色,不能给旧版通用CRUD直接授权。
PHP/JS语法和纯内存回归通过;`tests/admin_access.php` 227项隔离HTTP/数据库检查(158次请求)通过,含角色菜单/默认页、直接越权、财务字段隔离、只读超管、客服回复、密钥事务/选择器及历史日志脱敏。合成对象精确清理,13表原有行保持,0次模型调用。正式库/默认 `.env` 未改,本轮未部署、未做运营或真机验收;台账保持开发中。
隔离MySQL3309与PHP8097已沿用原配置恢复,监听127.0.0.1;PHP关闭模型,未启动worker。临时bootstrap仍为 `airz-product-editor-20260930/bootstrap.php`,继续前先重查监听,不运行旧cleanup/reset脚本。下一步推荐 ADMIN-002:先做已有评估任务的只读阶段/错误定位,完整外部查询仍依赖 DATA-004;FAQ/反馈和权限业务尚未上线。
## 2026-10-01 数据库注释与实体类注释已部署
已按授权完成正式库 `111.230.144.231:3306/airz` 的注释同步:26 张表、157 个已有字段的中文注释已更新,重复预检为 0 项待修改;线上复核为 26 张表注释、342 个已有字段注释。因正式 `fa_feedback` 仍缺少 `request_id`、`reply`、`handled_by`、`handled_at`,本次只同步现有结构,没有上线反馈闭环字段和 API。
同时仅发布 29 个实体模型类的类级 PHPDoc/`@property` 注释,逐文件备份并确认可执行代码未变化。FAQ、反馈闭环和内容编辑业务逻辑仍未部署。部署前后 `airz-analysis`、`php-fpm-74`、Redis 均 active,worker `NRestarts=0`,分析队列、保留队列和延迟队列均为 0。服务器备份为 `/root/airz-comments-20261001/`,本机回执在 `D:/AAdesk/202609/airz-backups/comments-deploy-20261001/`。
## 本轮继续开发:2026-10-01 FAQ服务端化(未部署)
在不进行真机/跨设备验收的前提下,已完成FAQ服务端开发:复用`fa_acticle`的`type=6`和`content` JSON(`schemaVersion=1/kind=faq`),新增公开`GET /api/v1/help/faqs`及分类筛选;新增独立后台FAQ编辑模型、控制器、页面和版本保护;前端帮助页移除本地FAQ数组,改为始终读取服务端。没有新增表或字段,没有写入正式库或部署。
初始内容见后端`database/faq_initial.json`,导入脚本为`database/import_faq.php`,必须显式指定隔离/正式环境与目标,默认预检回滚,重复按slug保留已有记录。2026-10-03已修正退出登录后未提交资料不保留的种子说明,并增加种子slug必填/唯一校验、`--apply`前备份目录门禁和目标级MySQL advisory lock;本机隔离MySQL/PHP当前未运行,尚未执行数据库导入或HTTP联调。源码语法检查及隔离事务中的FAQ保存/读取/下架检查通过;现有本地HTTP服务因尚未导入种子返回空列表是预期。下一步先重新准备明确隔离环境,执行FAQ预检→隔离导入→重复导入和接口分类/空态检查,再继续反馈提交/处理闭环;人工客服接入仍等待`EXT-CS`供应商方案。
## 本轮继续开发:2026-10-01 反馈提交与处理闭环(未部署)
已完成`SUPPORT-002`源码:复用`fa_feedback`新增`request_id`、`reply`、`handled_by`、`handled_at`和会员请求键唯一索引;迁移脚本为后端`database/migrate_feedback.php`,显式环境/目标,默认只预检,写入要求`--apply --backup-dir`。本轮仅对本机隔离库`127.0.0.1:3309/airz_product_test_20260930`应用,备份在受限临时目录;正式库、正式`.env`、PHP部署和后台正式资源均未修改。
新增`FeedbackRecords`和登录接口`POST/GET /api/v1/feedback`、`GET /api/v1/feedback/:id`。反馈正文去HTML、最多255字;同会员同`requestId`幂等,参数冲突返回409;附件服务未开放,非空`attachmentIds`拒绝。后台只能编辑状态与回复,自动记录处理管理员/时间,新增、删除、批量和导入拒绝。帮助页保留服务端FAQ并新增意见反馈、本人记录和重试。
验证:新增/修改PHP lint通过;隔离迁移预检、应用及重复预检通过;`tests/feedback_records.php`隔离数据库回归58项通过,含并发幂等、越权、历史NULL键和原始字段保护;HBuilderX 5.26 Web、微信小程序和Android 27页编译通过。未做真机、跨设备、视觉验收或正式部署;人工客服仍等待`EXT-CS`供应商方案。
## 最新内容与部署:2026-10-01 已完成
用户授权继续功能开发、改用airz.hqling.cloud并部署后端。新闻/融资课堂/详情/首页推荐/搜索已接真实服务,支持分类分页、总数、下架/空态/错误恢复及迟到响应保护,移除原静态数组兜底,保留原型页面层级。后台复用文章和融资课堂入口,结构化编辑、发布/下架、封面及章节排序/版本冲突保护完成。FAQ与反馈源码已完成但尚未部署,CONTENT-002/003待真机及多设备验收,27页/63任务不变。
复用fa_acticle(新闻type=5)与fa_finance现有content TEXT保存schemaVersion=1的JSON,不给现有会员/资料/会话/内容表增加字段。新增fa_user_lesson_progress关系表;按当前会员保存固定章节ID、正文摘要和首次完成时间,章节重排保留进度、正文更新使对应进度失效,lessonVersion冲突返回409。消息表uk_user_message_event唯一索引本轮一并上线。初始原文4篇新闻/3门课程按slug只新增,重复预检无改动,不添加环境标签。身份资料、评估输入版本及match_result存储约定保持。
本机40项MySQL5.7隔离数据库、81项内容HTTP/Playwright(42次隔离请求)、13项后台UI/HTTP检查及166项产品编辑纯内存回归通过;390×844与1280×900截图无运行错误,微信/Android开发编译通过。服务器64项真实HTTPS/FPM内容/学习进度/消息/产品目录/评估报告/PDF检查通过,2次显式假评估、0次收费调用。测试会员/Token/消息/进度/资料/会话/独立队列精确清理;26张表按预期摘要一致,所有原有行、无关源码、.env与数据库全局参数保持。
正式34个源码/后台资源文件已通过宝塔文件页面和终端限定发布;排除.env、vendor及环境相关application/extra/site.php。新增消息索引和课程进度表后导入7条内容,重启PHP-FPM,恢复worker与公网入口;维护gate已移除。三服务active,最终worker MainPID=1041115/NRestarts=0、队列[0,0,0],后续需重新核对。不要重跑已完成维护阶段或默认本机worker,默认后端.env仍指正式库。
当前正式域名为 **https://airz.hqling.cloud**,API `/api/v1`,后台 `/ZYurKboadX.php`。DNS A为111.230.144.231,宝塔新增绑定、部署Let's Encrypt RSA2048证书后移除aitest.ychysg.cn旧绑定;内部站点名与目录仍xctai.cn及/www/wwwroot/xctai.cn,public为运行目录。证书到期2026-12-29 16:12:27 UTC;公网11条路径检查和HTTP301跳转通过,TLS校验0,内容/字典200、匿名消息/产品401、敏感路径404。历史旧域名HTTPS阻塞不代表新域名现状。
服务器备份 `/root/airz-content-20261001/`;数据库/源码/nginx/证书/宝塔数据库、增量迁移回执及验收记录共22个文件已下载并校验SHA256至受限本机 `D:/AAdesk/202609/airz-backups/content-deploy-20261001/`(server-files内为解包)。恢复见后端[内容发布维护](D:/AAdesk/202609/airz/database/content-publication.md):优先回限定源码并保留增量数据,禁止整库回退、覆盖新消息或删除有进度的课程表。备份含私密信息,不对外分享。浏览器证据仍在临时airz-content-20261001目录。
前端services/config.uts已用https://airz.hqling.cloud/api/v1,APP_ENVIRONMENT=test、模拟关闭、production地址仍空。本轮小程序尚未代上传,需要重新发行,并将微信request合法域名改为https://airz.hqling.cloud;头像上传/文件下载核对相应平台域名配置。H5未部署,真机/多设备/真实模型未验收。FAQ/反馈的正式字段、API和业务逻辑仍待单独授权部署,或继续开发其他未完成模块。
本机隔离MySQL3309、PHP8097与H5 5173沿用,继续先核对监听及临时bootstrap;3309曾退出后已用原配置恢复,不依赖旧PID。不要用默认.env代替隔离配置。MySQL参数绑定采用TP5命名绑定,列表与计数分别新建Query,不能clone共享Builder;Android账户回调需延后绑定。关键约束已加中文注释。
## 历史消息功能:2026-09-30 本机完成,后于10-01部署
用户暂停公网HTTPS排查,已上传上一版小程序,并授权继续功能开发。本轮完成MSG-001—004本机实施:消息中心接真实分类分页/未读数/单条和全部已读、详情及原版本报告/档案跳转,首页红点同服务器状态;登录可回消息页,旧静态通知/本机已读不再使用。保留原图标、分类和底栏,修滚动高度及分页错误提示位置;离页/换分类/账户切换拒绝迟到响应,Android前向函数引用使用延后绑定兼容。关键约束中文注释,27页/63任务不变。
后端新增UserMessages.php、API Messages.php和五条路由,Assessment.php成功/失败同事务通知;business_id为system输入日志revisionId,事件唯一键原子去重。详情校验当前会员、关联会话和输入日志的归属/删除状态;旧消息始终绑定旧版本。列表snapshotId上界+beforeId分页,全部已读只更新上界内,单条首次readAt保持。复用fa_user_message现有列,仅加uk_user_message_event唯一索引,无新表/字段、无历史补通知。
50项MySQL5.7真实隔离数据库检查(5次假模型)、57项HTTP/Playwright(42次隔离API)及16项索引迁移恢复检查通过;手机390×844/桌面1280×900,console/pageerror为0,微信/Android最终开发编译通过,0次收费调用。测试会员/Token/资料/会话/日志/消息和本批随机队列已精确清理,25表原有行摘要一致,原4条材料草稿及6条产品保留。临时证据C:/Users/JUN/AppData/Local/Temp/airz-messages-20260930/qa.json、qa-migration.json、cleanup.json、messages-390.png、messages-1280.png、messages-empty.png及索引备份;凭据与Token不写入仓库。
**正式消息索引迁移、四文件PHP部署及本轮小程序/H5发行尚未执行**;用户已上传的是上一版,以下旧段落中的“尚未上传”不代表当前上一版状态。正式库及.env本轮未改。维护/恢复见后端[消息说明](D:/AAdesk/202609/airz/database/user-messages.md):新生产维护需本轮授权,先停写/停空闲worker/备份,先索引后PHP最后前端;重复组或错误同名索引阻断,不自动删除消息、不整表回退。测试只允许显式本机airz_product_test_*配置,不直接用默认.env或旧集成测试。
本机3309隔离MySQL5.7、8097隔离PHP和5173 H5沿用,继续先查监听;PHP临时bootstrap模型禁用,不运行默认worker。H5源码API仍为正式域名,Playwright验收仅通过浏览器请求转发到8097,不代表正式消息接口可用。公网HTTPS排查继续暂停,不复测公网/真机/真实模型;后续功能建议为资讯、融资课堂与搜索的服务端接入,复用现有内容表和页面。
## 最新产品展示:2026-09-30 正式数据及三文件PHP已部署
用户要求当前测试数据采用正常业务文案,不显示“演示、非真实”等环境标签。正式`111.230.144.231:3306/airz`现有6条产品ID22—27已精确更新为个人灵活消费贷、个人小额周转贷、个人优享信用贷、企业经营周转贷、企业成长经营贷、普惠基础融资贷,机构显示名及材料/条件/建议同步调整。所有金额、利率、期限、地区、准入条件及有效期保持,内部`demo:airz-`source reference保留。产品与来源规则版本由1增至2;未新增重复产品、未改写会话/历史报告,其他24表逐行摘要一致,0次模型调用。
新增后端`database/update_product_display.php`与[恢复说明](D:/AAdesk/202609/airz/database/product-display-update.md):显式目标、锁定六行、参数保护、写入前完整行备份、事务复验、重复执行无变更;隔离库已演练精确恢复。正式备份`D:/AAdesk/202609/airz-backups/product-display-20260930/product-display-20260930-180754-a4d94caa.json`。不得重新导入产生重复或整表恢复。
前端匹配/详情/报告/对比/行动/助手已移除环境标签,内部来源引用显示为“产品规则档案”;后端报告消息、PDF与助手提示词同步调整,继续按已配置参数及事实解释。已清理上一阶段未完成的前端内存模拟入口和登录绕过,走原真实接口。605项PHP检查与242项Playwright检查通过;390×844、1280×900覆盖个人/企业及展开/分组/选择对比/助手/材料/行动,54次隔离后端GET、错误0。微信开发编译通过,本轮Android未获得有效编译结果。联调账户/Token/评估/队列已精确清理,隔离库24表恢复原摘要,原4条材料草稿保留。证据位于临时`airz-product-editor-20260930/qa-display-ui.json`及`display-*.png`。
**正式产品数据及本轮三文件PHP已部署,小程序/H5未发行。** 用户授权“先做第1项”后,经宝塔上传部署`AssessmentNeedsReport.php`、`AssistantChats.php`、`ReportPdf.php`,备份并停空闲worker后仅替换3文件、重启PHP-FPM。76项服务器本机HTTPS/FPM及假模型检查通过,覆盖个人/企业报告、匹配、实际PDF、助手提示词和权限;4次显式假客户端、0次收费调用。临时对象已精确清理,25表原有数据逐行摘要、其他application源码、生产.env和数据库全局参数保持。原nginx恢复、三服务active,worker消费不存在的合成评估任务后队列为空;最终PID944033/NRestarts0,后续须重查。
服务器备份`/root/airz-product-display-20260930/`,12个备份/验收文件已下载到本机受限目录`D:/AAdesk/202609/airz-backups/product-display-deploy-20260930/`,原源码和完整数据库备份摘要一致;详细部署与三文件恢复边界见上述后端恢复说明。无数据库迁移,不重跑维护阶段、不整库回退。本次未发布产品编辑器/公共目录的其他本地改动,前端仍需重新发行。本机5173 H5、8097隔离PHP及3309隔离MySQL沿用上一轮状态,继续先核对监听;不要启动默认本机worker。公网HTTPS阻塞未复测,本机TLS通过不表示公网恢复。下节关于强制显示环境标签的表述为已被用户最新要求覆盖的历史记录。
## 历史产品联调:2026-09-30 正式库演示数据核对
用户确认正式库也使用当前演示数据,且暂时没有用户。已只读核对正式`111.230.144.231:3306/airz`:6条演示产品与`database/demo_products.json`逐字段一致,正式产品ID为22—27;没有新增重复记录、没有改写会话或报告。产品名称、机构和来源均明确为演示/非真实金融资料,只供功能开发与验收,不代表银行政策或授信承诺。
本机隔离库`127.0.0.1:3309/airz_product_test_20260930`已通过`database/seed_demo_products.php --env <隔离配置> --apply`补齐同一批6条,原4条银行材料草稿保持不变;重复运行返回`kept_existing`。新增v3匹配回归151项、发布编译153项、产品目录45项、材料复核38项通过。正式库不需要再次导入这批数据;本机默认`.env`仍指向正式库,任何本地种子/测试必须显式使用隔离配置。
后续继续评估→匹配→报告链路联调时,个人/企业均可使用这些演示产品覆盖符合、条件不符和待核实三态;真实银行四条草稿仍不可上架,收到确认后另建材料版本。
## 最新产品编辑改进:2026-09-30 待核实与发布检查
用户同意实施下一步第1项,本机开发已完成:新增默认“待核实”地区,保存SQL NULL;明确全国才保存[],指定城市非空列表。NULL地区不再误判旧规则,四条公开材料来源正常显示;真正旧规则的已有来源仍可只读查看,未明确重建时普通保存保留原JSON。发布前检查一次返回data.issues字段/问题列表,覆盖独立字段缺失/错误、范围倒置、日期、用途及逐条条件;可选经营月数空值不误报必填。诊断候选仅在内存中使用,真实保存/模型或后台上架仍走严格完整校验,未知地区不能上架。版本冲突及规则版本上限保持。
450项PHP、89项HTTP/Playwright(含7项只读首屏检查)、7项清理/完整性检查通过,1280×900及390×844无横向溢出或新增console/pageerror。合成产品已精确清理,原ID1—4和五张业务表逐行摘要不变;无正式库修改、部署或模型调用,无UTS改动。证据在临时airz-product-editor-20260930目录的qa-pending-ui.json、qa-pending-view.json、qa-pending-cleanup.json及pending-*.png。首次比较差异来自MySQL JSON格式化,已按插入后的实际存储文本复验;没有旧规则被改写。
PHP8097/MySQL3309隔离服务仍运行,监听127.0.0.1,模型关闭、未启动worker;预览入口沿用下节,下次先复查监听及临时bootstrap。项目.env仍是正式库,不能直接启动默认服务或旧集成测试。不要运行旧cleanup.php/reset-products.php删除四条材料。下一步仍需受理银行确认当前参数/地区/有效期/完整硬条件,再做人工匹配验收;本轮代码未部署。
## 最新材料复核:2026-09-30
已新增只读材料复核命令`D:/AAdesk/202609/airz/database/review_product_materials.php`和`tests/product_materials.php`。复核首批隔离草稿不连接数据库、不读取.env、不访问来源网址、不调用模型,并输出[银行核实与验收表](产品材料/首批产品银行核实与验收-20260930.md)及[复核清单](产品材料/首批产品复核清单-20260930.json)。四条仍为草稿:工银融e借8项、闪电贷7项、农银微捷贷5项、税易贷7项格式缺项;0条格式完整、0条银行确认、0条可发布。个人/企业profileOnly面对当前草稿目录均返回`unavailable/PRODUCT_CATALOG_UNAVAILABLE`,不虚构匹配候选。38项材料/匹配准备检查通过。收到银行回复前不能把公开参数改成当前政策、扩充南京城市或上架;真实材料需另建确认版本,保留本次公开基线。
本轮未重新查阅官网或取得银行回复;目前目标城市及当前银行政策材料仍待用户补充。核实表给出每产品特殊问题、可填写的统一回复表及规则表达能力差距;真实银行样例期望尚待签核,合成收入8000元门槛只用于技术测试,不能套用于四条产品。未改应用运行逻辑、数据库或UTS,未部署或调用模型。
## 最新产品材料:2026-09-30 本机草稿
用户要求准备几个产品材料录入。本轮查阅银行官网,整理工银融e借、闪电贷线上公开材料、农银微捷贷、建行税易贷四条,在127.0.0.1:3309/airz_product_test_20260930保存草稿ID1—4;没有改写正式库、既有演示产品或历史报告,没有上架、部署、模型调用或源码改动。材料、原文依据、准备建议和待核实事项见[首批产品材料](产品材料/首批产品材料-20260930.md),结构化元字符串见同目录JSON。
所有未知最低额度、最短期限和有效期保留NULL;微捷贷官网长图的3.5%起只记录下限,上限未知。官网全国通用栏目仅支持微捷贷regions=[];其余三条地区NULL,闪电贷南京分行材料不能外推全国,南京也不在现有城市字典内。后续编辑器已支持“待核实”,NULL地区不再需要重建,来源正常显示;未核实地区前不要改成全国。四条均缺发布参数,模型发布检查全部阻止上架。信用良好等非量化条件、年龄例外、共同借款及连带保证保留说明,不补造机器规则。正式匹配前还需银行确认当前政策与完整硬条件,并验证系统表达能力。
本机MySQL/PHP原进程已停止,本轮用原my.ini及router/bootstrap恢复3309/8097,均监听127.0.0.1,分析模型禁用,未启动worker。后台列表显示四条草稿,微捷贷编辑页来源及空值正常;重复执行只核对已有记录,不产生重复,会员/资料/会话/日志/用量表计数未变。录入脚本及无凭据回执public-materials-import.json、四个官网来源截图和public-materials-catalog.png位于C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930。旧cleanup.php/reset-products.php会删除本机产品,不要再用于本批材料。继续仍先检查监听,不假定旧PID有效;后台地址和测试管理员沿用下节。
## 最新功能开发:2026-09-30 产品后台
用户暂不处理公网HTTPS,转而继续PRODUCT-003。本轮完成本地产品结构化编辑、来源/用途/城市控件、动态准入条件、只读发布检查、版本冲突和上架/下架工具栏;补GET /api/v1/products会员公共目录并复用详情DTO。不新增数据库字段/权限节点,不改UTS,不重写历史匹配结果。旧规则默认保存原JSON,明确重建才替换及清除旧年龄条件;发布资料完整性不等于来源真实性。
入口:后端ProductEditor.php/ProductCatalog.php、admin Product控制器/模型、product/form.html及backend/product.js、API v1 Products与路由。保存时锁定最新行检查_base_version,后台入口固定走结构化映射,删除客户端标记不能绕过;source/purposes/conditions变化才增加规则版本。匹配v3不采集金额/期限/用途的约定保持,产品自身范围仍需真实录入。
326项PHP检查与89项真实隔离HTTP/浏览器检查通过;Playwright桌面1280×900、手机390×844,console/pageerror均0,无收费模型调用。本机测试库airz_product_test_20260930,127.0.0.1:3309/MySQL5.7.26;8097 PHP7.4.3使用临时router/bootstrap覆盖配置,模型禁用。证据及脚本在C:/Users/JUN/AppData/Local/Temp/airz-product-editor-20260930。项目.env仍连接正式远程库,禁止直接启动默认PHP服务/worker或运行旧集成测试。新的tests/product_publication_model.php与product_catalog.php必须显式传本机airz_product_test_*配置;纯内存product_editor.php可直接运行。
本轮未进行线上写入或部署,也未收到真实产品材料;PRODUCT-003仅工具与接口完成,真实产品发布/业务金标准仍待验收。继续时优先准备真实材料并核对录入草稿,不能把演示产品改名当成真实产品,不得延用旧生产迁移授权发布本轮代码。
收尾额外10项关闭调试/生产静态资源模式检查通过,企业默认条件、金额输入、响应式布局和资源加载正常。合成产品、会员、日志与Token已清理,业务六表为0;仅保留一个本机测试管理员便于预览,登录信息在临时fixture.private.json,不含生产凭据或会员令牌。8097隔离PHP及3309临时MySQL保留运行,模型禁用、监听127.0.0.1;预览地址http://127.0.0.1:8097/ZYurKboadX.php/index/login?url=product%2Findex。这些进程会随终端/任务环境变化停止,下次先复查端口;不得用项目默认.env替代临时bootstrap。临时目录可能被系统清理,仓库中的代码/测试/契约才是持久交付。
## 最新线上维护:2026-09-30 已完成
本轮后续维护已完成:`fa_ai_chat.context_data`后由17列精简为8列,迁移前已阻断入口、停worker、完整备份;独立脚本同步当前输入JSON状态后删9列,普通助手/历史结果保留。MySQL5.7隔离迁移与恢复演练通过;线上4个PHP文件部署,71项本机HTTPS/FPM假模型检查通过,23张无关表、原数据和私密环境逐行一致,worker实际消费失效合成任务后恢复,0次收费调用。服务器备份:`/root/airz-backups/assessment-chat-compact-20260930-131231-873749/`,恢复说明见后端`database/assessment-chat-compact.md`。维护末尾探针已复查线上为8列;外网HTTPS仍连接重置,小程序/H5未发行。
用户本轮授权继续迁移与恢复方案,已完成111.230.144.231:3306/airz(服务器.env连接127.0.0.1)的评估版本正式迁移、21个配套源码文件部署、维护验收并恢复服务。MySQL5.7.44-log、PHP7.4.33;PHP-FPM/Redis/airz-analysis均active,最终worker PID848445/NRestarts0,后续重查。生产.env逐字未变,nginx原配置恢复,log_bin_trust_function_creators恢复0。
63项真实服务器本机HTTPS/FPM和假模型检查通过:新建独立会话、修改复用并保存新JSON版本、失败保留旧报告、历史报告/匹配/助手/PDF、最新个人企业资料上限、鉴权/越权及Token撤销。www恢复扫描为0,systemd实际消费已不存在的合成任务通过;无storage error、队列为空,0次收费模型调用。合成用户/资料/会话/日志/Token/任务已清理。维护前无评估资料和报告,原普通助手449及两日志按旧列逐行摘要一致;22张无关表一致,仍1会员、6产品。
完整数据库、代码/.env/nginx及验收备份:`/root/airz-revisions-20260930/`;三表迁移备份:`/root/airz-backups/assessment-revisions-20260930-115301-810221/`。详细过程与恢复边界见后端`database/assessment-revisions.md`。正式写入已恢复,禁止整表恢复旧备份或换回旧PHP丢失新增数据,不得重跑迁移或旧测试。本机worker仍不要连接活动库。
完整备份及验收摘要10个文件已下载到本机受限目录`D:/AAdesk/202609/airz-backups/assessment-revisions-production-20260930/`,数据库gzip和代码tar.gz的SHA256均与服务器一致。无凭据final-summary.json保存实际结构、服务和63项检查结果;完整备份含私密环境和身份信息,不对外分享。临时运维脚本/截图在`C:/Users/JUN/AppData/Local/Temp/airz-maintenance-20260930/`,不是公开应用代码。
前端原型09及版本流程此前已编译通过,**小程序/H5尚未发布**。体验版配置已有https://aitest.ychysg.cn/api/v1。外网本次HTTP301跳转正确HTTPS,但HTTPS仍Connection reset;此前备案阻断是历史证据,尚未确认当前外网重置原因。下一步排查外网访问、核对微信request合法域名,恢复后发行体验版并完成真机流程;服务器本机TLS通过不代表外网可用。
## 最新界面调整:2026-09-30 原型09还原
用户反馈报告与原型09差异较大,已重新对照原型图实施:白底、顶栏下载PDF、三栏、浅绿准备状态区(需补充时浅黄)、摘要正文、橙红编号重点改善项、固定底部“重新评估”。完整度/逐项事实/状态依据/核验边界移到“查看完整报告”,建议证据可展开,报告信息/独立新建/历史入口弱化。使用真实状态和实际建议,不补造B+或固定三条。重新评估仍修改同记录,报告版本/导出绑定及旧版失败提示保留;本轮仅前端显示调整,未迁移/部署。
页面验证使用现有Playwright CLI(Browser plugin not available),localhost:5173受控响应来自隔离合成报告,视觉样例摘要/三条建议仅在测试响应中设置,没有改写数据库。360×844、390×844、1280×900验证首屏/固定按钮、详情展开、三栏、空建议、旧版失败提示、PDF503失败回执/重试成功及修改回填。除刻意注入的PDF503外无新增console/pageerror;截图 `C:/Users/JUN/AppData/Local/Temp/airz-revisions-20260929/report09-after-390.png` 等。微信/Android本地编译通过,微信胶囊和底部安全区已做布局处理,真机未验收。PHP/数据库/结果计算不变,正式发布状态仍见下节。
## 2026-09-30 评估版本与最新资料实现记录
已完成:fa_user_info每用户个人/企业各最多一条最新资料,保留企业名称/信用代码/经营月数,city_code在city前,delete_time末列;业务身份明文保存。新建评估新增fa_ai_chat,修改重评复用原会话并在fa_ai_chat_log.input_data增加JSON输入版本;最新成功匹配仍存fa_ai_chat.match_result数组。任务状态移到会话,历史输入/报告/匹配冻结在日志。无新业务表。
前端已接本人完整回填、提交版本冲突保护、档案版本分页、历史报告/匹配/对比/助手/行动/PDF及登录恢复。处理中或失败保留上次成功结果;历史解释只读,旧助手不切换上下文。关键代码已加中文注释。
验证:MySQL5.7.26和MySQL8隔离库各51项版本集成检查通过(含两个独立连接并发新建/修改);5.7真实建表、合成迁移及备份恢复演练通过;微信/Android编译通过。H5在localhost:5173通过真实隔离后端8097联调修改回填、旧输入/报告/PDF/匹配/助手;假模型,不收费。未覆盖真机与正式模型语义。前轮历史验证数仅代表当时版本,旧任务测试依赖旧表结构不可对新版库直接运行。
本地阶段当时未发布;本轮用户授权后,正式迁移与PHP部署现已完成,详见顶端线上维护记录,小程序尚未上传。当前后端.env仍指远程正式库,不要直接启动本机worker或运行旧集成测试。迁移脚本和完整恢复方案位于 `D:/AAdesk/202609/airz/database/migrate_assessment_revisions.py`、`database/assessment-revisions.md`,本轮迁移不得重跑。
以下2026-09-29部署/表单恢复均为历史和本次迁移前基线;本轮结构是否上线以上方最新维护记录为准。正式域名外网HTTPS仍连接重置,本机联调不代表外网恢复。
收尾补测:390×844和1280×900下历史报告→匹配→对比→助手、行动页→修改回填、退出重进通过,最终console/pageerror均无新增错误;修复修改页onHide创建提示文本引起的attachVmProps错误。截图与临时脚本保留在 `C:/Users/JUN/AppData/Local/Temp/airz-revisions-20260929/`。合成UI用户/Token/队列已清理,8097临时PHP及3309临时MySQL5.7已停止,隔离库文件和恢复备份保留。自动审批策略拦截了清理Python缓存的命令,后端未跟踪 `database/__pycache__/` 保留,不属于交付代码。
## 最新优先状态:2026-09-29 恢复原资料表单
个人/企业信用融资恢复至2026-09-23 19:04需求扩展之前的采集范围:删除融资金额、融资期限、资金用途、其他用途说明;保留经营月数和原有身份/经营收入/资产负债/资料授权。提交使用inputVersion=3,结果仍为resultVersion=2,保留报告三栏、产品匹配、助手、PDF与行动入口。v3不生成需求事实或匹配规则,不把取消采集的字段列为“未提供/待核实”、补填项或完整度扣分项;产品自身额度、期限、利率和用途资料保留。其他真实缺失或来源未核验仍按既有规则处理。
已按用户授权在111.230.144.231/airz执行:删除报告161/229、关联会话151/219及2条日志;普通助手449及其2条日志保留,会员1个、产品6个保留。fa_user_info删除requested_amount、requested_term_months、purpose_code、purpose_detail四列;input_version、analysis_context属于必要版本和快照元数据,继续保留。两个触发器同步移除需求列校验,输入版本允许1/2/3,接口新建最低3。22张不相关表摘要一致,log_bin_trust_function_creators临时开启后恢复0。备份:D:/AAdesk/202609/airz-backups/restore-profile-20260929-180938/。
PHP十个生产文件已通过宝塔文件页面部署,php-fpm/Redis/airz-analysis恢复active,最后worker PID604113、NRestarts0(后续须重查)。站点仍/www/wwwroot/xctai.cn;代码与nginx备份及临时验收包已归档/root/airz-profile-20260929/。前端改动尚需重新发行并上传微信体验版,H5未发布。
当前外网阻塞:aitest.ychysg.cn已被腾讯云备案检查拦截,HTTP跳转dnspod.qcloud.com/static/webblock.html,外网HTTPS连接重置。服务器本机TLS与应用接口通过,不等于外网可用;体验版联网前需完成域名备案/接入并复测。此前“外网正常”的记录仅代表早先验收时间。
验证:53项资料表单专项、51项匹配兼容、29项PDF、18项助手回复、29项助手金额检查通过;服务器维护窗口22项实际HTTPS与假模型流程通过,测试用户/Token/任务已清理,无收费AI调用。微信最终编译通过;Android编译通过,未覆盖真机。H5通过Playwright受控响应检查个人/企业表单及v3提交、报告和对比;仅用于页面验证,不能代替外网或真实模型验收。
恢复与旧脚本禁用说明见后端database/restore-profile-form.md。以下部署、历史报告保留及旧输入版本记录仅作历史追溯,与本节冲突时以本节为准。
## 1. 当前停在哪
最新部署(2026-09-29,优先于下文历史PID):PHP后端已通过宝塔网站页面部署到 **https://aitest.ychysg.cn**,API前缀 /api/v1,后台 /ZYurKboadX.php。旧 xctai.cn 绑定已移除,宝塔内部站点名及目录仍 /www/wwwroot/xctai.cn,运行目录 public。Let's Encrypt证书已部署、HTTP强制HTTPS、外网信任校验成功;到期2026-12-28,面板续签任务正常、每天04:38,尚未经历续签。PHP7.4.33、Redis7.2.16及systemd airz-analysis均active/enabled;已停本机worker PID1876,现由远程接管,最后PID566317/NRestarts0。**不要直接执行下文本机worker启动命令连接活动库;测试用隔离配置,维护先核对远程任务。** 服务器.env连接127.0.0.1的既有MySQL5.7/airz,未重新迁移。39项HTTPS检查(含原报告161/229、金额、解密、助手上下文和两份PDF)通过,外网接口/后台登录页/敏感路径通过;未调用收费AI。仅PHP已部署,H5尚未发布。配置/兼容处理/恢复见 D:/AAdesk/202609/airz/deployment-baota.md,服务器私密备份 /root/airz-deploy-20260929/,部署包与检查脚本已归档其deployment-artifacts/。下一步可对接新HTTPS API、发布H5,再做移动端/跨平台验收。
最新数据库切换(2026-09-29):已完成用户授权的远程MySQL5.7.44迁移与后端连接切换,当前使用111.230.144.231:3306/airz及用户指定root账号。25表184行、2份历史报告内容摘要一致;20个CHECK用8个触发器保留,51项约束与24项应用/真实HTTP检查通过。log_bin_trust_function_creators临时设1后已恢复0,当时Web入口及本机worker已恢复;后续宝塔部署已停止本机worker并由远程接管。.env仅改database段,其余加密/Redis/Token配置保持;无真实AI调用。本机MySQL8保留回退,正式写入恢复后不能直接回切旧库丢弃新数据。最终备份D:/AAdesk/202609/airz-backups/mysql57-switch-20260929/prepared-20260929-144304/;后端database/mysql57-switch.md含完整记录,凭据不输出。后端schema.sql现为5.7含触发器结构,历史本机迁移脚本不得直接重跑远程。
最新(2026-09-29):用户限定的07/08/09首屏调整已完成。08上下文一行摘要点击展开,历史入口弱化,其余助手界面保留;07核心参数三列同屏、完整依据可展开;09紧凑元信息/导出入口和浅色准备状态卡,改善内容更早出现。H5受控响应在360/390/1280px通过交互与截图验证,最终console无错误;Android/微信编译通过,详见进度6.25。无数据库/后端改动、无真实AI调用;下一步仍是真机/微信内H5/Safari验收。
用户要求界面内容尽可能还原`docs/原型.jpg`。原型08已继续实施:界面、持久会话、固定评估/产品上下文、异步回复、分页、原键重试、共享额度、报告/产品/对比入口及登录返回已完成本地联调;关键代码有中文注释。原型10也已完成本地联调;09 PDF普通H5也已实施;08累计13次真实调用,新增连续三轮金额精度专项已通过;下一步为移动端、跨平台与真实产品验收。
| 内容 | 当前状态 |
| --- | --- |
| 04/05 产品匹配详情 | 原型布局与单产品解释保留;咨询AI已接08;产品对比仍可进入 |
| 06 产品详情 | 公共资料和本次评估冻结快照分开读取 |
| 07 产品对比 | 同次2—3产品、补选/移除/刷新保留;可带选择进入08,PRODUCT-005待验收 |
| 08 上下文AI助手 | CHAT-001—003待验收,CHAT-004开发中;76项助手回归通过,H5及平台编译为前轮结果;演示边界与金额精度真实三轮专项通过,真机/跨平台待验收 |
| 09 报告 | 三栏及本次报告咨询AI入口完成;REPORT-004整体仍开发中;REPORT-005普通H5导出已本地验证,平台/容量待验收 |
| 10 下一步行动 | REPORT-006待验收;四项行动/登录恢复/状态守卫已接通,38项H5检查及Android/微信编译通过 |
当前27个注册页面、63个稳定任务编号。本轮承接上一轮前后端未提交改动并保留;未提交/推送。PHP后端已部署,H5尚未发布。
## 2. 原型08实现与下一步
完整契约见[上下文AI助手开发契约](上下文AI助手开发契约.md)。前端`packages/finance/assistant/assistant.uvue`、`packages/finance/services/assistant.uts`;后端`AssistantChats.php`、v1 `Assistant.php`和`AnalysisWork.php`。旧sendAssistantMessage模拟入口已移除。
- 普通会话scene=assistant、assessment_id/analysis_context=NULL。本轮用户明确授权后已执行后端`database/migrate_assistant_context.py --apply --worker-stopped`,新增两列及归属约束共5项,复跑0项。备份`D:/AAdesk/202609/airz-backups/assistant-context-20260928-154651-271907/`,原2份评估会话/2条日志逐条未改写。恢复优先保留可空列、回退助手代码,不能整表覆盖后续记录。
- GET `/assistant/context`只读预览,GET/POST `/assistant/chats`读取列表/创建,GET `/assistant/chats/:id`恢复并校验URL绑定,GET/POST `/assistant/chats/:id/messages`分页/发送。创建与进入页面均不调用模型,快捷问题只填入文本框。
- 明确发送创建用户行与ast:调用日志,analysis:work持久消费。每条逻辑消息requestId保持不变;回执丢失同retryAttempt重放,明确失败才手动递增0→1→2。每会话100轮、同时一条待处理;每日创建30会话,调用与评估/单产品解释共享每日额度。
- 并发序号/幂等/额度必须保持锁定当前读,不能仅依赖用户锁后普通SELECT;测试发现MySQL可重复读旧快照会造成重复序号。
- 页面每3秒查询、最多60次,可续查;离页清空、Token变化拒绝迟到回包。消息/报告不落本机缓存,H5只保存chatId等ID到URL。登录后只接受白名单助手返回并重新鉴权。
- 2026-09-29在首轮6次、边界4次之后,追加同一对比会话3轮真实Flash金额复测,全部成功落库,持续保持123456.78元=12.345678万元,口头修改不影响冻结报告和三态。本轮输入16582/输出971 token,累计13次、输入51709/输出3391 token;无自动重试。第1项金额专项限定样例通过,不能外推为全量真实产品或所有输出格式通过。见[真实语义验收记录](AI助手真实语义验收.md)。
tests/assistant_semantics.php支持--boundaries定向4例、--money-precision同会话3例,默认只读计划,显式--fake/--live;tests/assistant_money.php验证金额。服务端从冻结facts/产品条件提取金额白名单,使用BCMath,带单位的错误金额拒绝成功落库、保留用量、不自动重试;不替代所有自然语言数值语义验收。前轮76项助手与舍入拒绝回归已通过;本轮生产源码未变,真实/假模型各11项流程、30项金额单测/回放、21项格式解析/回放通过,三条真实回复金额全部通过。首条原始JSON出现相同内容的重复answer键,已确认现有解析/落库有效文本一致,严格重复键拒绝不在本轮金额专项范围。测试数据已清理,原有四表摘要一致,仍1用户、2评估/会话、2日志;正式worker恢复PID44944,后续重新查PID。
原型10及09 PDF已实施;下一步做移动端键盘/安全区/长回复滚动/返回恢复/失败重试,再补微信内H5/Safari、真实产品人工样例及生产容量验收。供应商与真实产品准备仍可推进,不虚构整体完成率。
## 3. 必须延续的业务约定
- 不做草稿;新建评估进入空白表单并新增会话,修改评估回填本评估最新提交并复用会话、增加版本。
- fa_user_info每用户每类型仅存最新资料;fa_ai_chat保存独立评估及最新成功报告/匹配数组;fa_ai_chat_log.input_data保存历史输入与该版结果,原消息和调用日志保留。不新建独立评估/报告/匹配表。
- Token保存在Redis,fa_user_token已删除。
- 金额数据库DECIMAL(11,2),单位元;API用元十进制字符串;客户端万元,保留精度,例如123456.78元显示12.345678万元。
- 产品稳定条件、额度/期限/利率等使用独立字段,地区/补充规则JSON;沿用冻结产品快照,不用当前产品参数覆盖历史。
- 规则决定eligible/ineligible/unknown,AI只解释;无评分策略则score=null,不使用原型92%、B+或固定三正三反。非候选的正向部分称“已满足条件”。
- 申请仅限资料准备与引导;不提交银行申请、不声称受理成功。真实产品尚未提供,本地6条上架资料是明确标注的演示产品。
- DeepSeek走腾讯TokenHub,已配置Flash/Pro;默认Flash。短信、微信/一键登录、外部查询、客服服务商仍待定。
- 中文交流与关键中文注释;UTF-8无BOM。保留未提交工作,不自行提交/推送/建PR、迁移或覆盖用户改动。凭据只从后端私密配置读取,不在文档、命令输出、日志或客户端复述。
## 4. 04/05实现入口和注意点
前端:`packages/finance/product/product.uvue`、`packages/finance/services/matches.uts`、`packages/finance/services/compare.uts`。
后端:`application/common/library/ProductExplanations.php`、`MatchRecords.php`、`DeepSeekClient.php`、`AnalysisTasks.php`、`application/admin/command/AnalysisWork.php`、`application/api/controller/v1/Assessments.php`、`application/route.php`。
- POST `/api/v1/assessments/:id/matches/:productId/explanation`仅接受requestId;返回HTTP200的匹配详情及异步状态,不能把HTTP200理解为模型完成。
- fa_ai_chat.match_result中单项ai_explanation保存queued/running/completed/failed和逐条解释;首次not_requested。fa_ai_chat_log的`pex:`调用日志作为持久待办,analysis:work在报告队列空闲时消费。
- 成功缓存、并发点击和同键重放不会重复调用。每评估每产品最多三次尝试,与报告共享每日用户调用预留额度。失败新键可重试;租约失效明确失败,迟到仅补用量。
- 模型可能重排理由,按reasonId完整集合校验无重复/遗漏/外来项,再恢复规则顺序,不能再用数组位置强制匹配。
- 更新解释不能使分页失效:游标摘要排除ai_explanation,仍校验其他冻结字段。
- 前端每三秒读状态、最多六十次,可手动续查;离页停止轮询、清理数据并拒绝迟到回包。UTS Android局部函数不支持任意前向引用,声明顺序须注意。
详见[产品匹配规则开发契约](产品匹配规则开发契约.md)第9节及[需求与评估结果数据契约](需求与评估结果数据契约.md)。
## 5. 验证与现场状态
- 51项单产品解释测试、70项匹配HTTP/快照检查通过。真实Flash共6次调用,4次成功、2次因旧顺序校验失败,修复后不符及待核实样例通过;不是6次均成功。
- HBuilderX5.26 Android/微信小程序编译通过;H5 Chromium在390×844、390×1000、1280×900验证,正常最终流程无业务console.error/warn。微信内H5、Safari及真机、真实产品人工金标准未验收。
- 合成测试账号/评估/会话/日志、Token与队列已清理,测试HTTP和浏览器会话已关闭。上次数据库核验为1会员、2成功评估/会话、25张表;原评估161/229未改写。
- 2026-09-28本轮收尾正式analysis:work已重启加载助手代码,PID45420已恢复运行(原型10测试后);新会话应重新检查进程/任务状态,不能将旧PID视为永久有效。已有模型worker需在代码变更后安全重启。
- 前后端均有未提交改动;本次已实施原型08及10,不清理既有工作树。开始新一轮修改前先git status并保留用户现有改动。
本轮08验证:助手70项、产品解释51项、任务31项、评估HTTP36项、匹配HTTP/快照70项通过;H5 Chromium390×844/1280×900完成发送/刷新/分页/重试/回执丢失/三入口/越权/登录返回验证,Android和微信编译通过。合成数据、令牌、隔离服务、浏览器已清理。截图和无凭据QA脚本在`C:/Users/JUN/AppData/Local/Temp/airz-assistant-20260928/`。共享layout既有H5类型警告保留,正常浏览器运行无业务error/warn。
此前04/05测试与截图目录:`C:/Users/JUN/AppData/Local/Temp/airz-product-explanation-20260928/`。其中flow/retry/states/capture05/edges/final-capture脚本和截图可参考,但临时目录可能被系统清理;fixture.json已删除,不假定旧账号仍可登录。产品对比和报告三栏证据分别在airz-compare-20260928、airz-report-tabs-20260928临时目录。
原型10最新验证见开发进度6.20:38项H5检查(真实API主流程+边界响应注入)、Android/微信27页编译通过。测试已清理,原161/229报告会话摘要未改变,数据库恢复1用户、2评估/会话、2日志。H5最新5173/PID51832,worker PID45420;新会话先检查当前状态。截图与无凭据脚本在`C:/Users/JUN/AppData/Local/Temp/airz-next-step-20260928/`。
原型10代码:`packages/finance/next-step/next-step.uvue`、`services/next-step-route.uts`。只读status/report/matches接口,核对成功归属与快照元数据;eligible且available才开放准备。重新评估按status.type进入空白表单;登录白名单恢复;onHide清空个人数据、generation/token拒绝迟到请求。未修改后端业务或迁移。不要把模拟不可用/旧版响应测试说成真实产品/旧数据验收。
原型09 PDF最新见进度0.20/6.21:29项PDF、20项真实HTTP、24项受控浏览器检查通过,最终Android/微信编译通过。引擎Dompdf3.1.6在后端extend/report-pdf独立composer.lock,字体Noto Sans SC含许可与哈希;部署须在该目录composer install,详见其README。后端ReportPdf与report.pdf路由、MatchRecords::exportSnapshot;前端ReportExport组件/report-export.uts,登录report-route白名单。无迁移,无收费模型调用。仅普通H5开放下载,其余端给操作提示;不能把编译通过说成原生下载验收。
本轮曾被自动审批拒绝组合UI夹具启动,改以受控响应验证浏览器,不声称完整真实浏览器联调。真实HTTP检查独立通过。全部真实合成账号/Token/队列已清理;原两份报告摘要相同。worker现PID34324,H5仍5173/PID51832;每次重查。PDF/截图证据在`C:/Users/JUN/AppData/Local/Temp/airz-report-pdf-20260928/`。
## 6. 环境与验证命令
前端目录:`D:/WorkSpace/cyun/ai融资`,uni-app x/Vue3/UTS、HBuilderX5.26 VDOM,无npm构建入口。后端目录:`D:/AAdesk/202609/airz`,FastAdmin/ThinkPHP、PHP7.4、MySQL/Redis。
```powershell
# 在对应项目目录执行;后端合成任务测试前先核对并停止全部分析worker,结束清理后恢复。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/product_explanations.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/match_records.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_chats.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_reply.php
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_money.php
# 默认仅输出计划;--fake --worker-stopped才执行合成流程。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_semantics.php --money-precision
# --live会真实调用并产生用量,日常回归不加。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' think analysis:work
& 'D:/Develop/HBuilderX/cli.exe' launch app-android --project 'D:/WorkSpace/cyun/ai融资' --compile true --continue-on-error false
& 'D:/Develop/HBuilderX/cli.exe' launch mp-weixin --project 'D:/WorkSpace/cyun/ai融资' --compile true --continue-on-error false
```
H5已清理旧开发服务器并以最新代码恢复`http://localhost:5173/`,新会话先核对监听。注意HBuilder多次launch可能保留旧端口产物,新增代码未加载时先重启正确服务,不把旧包误判为业务错误。可用Python为`D:/Develop/Python311/python.exe`。已有Playwright CLI使用`npx --no-install @playwright/cli`,从临时QA目录运行避免向项目写入日志;工具可用性按新会话实际环境选择,无需安装全局依赖。
本地PHP测试服务需指定`-t D:/AAdesk/202609/airz/public`,否则可能返回首页HTML。UI测试使用随机合成账号,不输出密码/Token;原有真实用户账号无需改动。恢复扫描可能拾取测试任务,仅换Redis队列不足以隔离,故测试前要检查worker。
## 7. 新会话可以直接发送
> 请先阅读docs/新会话交接.md、开发进度0.23/6.24和原型04-10页面方案,继续原型08移动端及跨平台验收,先阅读AI助手真实语义验收记录:金额精度三轮真实专项已通过,无需重复收费调用;核对可用浏览器和真机环境,清楚区分模拟与真机结果。界面尽量还原docs/原型.jpg,关键代码加中文注释;保留已有04/05解释、07对比、08上下文助手、09报告及10行动成果。只做材料准备与引导,不提交银行申请;PDF未完成时不做假下载。先检查工作树与数据库/worker现状,新增迁移仍按具体方案申请授权。