feat: 优化账户切换时的页面状态一致性,增加登录回跳校验和课程阅读新逻辑

- 增加账户状态监听定时器,页面切换时自动校验账户归属,避免跨账户操作
- 新增登录回跳路径校验函数,限制仅允许指定页面回跳,防止非法跳转
- 课程页改为整篇连续阅读,底部仅一次标记已读,兼容历史记录
- 完善助手、对比页、资料填写页等多处的账户状态校验逻辑,防止错版数据提交
- 优化账户资料请求逻辑,增加版本校验,避免旧请求覆盖新数据
This commit is contained in:
hujun
2026-10-07 10:01:05 +08:00
parent 1723363b7e
commit 71b3c25695
37 changed files with 1389 additions and 323 deletions
+170 -1
View File
@@ -1,6 +1,175 @@
# AI融资项目新会话交接
记录日期:2026-10-05。本文件为接续入口;当前存储与流程以[评估版本与最新资料](评估版本与最新资料.md)、[开发进度](开发进度.md)0.62节(反馈与消息后端生产发布)、0.61节(反馈与消息配套发布准备)、0.60节(反馈恢复与消息组合检查)、0.59节(反馈回复通知联动)、0.58节(会员反馈原键恢复)、0.57节(后台反馈处理及既有小程序发布状态)、0.55节(后端发布)及[开发文档](开发文档.md)v1.46为准。历史章节中的域名、部署及“待开发”以最新记录为准。
记录日期: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