From 25cb06b71c54a1bea595f01c4987dd8902174dff Mon Sep 17 00:00:00 2001 From: hujun Date: Thu, 8 Oct 2026 17:43:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B8=AE=E5=8A=A9?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=8A=A0=E8=BD=BD=E3=80=81=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E5=92=8C=E8=B4=A6=E6=88=B7=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完善帮助内容接口的响应校验,增加数据格式和范围验证 - 优化搜索页面的滚动位置管理,避免H5页面激活时的组件重建问题 - 增加账户切换时的定时器清理,防止内存泄漏和重复请求 --- README.md | 38 +++ docs/后台内容增量发布清单.md | 195 ++++++++++++ docs/开发文档.md | 128 +++++++- docs/开发进度.md | 466 +++++++++++++++++++++++++++- docs/新会话交接.md | 407 +++++++++++++++++++++++- docs/核心与权限验收矩阵.md | 63 ++++ packages/content/help/help.uvue | 26 +- packages/content/search/search.uvue | 13 +- packages/content/services/help.uts | 20 +- 9 files changed, 1317 insertions(+), 39 deletions(-) create mode 100644 docs/后台内容增量发布清单.md create mode 100644 docs/核心与权限验收矩阵.md diff --git a/README.md b/README.md index 4b10404..3546405 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,43 @@ # AI 融资移动端 +2026-10-08最新开发(进度1.97/1.07、文档v1.65/0.78):完成资讯、课程、FAQ与旧协议新增/编辑/批量/删除的内容专用CSRF门禁:独立随机256位Session Token、仅POST请求体、缺失/错误/数组/跨会话/旧Token拒绝,成功及失败刷新,客户端手动重试、不自动重放。权限/撤权、类型和版本范围、超管批量仅合法status保持。8个运行文件配套,通用Backend/Form/Table与公开内容/整篇一次已读不改。新增CSRF627项/128次HTTP,内容组合522/147、课程服务56、内容HTTP362/90和后台权限227/158回归通过,本批五入口1794项/523次本机HTTP,模型0。实际Chromium宽1440×1000/窄390×844验证63项、18次内容POST,错误/警告/外部请求0;保存按钮与Token刷新/手动恢复、Table.api.multi及真实删除控件通过,手机保存按钮滚动后可见,不声称存在批量状态按钮或手机首屏保存。失败/重复运行及浏览器与PHP检查分开,不跨轮累计。说明见[内容CSRF](D:/AAdesk/202609/airz/database/content-csrf-regression.md)及[验收矩阵](docs/核心与权限验收矩阵.md)。所属合成环境已清理,未部署/提交。8个运行文件尚未部署;没有生产访问、真实worker/模型、外部消息、安装或提交/推送/PR。未重跑小程序/H5编译、搜索旧响应竞态、真实回执丢失/多设备恢复或真机/正式运营签收。RELEASE-001开发中/整体未验收,独立Linux测试机路线已取消、Linux/systemd未验证、RELEASE-003阻塞;63任务/27页面保持。下一项:RELEASE-001候选版本与验收用例收口:固定本地候选源码清单/摘要,关联已验证范围和剩余外部阻塞,形成可复核交付基线;不部署、不预填正式签收,不继续扩张同类回归工具。 + +2026-10-08前轮开发(进度1.96/1.06、文档v1.64/0.77):新增内容发布/下架与整篇课程已读组合518项、143次本机HTTP通过;原课程服务56、内容HTTP362、后台权限227项回归通过,本批四个入口共1163项、391次本机HTTP,模型调用0。红测试复现超管批量修改任意字段绕过内容编辑;ContentEditor::multi现统一只接受合法status,非法/混合字段拒绝,保留父类权限、类型范围及事务。仅这一trait修复,原业务改动和旧测试保持。说明见[内容组合](D:/AAdesk/202609/airz/database/content-flow-regression.md)及[验收矩阵](docs/核心与权限验收矩阵.md)。所属合成环境已清理,未部署/提交。RELEASE-001开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:后台内容写入CSRF门禁与配套表单/批量请求改造,覆盖资讯、课程、FAQ和旧协议;先缺失/错误/跨会话Token红测试,再补服务端校验和有效请求/Token刷新/撤权验证,全新本机合成环境、不改通用Backend。 + +2026-10-08前轮开发(进度1.95/1.05、文档v1.63/0.76):新增反馈处理/站内消息组合344项、97次本机HTTP通过;原反馈67、处理32、通知43、恢复24、账户281和后台权限227项回归通过,本批7个入口共1018项、324次本机HTTP,模型调用0。双会员/本人多会话与运营/技术/两名客服/超管贯穿原键提交、处理/回复、唯一通知/已读、退出/改密和重新登录恢复;验证角色权限/撤权、CSRF/旧版本/原文写入拒绝、跨用户消息和反馈隔离、回复修订/水位分页、通知或审计故障完整回滚及私密正文不进入通知/审计。新增[组合测试](D:/AAdesk/202609/airz/tests/feedback_message_flow.php),说明见[反馈消息组合](D:/AAdesk/202609/airz/database/feedback-message-regression.md)及[验收矩阵](docs/核心与权限验收矩阵.md)。未发现新的业务源码缺陷,测试环境已清理;未部署/提交。RELEASE-001仍开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:内容发布/下架→列表/搜索/详情→整篇课程一次已读的跨角色/跨账户组合回归,先用全新本机合成环境;不重复扩张告警模拟工具。 + +2026-10-08前轮开发(进度1.94/1.04、文档v1.62/0.75):新增后台五角色诊断/人工重试组合167项(41次本机HTTP、4次假调用),原后台权限227项(158请求)、针对性权限/隐私/诊断/重试/审计/服务用量575项和主流程280项回归通过;本批14个入口共1249项、199次本机HTTP、20次显式假调用,失败和重复运行不累计。已汇总[核心与权限验收矩阵](docs/核心与权限验收矩阵.md),说明见[后台组合](D:/AAdesk/202609/airz/database/admin-flow-regression.md)。本轮没有业务源码修复或部署。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项:已有反馈处理与站内消息的跨角色/跨账户组合回归:会员原键提交→客服处理/回复→唯一通知/已读→退出或改密→重新登录/原键恢复;随后补内容发布/下架与整篇课程已读/搜索组合。 + +2026-10-08前轮开发(进度1.93/1.03、文档v1.61/0.74):新增会话撤销/跨账户权限/消息与助手组合检查375项、100次本机HTTP、8次显式假调用通过;原会话并发281、助手165、资料268、主流程280项回归通过,本轮五个入口共1369项,失败和重复运行不累计。本轮补组合测试,未发现新的业务缺陷,业务源码保持。见[组合说明](D:/AAdesk/202609/airz/database/session-assistant-regression.md)。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项汇总RELEASE-001核心与权限验收矩阵,继续后台跨角色权限及评估排障/人工重试组合检查,明确剩余开发用例与正式签收条件。 + +2026-10-08前轮开发(进度1.92/1.02,文档v1.60/0.73):用户已取消独立Linux测试机路线,原执行方案存档,不再等待目标绑定;Linux/systemd未验证,RELEASE-003仍阻塞/正式未验收。个人/企业评估→报告→产品匹配组合检查280项通过;提交、版本并发、持久化、匹配读取/解释/任务/纯规则及历史报告/PDF相关回归共1666项通过。修复新报告发布后历史匹配列表和导出仍允许解释重试的问题,列表/详情/导出统一依据published_input_id计算权限;重评处理中或失败时,仍在发布的旧版保留重试权限,不能用isPreviousResult直接禁用。见[组合回归说明](D:/AAdesk/202609/airz/database/core-flow-regression.md)。RELEASE-001进入开发中,整体未验收;下一项继续RELEASE-001的会话撤销/跨账户权限、消息与助手组合回归,覆盖旧Token失效、资源归属、消息幂等与历史报告上下文;不重复同类告警模拟。 + +2026-10-08历史准备(进度1.91/1.01,独立机路线已取消):[真实Linux隔离执行方案](D:/AAdesk/202609/airz/database/worker-supervision/linux-execution-plan.md)已整理,待目标绑定;用户明确测试机尚未准备,本机无WSL发行版。原49/42回归共91项及历史核验通过,未冻结目标运行包或执行Linux服务/采样。下一步完成独立测试机核对、主控与可信采样适配,再冻结具体操作和恢复范围;RELEASE-003阻塞/正式未验收保持。 + +2026-10-08前轮开发(进度1.90/1.00):合成告警链统一预检和证据汇总完成,52项新测试/3 owned进程及原43/63/51/56/49/42回归共356项通过。见[链路契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-chain.md);一致性/排空/合成就绪分别报告,7事件最终7模拟确认/7效果/2审计,样本过旧会阻止合成ready。正式未验收,下一项真实Linux隔离验证条件核对与冻结方案。 + +2026-10-08前轮开发(进度1.89/0.99):dead模拟回执对账和同事务人工恢复审计完成,匹配回执只补确认、无回执只grant一次且不清零尝试次数,43项新测试/9 owned进程和原63/51/56/49/42回归通过。见[恢复契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-recovery.md);合成7事件恢复后7确认/7唯一效果/2审计。旧证据/四旧库保持,仅新合成账本,正式未验收;下一项合成告警链统一预检与证据汇总。 + +2026-10-08前轮开发(进度1.88/0.98):outbox有界调度/领取租约/失败退避和模拟接收端幂等完成,63项测试/12 owned进程通过并退出;7事件先模拟接收成功但超时再重投,最终7模拟确认/7唯一效果,源库不改。见[调度契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-dispatch.md)。原51/56/49/42回归和历史证据保持,仅合成账本/进程内渠道,正式未验收;下一项dead事件回执对账与带审计人工恢复门禁,不接外部通知。 + +2026-10-08前轮开发(进度1.87/0.97):告警state/outbox本地SQLite原子保存、互斥/整批重试/eventId唯一与崩溃恢复完成,51项测试、10个owned进程通过并全部退出;24合成样本7事件,整批重试24跳过/0新增,模拟确认幂等。见[存储契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-store.md)。原56/49/42回归与历史证据保持,仅合成文件/模拟确认,正式未验收;下一项outbox调度/领取租约/失败退避和模拟接收端幂等,不接外部通知。 + +2026-10-08前轮开发(进度1.86/0.96):告警连续门槛/去重/恢复与维护窗口处理完成,56项测试、24合成样本7事件/4维护重置通过;默认故障3次打开/健康2次恢复,纯状态/只读序列、无采集或投递。见[告警状态](D:/AAdesk/202609/airz/database/worker-supervision/alert-state.md)。原49/42项回归与历史回执保持,正式验收仍待办;下一项原子state/outbox保存、互斥和崩溃恢复,合成文件/模拟确认不投递。 + +2026-10-08前轮开发(进度1.85/0.95):Linux/systemd队列守护与告警离线准备完成,49项文件测试和10类PHP心跳兼容检查通过;合成unit/作用域spec/只读预检与安全告警预览见[隔离准备](D:/AAdesk/202609/airz/database/worker-supervision/README.md)。本机无systemd原生命令,未做真实信号/重启/开机或外部投递,正式验收保持待办。下一项连续失败门槛、故障去重/恢复及维护边界,仍合成序列不投递。 + +2026-10-08前轮开发(进度1.84/0.94):RELEASE-003部署恢复手册与只读证据入口完成,42项合成文件测试、五组14份回执/21不同源码核验通过;唯一历史共享工具hash差异由两个新回归明确覆盖,旧回执保持。校验器标准库/无DB或服务操作/默认stdout,formalAcceptance=false,清理只代表历史回执。见[恢复手册](D:/AAdesk/202609/airz/database/deployment-recovery-runbook.md)及[交接](docs/新会话交接.md)。下一项Linux/systemd守护与告警隔离准备,正式验收及生产条件待办。 + +2026-10-08前轮开发(进度1.83/0.93):全库恢复导入中断/部分目标保留/另建空库恢复92项通过,共享密钥恢复入口另一个新环境53项回归通过;真实客户端终止覆盖部分11表、32行未提交事务回滚、完整26表已落库但缺回执,非空重导拒绝且来源/现场保持。小合成样本恢复1.235秒,自己的进程/四端口停止,零生产/worker/模型执行。见[导入中断演练](D:/AAdesk/202609/airz/database/restore-interruption-rehearsal.md)和[交接](docs/新会话交接.md),下一项部署恢复手册/证据校验,生产守护告警及正式验收待办。 + +2026-10-08前轮开发(进度1.82/0.92):队列进程生命周期隔离演练76项通过,覆盖强制退出/重投/租约恢复/明确重试、并发迟到结果、心跳接管及MySQL/Redis实际中断重启。模型配置始终禁用,成功路径仅显式进程内替身,0真实模型网络调用;自己的进程和服务已停止。说明与接续见[队列演练](D:/AAdesk/202609/airz/database/queue-lifecycle-rehearsal.md)和[交接](docs/新会话交接.md),下一项全库导入中断/恢复耗时,生产守护/外部告警及正式验收待办。 + +2026-10-08前轮开发(进度1.81/0.91):合成26表/8触发器全库备份恢复及单独AES密钥恢复53项通过,错误密钥、损坏包/密文、客户端连接漂移和非空目标均拒绝,来源保持;自己的服务停止,零生产/worker/模型执行。说明及接续见[密钥恢复演练](D:/AAdesk/202609/airz/database/key-recovery-rehearsal.md)与[交接](docs/新会话交接.md),下一项队列进程生命周期,正式验收待办。 + +2026-10-08最新开发(进度1.80/0.90):r2新合成环境的实际增量部署、异常中断与定向恢复157项通过,覆盖13运行文件、权限/FAQ/课程简介/资源版本,保留发布后合成业务数据。零生产连接/worker/模型执行,隔离服务已停止;正式验收及RELEASE-003其余守护/灾难恢复证据仍待办。当前接续见[交接](docs/新会话交接.md)与[隔离演练说明](D:/AAdesk/202609/airz/database/release-rehearsal.md)。以下1.79/0.89仍为既有生产发布记录,不重复发布。 + +2026-10-08最新(进度1.79/0.89):后台与内容r2已按用户授权完成生产维护,13运行文件、16权限节点/3正式模板、8FAQ、课程ID1简介及资源版本上线;22服务器HTTPS与20公网可信TLS烟测通过,服务/队列恢复正常,0模型调用。账号密码/绑定、策略及学习进度保持,小程序仍由用户自行发行,暂不正式验收。当前状态与下一开发入口见[交接](docs/新会话交接.md)和[开发进度](docs/开发进度.md),下面“最新/未部署”日期段落均为历史快照。 + 2026-10-04最新(0.59):后台首次有效反馈回复已接站内服务通知,每条反馈最多一条;重复保存/修订不重复通知,反馈/审计/通知同事务。消息“查看回复”打开本人单条反馈,支持第一页以外记录、最新回复刷新及登录回跳,并防止换账户或迟到响应回填。后端142项、页面48项隔离检查及Android/微信27页面编译通过,未部署或正式验收;新目标类型需要配套更新前后端。测试库/Token已清除,隔离服务停止;私密临时文件删除被策略拒绝,精确ROOT见[交接](docs/新会话交接.md),不要直接复用或整体共享。下文保留历史阶段记录。 2026-10-04最新:会员反馈未知提交已支持离页、浏览器进程重启、退出/401及原账户重新登录后恢复原请求键和原文,恢复后由用户点击确认,不自动发送;存储故障阻止覆盖待确认记录,成功回执核对 `requestId` 后才清理。后端67项、页面93项隔离开发检查及Android/微信27页面编译通过,未开展正式验收。用户此前发布的小程序版本不包含本轮新增源码;这批前后端尚未部署/发行,新前端需要后端先或配套发布 `requestId` 回执,无新增DDL。测试库/Token已清除、隔离服务已停止,私密文件删除被自动审批拦截,精确路径及证据见[交接](docs/新会话交接.md)和[开发进度0.58](docs/开发进度.md)。H5发行、积分规则和正式迁移仍按各自记录处理,下文为历史阶段记录。 diff --git a/docs/后台内容增量发布清单.md b/docs/后台内容增量发布清单.md new file mode 100644 index 0000000..b551026 --- /dev/null +++ b/docs/后台内容增量发布清单.md @@ -0,0 +1,195 @@ +# 后台与内容增量发布清单 + +2026-10-08开发接续:r2增量演练后已补合成26表/8触发器全库与单独AES密钥实际恢复53项证据,见[进度0.91](开发进度.md)和[密钥演练](D:/AAdesk/202609/airz/database/key-recovery-rehearsal.md)。本轮零生产连接/worker/模型执行,不改变下方既有生产发布事实或冻结包/生产恢复守卫;正式验收待办,下一项队列进程生命周期。 + +## 2026-10-08 隔离实际部署与恢复开发证据 + +承接已执行r2生产发布,另以新合成环境完成157项开发检查:13文件/16节点/3模板/8FAQ/课程简介及版本的实际部署、文件/数据库提交前后/恢复过程异常退出、继续部署及定向恢复幂等、后续编辑与权限引用拒绝。恢复后合成密码变化、通知、积分、浏览量、已读时间、新配置和另一FAQ保持,26表列结构保持;71依赖/保护哈希通过,10本机HTTP请求及2正文检查通过。详见[进度0.90](开发进度.md)和[隔离演练说明](D:/AAdesk/202609/airz/database/release-rehearsal.md)。 + +MySQL3317/Redis6397/HTTP18177仅本机,自建进程已停止;零生产连接/worker/模型执行。冻结生产脚本/包保持,新工具仅接受显式隔离config,不重建历史生产before或导入生产私密dump,不放宽生产回退守卫。安全回执为[verification.json](D:/AAdesk/202609/airz-backups/release-rehearsals/airz-release-rehearsal-1791425757362/verification.json)、同目录cleanup.json及各场景command回执。本结果补实际恢复开发证据,不代表RELEASE-003整体、生产灾难恢复或正式验收完成;下方生产发布事实保持。 + +## 2026-10-08 已执行记录 + +用户明确授权后已按下列r2范围在生产维护窗口完成,最新对应开发进度1.79/0.89;下文10月7日的未部署/待授权文字保留为历史准备记录,不能作为当前状态。13运行文件、16权限节点/3模板、8FAQ首次导入、课程ID1 intro及资源版本同步均已执行,不绑定账号或改用户密码/策略。 + +09:35:21+08:00已完成停写/空闲worker与FPM停止、13源码/site/目标数据及26表完整备份;09:35:46发布,09:37:37恢复worker、原Nginx配置和公开入口,09:39:34最终复核。服务器私密归档/root/airz-admin-content-20261007-r2-20261008(目录700/文件600),完整数据库gz SHA256 be8791b009fb236bc6b0500b94f177ffb2906060d2d41fe7bbd3f6e1dbb4c09e;临时数据库INI/client cnf和站点暂存文件清理,宝塔专用会话退出关闭。 + +| 已执行项目 | 实际回执 | +| --- | --- | +| 文件 | 13 after等于冻结runtime包,84文件依赖/保护复核;线上AssessmentRecords.php保留原精确变体、.env保持 | +| 权限 | 节点ID134—149,模板ID6/7/8(运营v1/客服v2/技术v5),根1;总147节点/8组/1绑定,重复增量0;现有记录和绑定保持 | +| FAQ | 首次新增8行ID5—12,公开8条逐字段匹配冻结种子;无其他内容导入 | +| 课程 | ID1 intro更新,新version729e675e4e67da195fd7a77a47b9c1d838d60748d9763b2673317f3cb0f318b8;正文/3稳定ID/顺序/推荐/发布/已读保持 | +| 版本/缓存 | DB id4/version和site.php/version均20261007-admin-content-r2;仅目标字段,File __menu__精确缓存刷新,受影响模板缓存当次不存在,未清Redis | +| 验证/服务 | 22服务器HTTPS+20公网可信TLS检查、15表结构和26表数据通过;21非目标表/账号/绑定/策略/模型日志/进度保持;三服务active、三队列0、心跳idle且0秒;0模型调用 | +| 恢复 | 13源码before和新增权限/FAQ ID、课程/版本字段守卫干跑通过,未实际恢复;禁止整表/整库回退覆盖后续数据 | + +安全执行回执:[release-receipt.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/execution-20261008/release-receipt.json)、[final-verification.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/execution-20261008/final-verification.json),同目录保留window/prepare/deploy/verify/rollback-check/resume/observe/public-smoke原始回执。runtime/maintenance/manifest/verifier均未改变,小程序未代发、H5未发行、正式业务/运营/真机验收保持待办。未提交/推送/PR;后续补隔离实际恢复演练,不重复生产执行。 + +更新:2026-10-07,对应开发进度1.78/0.88。已通过宝塔Playwright完成生产只读预检并形成r2具体计划;尚未部署、应用权限模板、导入FAQ或修改内容/账号。本批后端先行,小程序由用户自行发行,H5不随本批发布;实际生产写入须明确本批范围和维护窗口。 + +22:14:43、22:14:55(+08:00)重新通过宝塔终端执行冻结的内存只读脚本,r2的13项观察门禁全部通过:84文件before/属主/权限、15相关表、19权限计划、8缺失FAQ及7现有内容slug、课程ID1原版本/简介/正文/进度、环境/资源版本和策略均保持;三服务active、活动任务/调用和三队列0、心跳idle且0秒新鲜。原始主预检仍保留`ok=false`与既有换行/缺FAQ例外,复核不代替窗口内检查。临时`panel.private.json`与执行JS已删除,专用会话退出关闭;未停写/停worker、生产备份、发布或业务写入。具体范围、影响、备份和字段级恢复见[维护执行确认单](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/维护执行确认单.md),复核回执为同目录`preapproval-main.json`、`preapproval-supplement.json`、`preapproval-review-r2.json`。当前按用户提供的AGENTS.md第8节等待该批范围及维护窗口确认,不重复请求此前已完成发布的授权。 + +## 1. 基线与范围 + +本轮实测目标为 `https://airz.hqling.cloud`、`/www/wwwroot/xctai.cn`、数据库`127.0.0.1:3306/airz`,Python3.12.13/PHP7.4.33/MySQL5.7.44-log。Web运行目录`public`、API前缀`/api/v1`及根域名无PHP管理端沿既有记录。主预检时间2026-10-07 21:50:51+08:00,补充检查21:57:17+08:00;窗口内须复核哈希、活动状态和备份,不能把观察快照当作部署许可。 + +| 已有部署记录 | 本轮处理 | +| --- | --- | +| 2026-10-04:3716文件后端包,服务器归档 `/root/airz-backend-20261004` | 作为范围参考;本机未取得这一批完整生产文件快照,不能用Git提交代替当前线上基线 | +| 2026-10-05:7个反馈/消息文件与反馈5项结构增量 | 本轮7文件实际哈希全部匹配,反馈四字段/请求唯一键通过;候选包不重复覆盖 | +| 2026-10-07:两入口及登录验证码页面3文件 | 本轮3文件实际哈希全部匹配;保持根域名入口、API及旧链接308,不回退密码 | +| 用户随后自行修改admin密码 | 不使用旧临时凭据,不重置、不把账号备份整行恢复 | +| 小程序由用户自行发布 | 已上传版本没有可核对的源码哈希;前端变化清单是仓库参考差异,不等于已确认的小程序线上增量 | + +本批覆盖0.63—0.85检查中仍未配套上线的后端修复:任务状态/租约/报告持久化及非法版本参数、后台资讯/FAQ类型隔离、编辑换行兼容、课程整篇阅读文案与搜索摘要、服务额度摘要。正式运营v1/客服v2/技术v5的应用层依赖必须保持完整,再单独预检和应用权限模板;脚本不自动分配账号。 + +明确排除积分表迁移或规则启用、供应商/短信/手机号换绑/人工客服/外部告警接入、收费模型调用、正式业务验收、H5发行和本轮小程序上传。现有演示产品/内容不在本批转换为真实业务资料。 + +## 2. 候选包与哈希 + +当前受限材料:`D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/`,ACL仅JUN/SYSTEM。r2归档含原13运行/7维护包、安全生产回执、换行差异审阅、实际权限/内容/资源版本计划和新manifest/verifier;不含.env、密码、会员记录、Token或完整私密备份。原`admin-content-release-prep-20261007`冻结材料保持,r2明确替代其未实测计划。 + +| 材料 | 内容 | SHA-256 | +| --- | --- | --- | +| [runtime.zip](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/runtime.zip) | 原13个精确运行文件,28706字节,包内容保持 | `c1c3adb13d82c89b2bf280911266b951a50da59b268e535962d2eca213477a91` | +| [maintenance.zip](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/maintenance.zip) | 原7个维护文件,20672字节;只执行明确批准步骤 | `576f36650b86e08b6d9f0ee5da34c0a48ba63c5787d4ae66dfeb8ad4f3cd2a59` | +| [manifest.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/manifest.json) | r2:13真实before/属主/权限,60匹配依赖+1审阅保留依赖、10保护文件 | `dad26e8d1e8067d840f9dc8ed0b7d062798239fb5d8736f26cba59a6c4aedca0` | +| [verify_release.py](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/verify_release.py) | 仅允许带可信审阅回执的精确线上换行变体;未知哈希/逻辑仍拒绝 | `5bcfed4dae360fde7c7a18d2dd737d30749cb5dd346acc058907526686260b0e` | + +`frontend-source-reference.json`仍为28个仓库参考哈希,不等于小程序线上增量。r2的`content-maintenance-plan.json`改为首次导入8条FAQ和ID1课程简介维护;`permission-maintenance-plan.json`记录16节点/3模板、父组1,`resource-version-plan.json`记录DB/site版本具体before。计划均未应用,各包无新增依赖安装;维护包的纯库不覆盖站点。 + +`repositoryReferenceSha256`仍只作仓库参考。r2的13运行条目已标记`beforeHashConfirmedFromProduction=true`,来自当次服务器读取。`AssessmentRecords.php`线上22393字节与本机22389字节仅4行CRLF/LF差异,统一为LF后逐字节完全一致;保留线上SHA256 `6e294e8db263ad5a705ac308741f02fd1dfd12a191c9a20270d0039e49aecc71`,不纳入runtime。r2 verifier同时核对可信审阅哈希、精确线上/源码哈希及规范换行后哈希,未知变体或逻辑变更仍阻断;其他依赖/保护漂移不得绕过。 + +## 3. 13个运行文件 + +| 模块 | 相对后端根目录路径 | 配套行为 | +| --- | --- | --- | +| 评估 | `application/api/controller/v1/Assessments.php` | revisionId保留原始类型,非法数组交统一归属/版本校验 | +| 评估 | `application/common/library/AnalysisTasks.php` | 任务标识、状态/租约、发布事务及旧结果版本保护 | +| 评估 | `application/common/library/Assessment.php` | 报告和结果版本在发布事务内保持一致 | +| 评估 | `application/common/library/AssessmentStore.php` | 持久化写入校验、旧快照保护、无变化旧行不重写 | +| 内容 | `application/admin/controller/Acticle.php` | type排除写入,旧协议与结构化资讯兼容 | +| 内容 | `application/admin/model/Acticle.php` | 资讯/协议入口排除FAQ(type6) | +| 内容 | `application/admin/model/Faq.php` | FAQ入口限定type6 | +| 内容 | `application/admin/view/acticle/edit.html` | 旧类型字段只读 | +| 内容 | `application/admin/view/content/form.html` | 阅读时长、正文段落文案和操作名称 | +| 内容 | `application/common/library/ContentCatalog.php` | 搜索课程摘要显示阅读时长 | +| 内容 | `application/common/library/ContentPublication.php` | 编辑保存比较等价换行,保留旧正文/稳定段落ID和进度 | +| 内容 | `public/assets/js/backend/content-editor.js` | 段落按钮、排序/最后一段/30段上限交互 | +| 服务 | `public/assets/js/backend/servicestatus.js` | 会员额度摘要显示当前评估尝试上限;坏策略显示未知 | + +仅runtime.zip可按此表覆盖站点路径;既有文件所有者、权限及新文件摘要须按发布回执保留。`.env`、`application/extra/site.php`、vendor/extend、上传目录、测试、数据库脚本、Git和前端编译产物不进入runtime包。 + +## 4. 必须核对的配套依赖 + +manifest中61个 `requiredExistingFiles`只读核对,不在runtime包中。缺失或哈希不同必须查明,不把它们默认视为已上线,也不为绕过预检覆盖整仓库。 + +| 依赖组 | 必须一起存在并匹配的主要能力 | +| --- | --- | +| 正式角色 | BusinessPermissions/BusinessPrivacy/BusinessMetadata、后台默认首页和Auth、只读记录trait、会员资料/消息白名单、模型密钥受控启停、日志/本人配置权限 | +| 内容 | ContentEditor trait、Finance/Faq控制器及表单/JS、LessonProgress、Content/Home/route、内容查询与公开API;前台课程保持整篇连续阅读、一次已读 | +| 排障重试 | Assessment控制器、Diagnostics/Retry/RetryAudit、两页面/assessment.js、AssessmentRecords、报告/匹配库、worker命令及任务job | +| 服务策略 | Servicestatus/Modelconfig、Service/AiUsageDiagnostics、策略Editor/专用Audit/页面JS、AiRuntimePolicy、三场景调用读取、DeepSeekClient、worker心跳、analysis配置 | +| 通用配置保护 | general/Config控制器、common/Config模型;不能撤保留行保护而留下通用CRUD或refreshFile写出策略 | +| 已部署保护项 | 7个反馈/消息文件(AdminLog同时依赖重试与策略专用审计)、3个无后缀入口文件 | + +正式模板新建前,确认模板动作对应的控制器、DTO、审计和通用配置保护已部署。技术v5四字段策略权限不授环境开关、供应商URL、凭据新增/轮换、系统配置或管理员权限;多个角色取并集,绑定前核对每个账号的最终权限。 + +## 5. 生产只读预检 + +已使用用户提供的宝塔凭据,经缓存Playwright CLI进入终端完成三次有界只读检查。主脚本与独立PDO均在内存执行,无ThinkPHP初始化、上传/解压维护包、生产检查文件或业务写入;PDO会话只读事务,明确目标。终端画布无法读文本,改从实际Playwright WebSocket接收回执;直接刷新终端曾返回`ws_callback`缺项,通过面板首页→终端重新进入后恢复,未改面板或系统配置。首次导航证书不受信任,专用会话使用原配置`ignoreHTTPSErrors`,仅宝塔;没有改变公开站点TLS验证。 + +| 当次实测 | 结果与边界 | +| --- | --- | +| 84文件 | 13运行全部待更新;60依赖/10保护匹配;1依赖换行差异审阅保留。原主回执`ok=false`保留,不伪改为全通过 | +| 15相关表 | InnoDB、规定列类型/空值/显式排序规则、唯一键/声明外键全部通过;不是全库完整schema验收,不迁移积分 | +| 权限 | 当前131节点/5组/1绑定,唯一正常超管根1;实际缺16节点/3正式模板,共19项。无模板/绑定写入 | +| 内容 | 8 FAQ slug均0,type6总行0;4资讯/3课程slug各唯一;credit-basics为已发布/推荐ID1,原简介匹配参考,正文/稳定ID已记录,进度0 | +| 策略 | ai_runtime_policy缺行,合法沿环境默认:Flash/20次/3尝试,模型环境开启;只读解析.env,不代表供应商验证,不创建策略行 | +| 服务/活动 | analysis/FPM/Redis均active,观察PID2525192/2525169/552222;无processing/pending/streaming,三队列0,心跳idle且1秒新鲜 | +| worker日志 | unit stdout/stderr均journal;最近15分钟最多300条取样实际0条。无错误样本,不代表全时段无错误 | +| 资源版本 | DB fa_config id4/version=1.0.2,实际site.php=1.0.1;记录真实site/.env哈希,只在批准时精确同步版本字段 | + +安全回执在r2归档`production-preflight.json`、`supplemental-db-probe.json`、`dependency-drift-review.json`和`review-summary.json`。原始预检因已审阅换行差异及FAQ不存在而未全通过;r2将差异和实际数据维护显式纳入计划,没有删门禁或覆盖线上。5类本机变体验证通过:已审阅精确变体接受、未知同逻辑换行哈希拒绝、逻辑变更拒绝、错误manifest拒绝、篡改审阅拒绝;合成文件逐项清理。窗口内仍须复核,不停写/停worker/备份/apply直到本批写入授权。 + +如后续需将维护材料落盘,须按当次授权准备私密目录(目录700/文件600),不放public;以下是原准备的独立包/脚本方式,不作为本轮已执行记录。预检要求已有Python3.9或以上、PHP7.4;先核对版本,不自动安装或升级系统运行时。核对源包、manifest和脚本SHA-256后再执行下例;示例目录需替换为当次确认目录。 + +```sh +python3 /root/airz-release-review/verify_release.py \ + --package-dir /root/airz-release-review \ + --manifest-sha256 dad26e8d1e8067d840f9dc8ed0b7d062798239fb5d8736f26cba59a6c4aedca0 \ + --site-root /www/wwwroot/xctai.cn \ + > /root/airz-release-review/file-preflight.json +``` + +预检逐文件输出safe哈希;13运行可待更新,60配套/10保护必须精确匹配,1配套允许上述已审阅精确变体。该脚本只证明文件条件,不检查数据库、服务空闲、备份、账号绑定或授权;`ok=true`不是部署许可。其他合法漂移先审阅并重建材料,不直接删漂移清单。 + +数据库配置从当次确认的服务器环境准备为私密显式INI;禁止在本机默认.env下加载框架、启动worker或跑正式库测试。服务器历史环境为127.0.0.1:3306/airz,实际`--target`须与当次配置完全一致。维护包在独立目录保留database/application相对结构,PHP路径沿现网 `/www/server/php/74/bin/php`。 + +```sh +/www/server/php/74/bin/php /root/airz-release-review/maintenance/database/migrate_admin_permissions.php \ + --env /root/airz-release-review/private/production.ini \ + --target 127.0.0.1:3306/airz + +/www/server/php/74/bin/php /root/airz-release-review/maintenance/database/import_faq.php \ + --env /root/airz-release-review/private/production.ini \ + --target 127.0.0.1:3306/airz + +/www/server/php/74/bin/php /root/airz-release-review/maintenance/database/import_content.php \ + --env /root/airz-release-review/private/production.ini \ + --target 127.0.0.1:3306/airz +``` + +以上不带`--apply`;导入脚本会使用锁/只读事务,但不插入业务行。权限预检按实际根角色、完整节点/索引/父层级/同名节点/模板规则核对。若有多个正常根角色,确认真实父ID后显式加`--parent-group-id`;不得照搬测试根37、60节点/3模板或63项增量。旧技术v1—v4和客服旧角色/绑定保留;同名现行模板漂移会阻断,不自动修复或补权。 + +还须只读核对:涉及行锁/成功审计的admin/admin_log/user/ai_chat/ai_chat_log/config/auth三表均为InnoDB;评估最新版本结构已存在;反馈四字段及唯一键、消息事件唯一键、课程进度表保持;无重复组或异常结构。积分字段/表不迁移。`ai_runtime_policy`缺行是兼容状态,沿环境默认;已有行只检查格式/有效策略,不为了开后台入口创建、删除或调整策略。 + +服务观察记录当次airz-analysis/php-fpm-74/Redis状态、进程及近期错误;确认处理中的评估/日志、queued/running预留和Redis三队列状态。只读查看LLEN/ZCARD/PING,不pop、恢复扫描、删队列或调用模型。尚有工作时不停止或升级worker,另行安排窗口。 + +## 6. 内容数据维护与账号分配 + +这两项是独立生产写入,不因代码包已准备而自动执行。 + +| 数据操作 | 明确边界 | +| --- | --- | +| 首次FAQ种子 | 本轮实测type6为0,8 slug全部不存在;批准后只补profile/password/phone/assessment/result/amount/files/draft八条已冻结FAQ,插入后记录新ID。重复导入保留后续已有记录 | +| FAQ `password`/`phone` | 两条现不存在,取消原“修改答案”计划;首次种子已经包含未开放短信登录/重设与手机号换绑的准确文案,不执行不存在ID的更新 | +| 课程 `credit-basics` | 实测ID1,只将intro改为“从自己的实际情况出发,建立一份清晰的申请前检查清单。”;baseVersion为009a6ac642d2be36f89a867dc42c0f4df9c86954f498fff0fb510f51f9cb6946。保留3个稳定段落ID/顺序/正文、推荐1、已发布及进度;旧版409须刷新 | +| 正式权限模板 | 批准后只补实际16节点/运营v1/客服v2/技术v5三模板,父组1,共19项;窗口计划有变立即停,不照搬隔离ID。不改历史模板/绑定,复检0项 | +| 后台资源版本 | 独立批准维护fa_config id4/version value从1.0.2及site.php version从1.0.1同步为20261007-admin-content-r2;核对before哈希,只改version字段,不调用refreshFile整体重建site.php | +| 实际管理员绑定 | 由超管明确每个运营/客服/技术账号及组,检查权限并集。先记录旧绑定和恢复办法,再单独确认分配;不创建默认弱口令账号、不换绑admin | + +课程真实ID/版本/before已在r2计划,窗口仍须核对并保存私密原记录,按版本化入口只改intro。FAQ当前不存在,首次导入需独立批准;4资讯/3课程都存在,不执行import_content。计划不是可直接执行的SQL,不整条覆盖;课程仍整篇一次已读。 + +## 7. 获得具体发布授权后的顺序 + +1. 确认本批13文件、19权限增量、8 FAQ首次导入、ID1课程intro、资源版本同步及维护窗口的具体授权;实际账号绑定、密码/策略修改不在本批。窗口复核真实before/精确计划,变化即停止审阅。 +2. 在批准维护窗口阻断相关API/后台写入,核对无活动评估、助手、产品解释和队列,停空闲worker。备份13旧文件、权限三表与绑定、内容候选行、保留策略行和全库灾难恢复资料;备份位置不公开。 +3. 60配套/10保护精确匹配且AssessmentRecords仍为已审阅线上哈希后,按13清单同目录暂存、PHP7.4 lint、核对摘要与所有者后替换;不覆盖AssessmentRecords。任何before哈希变化停止;中途失败留维护状态,完整恢复已替换文件。 +4. 按明确授权备份并apply正式权限增量,复检`changeCount=0`,保存新增ID/完整规则回执;源码/配套保护不完整时不得先授技术v5。 +5. 按资源计划只同步DB id4/value与线上site.php/version为20261007-admin-content-r2,其余字段保持,不调用refreshFile、不用本机site.php覆盖。精确刷新FastAdmin __menu__及受影响模板缓存、PHP-FPM/OPcache;RequireJS取得新site.version,不清全Redis。 +6. 仅执行批准的8 FAQ缺slug首次导入和ID1课程intro维护,按版本检查保留字段及审计,记录新FAQ ID。未批准的数据步骤跳过并明确尚待,不绑定账号、不重复导入其他内容。 +7. 先做下节零模型调用烟测;恢复原worker/入口后观察队列、日志及心跳。worker重启只加载新源码,不手工消费测试任务或触发重试。 +8. 后端通过后由用户重新编译、核对并发行完整当前小程序项目;记录实际源码/包哈希和版本。不能仅根据28参考文件选择发行,也不能把开发编译记为真机验收。H5单独安排。 + +## 8. 发布烟测与恢复 + +| 零收费烟测 | 预期证据 | +| --- | --- | +| 根域名/登录/验证码/旧入口/API | 无PHP菜单,旧GET/POST308保留方法,公开API200、私有匿名401、敏感路径404;密码保持用户现值 | +| 资讯/FAQ/课程/搜索 | type隔离和跨入口拒绝、旧协议保持、单篇正文阅读、搜索阅读摘要;只读阶段不保存真实内容 | +| 角色/DTO | 正式账号菜单/默认页、直接越权拒绝、掩码/附件/金额边界、排障正文隐藏;本人日志范围有效 | +| 评估历史 | 默认已发布版/显式历史版、非法版本参数404、no-store;只读不预留模型调用 | +| 服务/用量/策略 | 显示当前策略/尝试上限和真实状态;未探测/未知不假报健康;GET不写策略或预留 | +| 文件/数据完整性 | 13线上after哈希等于包,61配套/10保护保持;未授权内容/绑定/.env/策略/业务原记录摘要保持 | + +实际内容保存、客服回复、技术策略保存、打开后撤权、成功重试等写场景已有0.82—0.85隔离证据。生产成功重试会被真实worker消费并可能收费,不能作为本批“零调用”烟测;需要生产写样例时另行明确合成账号/对象/队列、影响与清理,不能直接用真实会员做验证。 + +恢复时先阻断写入、等待空闲并停止worker;保存故障后的记录和安全回执。优先撤销新角色绑定/停用模板,逐文件按当次before备份恢复13文件并刷新缓存。入口、用户已修改密码、真实报告/评估/调用预留/通知/课程进度和上传保持。权限新增ID仅在无绑定/子组/其他角色引用、记录仍匹配新增回执时才可定向处理;不整表恢复三权限表或业务表。 + +策略原本未改就不回退;确有单独批准的策略变更时,走受控入口以新版本恢复已确认旧值并保留审计,不能删除保留行重新启用环境默认。内容只恢复批准字段,核对当前版本及后续编辑,课程正文/ID/已读时间不覆盖。数据库整库备份仅用于另行授权的灾难恢复,不用于撤销本次小范围发布。 + +原0.86的20包条目/语法/种子及四类拒绝证据保持,runtime/maintenance包逐字节未变,不重复业务全量检查。r2包、84后端/28前端源码验证通过;新增5类变体门禁验证通过,合成文件逐项清理。生产只读实测范围见第5节;无发布、业务写入、模型/worker调用、账号或策略修改、提交/推送/PR,正式运营/真机验收状态保持。宝塔登录/终端会话仅产生正常认证/访问审计。 + +验证与核对回执:[review-summary.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/review-summary.json)、[validation.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/validation.json)、[content-maintenance-plan.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/content-maintenance-plan.json)、[permission-maintenance-plan.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/permission-maintenance-plan.json)、[resource-version-plan.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/resource-version-plan.json)。后端维护记录见[部署记录](D:/AAdesk/202609/airz/deployment-baota.md)、[权限](D:/AAdesk/202609/airz/database/admin-permissions.md)、[评估排障](D:/AAdesk/202609/airz/database/admin-assessment.md)、[服务策略](D:/AAdesk/202609/airz/database/admin-services.md)、[内容](D:/AAdesk/202609/airz/database/content-publication.md)。 diff --git a/docs/开发文档.md b/docs/开发文档.md index 5fa8913..1dfadba 100644 --- a/docs/开发文档.md +++ b/docs/开发文档.md @@ -1,6 +1,128 @@ # AI 融资平台开发文档 -> 版本:v1.46 · 基线日期:2026-09-22 · 更新日期:2026-10-05 · 状态:用户确认此前小程序端已发布,版本号/渠道未提供;后端已于10月4日发布,最新记录见交接及后端deployment-baota.md。反馈回复通知、会员反馈原键恢复及后台反馈处理增强为新增源码,尚未配套发布;新前端依赖后端requestId回执,反馈目标需配套更新前端。0.57—0.59的配套文件、顺序、兼容性和回滚准备见[反馈与消息发布清单](./反馈消息发布清单.md),当前未部署/发行。积分默认关闭、DEC-POINT待确认、原表未迁移;H5未部署、真机及多设备待验收。最新资料/评估版本及会话精简约定保留。 +> 版本:v1.65 · 基线日期:2026-09-22 · 更新日期:2026-10-08 · 状态:后台内容写入CSRF防护见开发进度1.97/1.07;内容发布/整篇课程已读组合回归见开发进度1.96/1.06;反馈处理/站内消息组合回归见开发进度1.95/1.05;核心权限矩阵与后台组合回归见开发进度1.94/1.04;会话撤销/跨模块权限组合回归见开发进度1.93/1.03;核心主流程组合回归/独立Linux路线取消见开发进度1.92/1.02;反馈/消息、无PHP管理端入口及后台/内容r2已配套生产发布,真实Linux隔离条件/执行方案准备见开发进度1.91/1.01,合成告警链统一预检/证据汇总见开发进度1.90/1.00,dead对账/人工恢复审计见开发进度1.89/0.99,outbox调度/租约退避/模拟接收幂等见开发进度1.88/0.98,告警原子存储/崩溃恢复见开发进度1.87/0.97,告警状态处理见开发进度1.86/0.96,Linux/systemd守护与告警离线准备见开发进度1.85/0.95,部署恢复手册/只读证据核验见开发进度1.84/0.94,导入中断/耗时开发证据见开发进度1.83/0.93,队列生命周期开发证据见开发进度1.82/0.92,密钥恢复开发证据见开发进度1.81/0.91,r2隔离恢复见1.80/0.90,生产发布记录见1.79/0.89、交接和后端deployment-baota.md。8条FAQ已首次导入,正式权限模板已新增但未绑定账号,课程整篇阅读/一次已读保持;本批零模型烟测通过。小程序用户自行发行,已发布版本/源码哈希未提供,暂不正式验收;H5未部署、真机/多设备及正式运营验收待办。积分默认关闭、DEC-POINT待确认、原表未迁移,供应商/真实资料依各自条件推进。下方日期段落保留历史契约和开发快照。 + +### 0.78 2026-10-08 内容写入CSRF与手动恢复契约 + +内容新增/编辑/批量状态/删除使用独立随机Session Token,仅读取实际POST请求体。失败返回CSRF_INVALID与同值刷新头/正文;成功或业务失败后旋转,Form及本内容列表更新Token,用户手动再次操作,无自动重放。登录/个人资料/反馈默认Token不能授权内容写入;并行内容页可能使旧页Token过期。所有角色继续受权限/撤权、类型/版本范围和超管批量字段约束。 + +新增CSRF627项/128次HTTP,内容组合522/147、课程服务56、内容HTTP362/90和后台权限227/158回归通过,本批五入口1794项/523次本机HTTP,模型0。实际Chromium宽1440×1000/窄390×844验证63项、18次内容POST,错误/警告/外部请求0;保存按钮与Token刷新/手动恢复、Table.api.multi及真实删除控件通过,手机保存按钮滚动后可见,不声称存在批量状态按钮或手机首屏保存。失败/重复运行及浏览器与PHP检查分开,不跨轮累计。 + +仅全新本机合成MySQL/Redis与安全配置;26表核空、结构和8原触发器保持,DB15零键,本轮精确库删除、所属HTTP/服务退出/端口释放。911份退出屏蔽回执确认真实模型类未加载。旧安全材料、35固定输入/缓存、13旧合成库及既有两仓库改动保持;源码/语法/链接/ACL回执私密留存,配置/session/原始日志/manifest不能整包分享。 [实现及验证](D:/AAdesk/202609/airz/database/content-csrf-regression.md)和[安全证据](D:/AAdesk/202609/airz-backups/content-csrf-regression/airz-content-csrf-1791450130328/verification.json)。 + +8个运行文件尚未部署;没有生产访问、真实worker/模型、外部消息、安装或提交/推送/PR。未重跑小程序/H5编译、搜索旧响应竞态、真实回执丢失/多设备恢复或真机/正式运营签收。RELEASE-001开发中/整体未验收,独立Linux测试机路线已取消、Linux/systemd未验证、RELEASE-003阻塞;63任务/27页面保持。 进度1.97/1.07、文档v1.65/0.78。 + +下一项:RELEASE-001候选版本与验收用例收口:固定本地候选源码清单/摘要,关联已验证范围和剩余外部阻塞,形成可复核交付基线;不部署、不预填正式签收,不继续扩张同类回归工具。 真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。 + +### 0.77 2026-10-08 内容批量边界与整篇已读契约 + +资讯、课程与FAQ批量入口包括超管在内只接受合法status;标题/正文/类型走专用结构化编辑及基于当前存储的版本检查,跨类型不读写。前端仍整篇一次已读,后台保留稳定段落ID;重排与等价换行不损失已读,正文变化/新增须补读。逐段存储中途失败允许已成功记录保留,重试只补缺失部分;下架不能公开或写进度,原文重新发布恢复历史记录。旧课程版本返回409不代表本批已验证前端竞态。 + +新增内容发布/下架与整篇课程已读组合518项、143次本机HTTP通过;原课程服务56、内容HTTP362、后台权限227项回归通过,本批四个入口共1163项、391次本机HTTP,模型调用0。红测试复现超管批量修改任意字段绕过内容编辑;ContentEditor::multi现统一只接受合法status,非法/混合字段拒绝,保留父类权限、类型范围及事务。仅这一trait修复,原业务改动和旧测试保持。见[组合说明](D:/AAdesk/202609/airz/database/content-flow-regression.md)及[安全证据](D:/AAdesk/202609/airz-backups/content-flow-regression/airz-content-flow-1791448910652/verification.json)。仅全新合成环境,真实模型屏蔽,数据/HTTP/服务清理完成;原测试与业务已有改动保持,本次trait修复未发布。 + +本批是后端组合,未重跑前端编译/浏览器旧响应竞态或真机/多设备;内容写入尚无专用CSRF门禁,未携带__token__也可写,不能声称安全或正式验收完成。进度1.96/1.06、文档v1.64/0.77。RELEASE-001开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:后台内容写入CSRF门禁与配套表单/批量请求改造,覆盖资讯、课程、FAQ和旧协议;先缺失/错误/跨会话Token红测试,再补服务端校验和有效请求/Token刷新/撤权验证,全新本机合成环境、不改通用Backend。真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认与供应商约定保持。 + +### 0.76 2026-10-08 反馈回复、通知与会话恢复契约 + +会员原键按本人作用域恢复原记录最新处理,原键改文冲突;只有客服/超管具处理权限,当前权限和版本必须重新核对。处理中不通知,首次有效回复一条通用通知,回复修订不重发/重置已读;通知详情校验本人目标,再通过反馈详情读取最新回复。反馈、成功审计和通知同事务,任一写入失败完整回滚。退出/改密后的旧Token统一拒绝,原会员重新登录原键确认不得新建记录或通知。 + +新增反馈处理/站内消息组合344项、97次本机HTTP通过;原反馈67、处理32、通知43、恢复24、账户281和后台权限227项回归通过,本批7个入口共1018项、324次本机HTTP,模型调用0。见[组合说明](D:/AAdesk/202609/airz/database/feedback-message-regression.md)及[安全证据](D:/AAdesk/202609/airz-backups/feedback-flow-regression/airz-feedback-flow-1791447922008/verification.json)。旧固定端口测试只在私密副本绑定本批端口,原测试/业务源码保持;新增组合首次通过。仅合成环境,真实模型屏蔽、所属数据/HTTP/服务清理完成;不把后端补确认算作本轮前端持久恢复/真机或真人客服验收。 + +进度1.95/1.05、文档v1.63/0.76。RELEASE-001仍开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:内容发布/下架→列表/搜索/详情→整篇课程一次已读的跨角色/跨账户组合回归,先用全新本机合成环境;不重复扩张告警模拟工具。真人客服/私有附件、真实渠道/产品、正式运营/真机及生产恢复/密钥托管/规模RTO/RPO仍待各自条件;小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持。 + +### 0.75 2026-10-08 核心与后台权限验收边界 + +[核心与权限验收矩阵](核心与权限验收矩阵.md)统一记录已测本地子集、15模块缺口和正式签收条件。诊断仅白名单摘要;运营不读排障,客服/旧技术只读无重试权;技术v5和超管仍受CSRF、版本/任务条件、失败状态、模型环境开关、用户额度及原子审计限制。重试幂等回执不随后续执行或版本切换而重新预留;撤绑定即时拒绝重放,审计插入失败完整回滚。 + +新增后台五角色诊断/人工重试组合167项(41次本机HTTP、4次假调用),原后台权限227项(158请求)、针对性权限/隐私/诊断/重试/审计/服务用量575项和主流程280项回归通过;本批14个入口共1249项、199次本机HTTP、20次显式假调用,失败和重复运行不累计。详见[后台组合](D:/AAdesk/202609/airz/database/admin-flow-regression.md)和[安全证据](D:/AAdesk/202609/airz-backups/admin-flow-regression/airz-admin-flow-1791445932955/verification.json)。仅合成环境/配置和假客户端,真实模型屏蔽;所属数据/服务清理完成,没有业务源码修复、部署或正式账号绑定。本地权限检查不替代ADMIN-004运营签收,跨轮入口不累计。 + +进度1.94/1.04、文档v1.62/0.75。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项:已有反馈处理与站内消息的跨角色/跨账户组合回归:会员原键提交→客服处理/回复→唯一通知/已读→退出或改密→重新登录/原键恢复;随后补内容发布/下架与整篇课程已读/搜索组合。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真实渠道/真机、正式运营账号与签收、生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。 + +### 0.74 2026-10-08 会话撤销与历史助手上下文契约 + +退出仅撤销当前会话;改密撤销该会员全部会话,另一个账户不受影响。旧Token必须在报告、匹配、消息和助手入口统一401,拒绝不改变业务数据或产生调用预留。已接受的异步问题不因退出删除;新登录沿用逻辑requestId,只有显式递增retryAttempt才预留新尝试。重评发布不改变已有助手冻结事实,旧通知继续指向原版本,已读水位不吞操作期间的新通知。 + +新增会话撤销/跨账户权限/消息与助手组合检查375项、100次本机HTTP、8次显式假调用通过;原会话并发281、助手165、资料268、主流程280项回归通过,本轮五个入口共1369项,失败和重复运行不累计。跨账户资源与消息水位/游标均拒绝,模型提示中的主动手机号/证件输入脱敏;没有新的业务源码修复。说明见[组合回归](D:/AAdesk/202609/airz/database/session-assistant-regression.md)、[安全证据](D:/AAdesk/202609/airz-backups/security-flow-regression/airz-security-flow-1791445051475/verification.json)。仅本轮全新本机合成MySQL/Redis、实际HTTP/服务层和进程内假模型,真实模型客户端构造被拦截;26表回到空库/结构保持、Redis DB15键0后删除精确合成库,两个所属服务PID退出/端口释放。 + +进度1.93/1.03、文档v1.61/0.74。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项汇总RELEASE-001核心与权限验收矩阵,继续后台跨角色权限及评估排障/人工重试组合检查,明确剩余开发用例与正式签收条件。小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真机/真实渠道、生产恢复/密钥托管/规模RTO/RPO及运营签收仍待各自条件。 + +### 0.73 2026-10-08 发布版本与解释权限组合契约 + +用户已取消独立Linux测试机路线,原执行方案存档,不再等待目标绑定;Linux/systemd未验证,RELEASE-003仍阻塞/正式未验收。RELEASE-001进入开发中;本轮仅覆盖已实现个人/企业评估主流程子集。修复新报告发布后历史匹配列表和导出仍允许解释重试的问题,列表/详情/导出统一依据published_input_id计算权限;重评处理中或失败时,仍在发布的旧版保留重试权限,不能用isPreviousResult直接禁用。 + +提交与原键重放、修改/失败/重试、独立评估与最新资料、冻结产品策略、发布指针、跨账户拒绝及三次解释预算统一检查。新组合280项/16显式假调用、相关回归合计1666项通过,见[说明](D:/AAdesk/202609/airz/database/core-flow-regression.md)和[安全证据](D:/AAdesk/202609/airz-backups/core-flow-regression/airz-core-flow-1791443749845/verification.json)。仅全新本机合成MySQL/Redis与显式假模型,真实模型客户端构造被拦截;PDF使用仓库已有锁定引擎/字体,未安装依赖。26表回到空库且结构保持、Redis DB15键0后删除本轮精确合成库,两个所属服务PID退出/端口释放。 + +进度1.92/1.02、文档v1.60/0.73,整体未正式验收。下一项继续RELEASE-001的会话撤销/跨账户权限、消息与助手组合回归,覆盖旧Token失效、资源归属、消息幂等与历史报告上下文;不重复同类告警模拟。63任务/27页面保持;小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。H5/真机、真实渠道、Nginx/FPM/TLS恢复、密钥托管/规模RTO/RPO和运营正式签收仍待各自条件。 + +### 0.72 2026-10-08 真实Linux目标绑定与执行范围 + +开发进度1.91/1.01新增[Linux执行条件与方案](D:/AAdesk/202609/airz/database/worker-supervision/linux-execution-plan.md),prepared-unbound。用户已明确测试机尚未准备,本机无WSL发行版/systemd运行环境。固化目标/账号/独立存储/完整包/有效unit/可信采样/出口/证据和恢复门槛;现主控依赖Windows,采集器和目标运行包仍需适配,根composer.lock缺失,原8份源码非完整运行包。 + +原生解析/空闲stop/SIGTERM/SIGKILL/启动限速及受控reset-failed均列触发、等待上限、owned范围和恢复回执;无SIGTERM排空保证,.stop自然退出和遗留event单列。存储中断、enable/开机、长调用夹具、断电与外部消息分别绑定授权。采样严格沿用安全DTO和实际时间,维护不隐藏真实故障,模拟delivered/ready不升级正式签收。 + +原49/42回归共91项、无observation离线预检、五组历史回执核验通过;60旧安全材料/35固定输入与参考源码(含旧缓存)/13旧库保持,新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-linux-preparation/airz-linux-preparation-1791442489789/verification.json)及最终核验ACL当前用户/SYSTEM。本项仅准备,四正式字段false;63任务27页面/RELEASE-003阻塞保持,无实际采样/服务/worker/模型/外部消息或安装提交。下一步获得测试机后适配并冻结具体目标操作单。 + +### 0.71 2026-10-08 合成告警链一致快照契约 + +开发进度1.90/1.00新增[统一预检契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-chain.md)。完整序列重放state/唯一样本摘要/outbox后,按dispatch→receiver→source三库锁核对调度前缀与每来源顺序、接收源前缀、普通/人工确认持久回执和审计。不改变状态、不推进clock或调用同步/发送/恢复;坏source/锁忙保留原归属。ledgerConsistent/outboxDrained/syntheticReady分别定义,固定诊断及下一动作不暴露claimToken/owner,逻辑摘要/七工具hash不认证来源;干净库字节保持,SQLite热日志可能恢复,不是不可变取证。 + +52项新测试/3 owned进程及原43/63/51/56/49/42回归共356项通过,34测试进程全部退出。六阶段新公开24样本7事件经超时耗尽/永久失败dead和两路径人工恢复后7模拟确认/7唯一效果/2审计;样本91秒过旧时仍排空但syntheticReady=false。证据见[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-chain/airz-alert-store-1791440789040/verification.json),39旧材料/16固定输入/七旧库保持,旧工具无新漂移;五组历史核验通过。无实际采样/生产/网络/DB/Redis/服务/worker/模型/通知或安装提交,63任务27页面/正式未验收保持。下一入口真实Linux隔离条件核对与冻结执行方案,实际主机/账号/目录/服务信号/渠道范围须明确,不继续扩张同类模拟工具。 + +### 0.70 2026-10-08 dead对账与审计恢复契约 + +开发进度1.89/0.99新增[恢复契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-recovery.md)。默认dispatch/receiver v1保持,新合成dispatch显式enable升级v2追加审计;共享调度加载/校验/摘要和预算兼容旧版。仅dead,匹配回执只补模拟确认,无回执只grant一次领取,attempts保持、上限=current+1、每事件最多3次人工grant;永久失败不恢复剩余自动预算,dead仍阻塞来源。未知/坏receiver拒绝,旧finishedToken不能当正常确认。 + +方案完整快照/planId和执行重核拒绝过期状态/回执,dispatch→receiver→source锁持到恢复提交,状态/预算来源/时钟/审计/seal同事务。requestId同参数幂等/变参冲突,后续调度推进仍可重试旧请求;actor别名/固定reason/显式--apply,安全before/after/hash链不认证来源或权限。43项新测试/9 owned进程、原63/51/56/49/42回归通过,共304项/31进程退出;4次恢复/enable提交前后终止及锁竞争、审计语义损坏/IO回滚覆盖。公开7事件先2 dead经两路径恢复后7模拟确认/7效果/2审计,恢复不改source/receiver。证据见[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-recovery/airz-alert-store-1791439388039/verification.json);33旧材料/13未改输入/四旧库保持,dispatch必要漂移关联新63回归,旧执行摘要不刷新。正式未验收/63任务27页面保持,无生产/外部投递或Linux/断电验收;下一项合成链统一预检与证据汇总,真实条件仍待办。 + +### 0.69 2026-10-08 outbox调度与模拟接收契约 + +开发进度1.88/0.98新增[有界调度/模拟接收契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-dispatch.md)。原state/outbox v1保持,独立dispatch/receiver标准库SQLite账本按eventId幂等登记;锁内最新来源核对、同步与领取同事务,模拟接收独立提交后确认,发送不持调度锁。每来源只领最早未确认事件,dead保留并阻塞后续;合成30秒租约/5次上限/5起指数退避60封顶,每轮1–20条/实际最多2来源,显式now单调,过期/接管后迟到结果拒绝。接收规范载荷完整一致且eventId唯一,回执须匹配并持久存在;CLI仅四种进程内场景,delivered只是模拟状态,无渠道或外部恰好一次承诺。 + +63项新测试/12 owned进程通过,6个在claim/receive/confirm提交前后终止,熱日志/独立接收提交/缺确认重投及双进程领取/接收验证;原51/56/49/42回归与28旧安全材料/12输入/旧合成库保持。公开7事件先2条接收成功但超时、退避后重投duplicate,最终7模拟delivered/7唯一效果,源字节及来源顺序保持。证据见[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-dispatch/airz-alert-store-1791436020494/verification.json)。零生产/项目DB/Redis/网络/实际采样/服务/worker/模型/外部消息,无提交/安装;正式未验收/63任务27页面保持。下一项dead回执对账/带审计人工恢复门禁,只合成账本;真实环境/渠道/生产恢复签收待条件。 + +### 0.68 2026-10-08 告警原子存储与模拟确认契约 + +开发进度1.87/0.97新增[本地SQLite事务契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-store.md)与存储CLI。DELETE日志/FULL同步/BEGIN IMMEDIATE先互斥再读最新state;state/样本摘要/outbox同事务,eventId主键唯一,整批/交叠重试只跳过历史同摘要样本,冲突/未记旧样本拒绝。严格检查schema/版本/quick_check/state/事件与检查点摘要;缺库或损坏不自动重建,根/库/sidecar门禁和可信目录边界明确。simulate_ack只模拟标记且幂等/保留事件,无发送或收件回执,不保证外部恰好一次。 + +51项测试/10个owned进程通过,4个在apply/ack commit前后终止,强制脏页写回与有效热日志回滚、回执缺失重试/确认恢复和锁超时/冲突/最新状态加载覆盖。24样本落库7事件/4重置,整批重试24跳过/0新增;模拟确认1条后7事件/6pending。原56/49/42回归和23份历史安全材料摘要保持,私密证据见[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-store/airz-alert-store-1791434240512/verification.json)。无项目DB/Redis/实际采样/生产/网络/服务/worker/模型或外部通知,源码业务与旧catalog/spec/unit不改,正式未验收/63任务27页面保持。下一项outbox调度/租约/退避/迟到确认及模拟接收端幂等;实际Linux、采样/渠道及生产恢复签收待条件。 + +### 0.67 2026-10-08 告警连续门槛与状态契约 + +开发进度1.86/0.96新增[告警状态](D:/AAdesk/202609/airz/database/worker-supervision/alert-state.md)及纯advance/replay。原安全DTO先校验,默认同码3次打开/持续去重,码变3次changed保留incidentId、双来源明确健康非维护2次恢复;15秒最短间隔/90秒空档,重复最新同时间同内容无事件/计数,乱序/冲突/过快拒绝。空档/维护进出重置待确认而保留活动事件,预期维护停止不恢复,真实故障继续检测;规则为合成默认非生产时效。state/policy/作用域/计数/时间/ID严格验证、不改输入、不自动重置坏state,1–1000样本完整成功后输出,eventId确定性。 + +56项测试与24合成样本7事件/4维护重置通过,分段/边界重放等于整段;原49/42项回归及19历史安全材料保持。CLI只读绝对固定文件名alert-sequence.json/可选alert-state.json,stdout安全JSON/固定错误,无采集/连接/子进程/服务/worker/模型或状态落盘/外部投递,三个验收标记false;SHA/结构不认证来源,缺原子state+outbox/互斥/投递回执,不保证发送不丢/不重复。新[证据](D:/AAdesk/202609/airz-backups/worker-alert-state/airz-alert-state-1791432337110/verification.json),业务/旧spec/unit/catalog不改,RELEASE-003阻塞/正式未验收、63任务/27页面保持。下一项合成原子保存和崩溃/重复输入恢复,实际Linux/安全采样/渠道及生产恢复条件仍待办,不自动操作生产或发消息。 + +### 0.66 2026-10-08 Linux/systemd守护与告警离线契约 + +开发进度1.85/0.95新增[隔离准备](D:/AAdesk/202609/airz/database/worker-supervision/README.md)与[只读预检](D:/AAdesk/202609/airz/tests/worker_supervision_preflight.py)。合成unit限定独立用户/srv目录、原queue_lifecycle_probe persistent/real、模型禁用及网络函数封住、control-group/SIGTERM/最终强杀/限速/受限写目录;公开spec无秘密,核8依赖hash,不验证私密config或真实环境。解析器是限定单文件格式,拒绝重复/续行/未知覆盖/EnvironmentFile,不替代原生systemd合并解析。只stdout安全JSON,无框架/演练导入/子进程/连接/服务操作;49项文件测试通过。 + +安全离线快照只接收作用域/时间/maintenance、supervisor四字段与原心跳DTO;严格类型/年龄/阈值/状态,异常事件固定码/preview-only,维护只抑制预期stopped/missing。PHP纯回调10类原DTO兼容通过,累计NRestarts不当近期风暴,active不代表进度正常,OnFailure不足以覆盖degraded;Stop240秒不保证应用级排空。无采集/门槛/去重/恢复状态或投递。formalAcceptance/liveSystemdVerified/externalDeliveryVerified固定false;本机无systemd原生命令,信号/重启/开机未执行。新[证据](D:/AAdesk/202609/airz-backups/worker-supervision-preflight/airz-supervision-preflight-1791431462713/verification.json),原42项校验及14回执保持;任务阻塞/正式未验收、63任务/27页面、业务约定保持。下一项合成快照的连续失败门槛、去重/恢复与维护边界,不采生产或发消息;真实Linux/渠道、密钥托管/规模RTO/RPO和正式签收待条件。 + +### 0.65 2026-10-08 部署恢复手册与证据校验契约 + +开发进度1.84/0.94新增[恢复手册](D:/AAdesk/202609/airz/database/deployment-recovery-runbook.md)和[只读校验入口](D:/AAdesk/202609/airz/tests/release_evidence.py)。[catalog](D:/AAdesk/202609/airz/database/release-evidence.json)固定五组14份回执SHA256/逐组检查数与21不同源码映射;先核摘要再解析严格JSON,核cleanup、零生产/模型边界、队列审计、导入事实/耗时和回归关联。只允许回执JSON及限定代码路径,拒绝越界/.env/key/gzip/私密config/log/符号链接/Windows reparse,单文件2MiB。无演练导入/子进程/DB/Redis/网络,默认stdout安全JSON,失败固定码/exit1,不写文件;成功仍formalAcceptance=false且服务观测仅历史回执。 + +原key-recovery的共享Python旧hash明确由导入中断及独立key-regression同文件当前hash覆盖,旧字节不改;任一新回归失败、旧hash不符或源码再漂移均拒绝。历史validation的文档hash记录当时,不强制等于后续文档;SHA256是可信审阅快照而非签名。42项合成文件测试及实际五组核验通过,原157/53/76/92/53不合并累计;链接/junction拒绝为元数据测试。新安全证据见[verification.json](D:/AAdesk/202609/airz-backups/release-evidence-reviews/airz-evidence-review-1791430386861/verification.json)。本轮不启停服务、不读实际秘密或生产,无提交/推送/PR或发布,旧缓存和既有改动保持。RELEASE-003阻塞/正式未验收、63任务/27页面保持;下一项Linux/systemd守护与告警隔离验证准备,真实环境/投递/密钥托管/规模RTO/RPO及正式签收待条件,不自动操作生产或发通知。 + +### 0.64 2026-10-08 合成全库恢复导入中断与耗时证据 + +开发进度1.83/0.93新增全库导入中断演练,92项通过;真实mysql客户端分别在前11表、显式事务32行及全26表完成但本地回执未写时终止,状态/回滚核对、非空重导拒绝、重启持久化及另建空库恢复通过,来源/部分现场保持。共享key_recovery入口提取既有预检并增加分阶段耗时,在另一新环境完整53项回归通过;业务Secret/schema不改。独立MySQL3320/Redis6400六库、单独合成密钥、607合成行、SQL371203字节;完整恢复1.235秒仅本机小样本,不代表生产RTO/RPO。说明/故障注入/耗时与安全回执见[导入中断演练](D:/AAdesk/202609/airz/database/restore-interruption-rehearsal.md)。四端口与owned进程均停止,零生产/框架worker/模型调用,无提交/发布;下一项部署恢复手册整合/证据校验,生产Linux守护告警、规模耗时/密钥托管及正式签收仍待办,63任务/27页面保持。 + +### 0.63 2026-10-08 队列进程生命周期隔离证据 + +开发进度1.82/0.92新增新合成库/独立MySQL3319/Redis6399进程演练,76项通过、134子进程审计。真实command/job/任务/队列/心跳代码覆盖强制退出、reserved实际到期迁移、有效/过期业务租约、明确同键重试、并发迟到结果、心跳接管及MySQL/Redis实际中断重启;22非目标表及结构保持,全部owned进程/服务停止。配置始终禁用模型、URL127.0.0.1:1,成功路径仅显式进程内策略/客户端替身,真实客户端未加载且网络函数禁用;租约/补投/stale时间注入与测试Input有界退出边界见[队列演练说明](D:/AAdesk/202609/airz/database/queue-lifecycle-rehearsal.md)。零生产/活动库worker/模型网络调用,无业务源码/DDL变更、提交或发布。下一项合成全库导入中断与恢复耗时;Linux守护/信号/外部告警、实际密钥托管及正式验收待办,63任务/27页面保持。 + +### 0.62 2026-10-08 合成加密资料与单独密钥恢复证据 + +开发进度1.81/0.91新增显式隔离全库/密钥恢复工具,53项通过。26表/8触发器与全部行/列/索引/外键实际恢复一致,原密钥路径封存后仅用单独备份恢复文件核对三凭据(5非空GCM密文/1NULL);缺失/错误密钥、包/密文损坏、客户端配置漂移和非空目标明确拒绝且目标保持。Secret/Env纯库及现行身份证明文约定不变,说明/安全回执见[密钥演练](D:/AAdesk/202609/airz/database/key-recovery-rehearsal.md)。零生产/worker/模型执行,自己的服务停止;下一项队列进程生命周期,RELEASE-003整体及生产灾难恢复/正式验收待办,63任务/27页面保持。 + +### 0.61 2026-10-08 r2 隔离实际部署与定向恢复证据 + +开发进度1.80/0.90新增可复跑的显式隔离部署/恢复工具,157项通过,验证冻结13文件及权限/FAQ/课程简介/资源版本增量、文件/事务提交前后/恢复中断、重试幂等和后续编辑引用守卫,实际定向恢复保留后续合成业务数据。说明、入口和安全回执见[隔离演练](D:/AAdesk/202609/airz/database/release-rehearsal.md)。不加载默认/生产.env或生产私密dump,零生产/worker/模型执行;本轮服务停止。RELEASE-003仍有守护/告警、加密密钥及整库灾难恢复等开发证据和正式验收待补;63任务/27页面、课程整篇阅读、小程序用户发行及积分/供应商约定保持。既有生产r2不重复发布,下方为历史记录。 + +### 0.60 2026-10-08 生产发布状态补记 + +反馈/消息增强已于10月5日配套发布,根域名无PHP管理端于10月7日发布。10月8日按用户明确授权完成后台/内容r2:13运行文件、16权限节点/3正式模板、8FAQ首次导入、课程ID1 intro及资源版本同步。22服务器HTTPS/20公网可信TLS烟测与文件/数据核对通过,未自动分配管理员、改密码/策略或调用模型。课程仍整篇连续阅读、一次已读,正文/稳定ID/云端进度保持。详见[开发进度0.89](开发进度.md)及[发布清单](后台内容增量发布清单.md)。小程序用户自行发行、暂不正式验收;63任务/27页面及任务验收状态保持。下方历史阶段的未发布/未导入不再代表当前生产状态。 ### 0.59 2026-10-04 反馈回复与站内消息契约 @@ -812,7 +934,7 @@ REPORT-004页面子项完成本地联调:report/report改为评估概况、匹 **目标:** 后台发布的内容、图文课程和FAQ可被前端检索阅读,进度跨设备一致。 **阶段:** M3。**剩余:** 4–6人日。 -- **现状:** 资讯/课程/搜索/首页真实接口、云端进度及发布后台已正式上线;FAQ服务端源码已完成但尚未导入/部署,真机/多设备待验收,见0.39。 +- **现状:** 资讯/课程/搜索/首页、云端进度与发布后台已上线;8FAQ于2026-10-08首次导入,类型隔离/换行兼容配套已发布。课程整篇阅读、一次已读,真机/多设备及正式运营待验收,见开发进度0.89。 - **前端:** 新闻、文章、课堂、课程页接真实分页/详情;处理404/下架和搜索竞态。2026-10-07起课程整篇连续阅读,去掉章节目录/折叠/逐节完成/进度条,底部仅一次标记课程已读;状态读取不阻止正文,历史记录与旧接口兼容,详见开发进度0.77。 - **后端:** 发布/下架、富文本清洗、分类与首页推荐、搜索和FAQ;稳定章节ID与进度幂等。 - **数据:** 复用fa_acticle/fa_finance;章节数据结构化;用户章节完成关系独立存储;不引入视频和付费课程。 @@ -866,7 +988,7 @@ REPORT-004页面子项完成本地联调:report/report改为评估概况、匹 **目标:** 帮助页既能提交可追踪反馈,也能真实到达人工服务。 **阶段:** M3。**剩余:** 2–4人日。 -- **现状:** FAQ服务端读取,文字反馈提交/本人记录/后台处理源码完成但尚未部署;客服仅未开放提示。 +- **现状:** FAQ服务端及8条种子已上线;文字反馈提交/本人记录/后台处理及回复通知后端已配套发布,小程序发行由用户负责,正式验收待办;人工客服仍仅未开放提示。 - **前端:** 反馈文字表单、请求键重试、记录/回复;附件入口保留为空数组,客服在线/排队/离线状态及失败回退待供应商。 - **后端:** 反馈归属与后台处理已实现;服务端访客签名、客服会话关联待供应商,外部系统消息遵循渠道身份规则。 - **数据:** 复用fa_feedback补处理结果;不把反馈图片当公共文件;客服历史优先由供应商维护。 diff --git a/docs/开发进度.md b/docs/开发进度.md index 3863d99..7b77b35 100644 --- a/docs/开发进度.md +++ b/docs/开发进度.md @@ -1,6 +1,442 @@ # AI 融资平台开发进度 -基线日期:2026-09-22。文档版本:1.67。课程整篇阅读与单一已读操作见0.77节,CONTENT-002/003/004内容、课程进度与搜索组合开发检查见0.76节,AUTH-003/004账户资料、头像及会话撤销后端隔离HTTP开发检查见0.75节,AUTH-003/004账户资料、改密及退出组合开发检查见0.74节,ASSESS-004评估新建/修改后端隔离HTTP开发检查见0.73节,ASSESS-004资料填写、确认提交与档案回显组合开发检查见0.72节,PRODUCT-004匹配读取与产品解释后端隔离开发检查见0.71节,PRODUCT-004/005匹配详情与对比历史版本组合开发检查见0.70节,CHAT-004后端消息幂等、并发额度与历史上下文隔离开发检查见0.69节,CHAT-004历史版本上下文与异常会话组合开发检查见0.68节,REPORT-006行动页与报告可用性组合开发检查见0.67节,REPORT-005微信PDF下载与导出边界开发检查见0.66节,REPORT-004历史报告与重评组合开发检查见0.65节,REPORT-003报告生成与持久化开发检查见0.64节,REPORT-002异步任务与补偿链开发检查见0.63节,反馈与消息后端生产发布见0.62节,反馈与消息配套发布准备见0.61节,最新反馈恢复与消息组合检查见0.60节,反馈回复与站内消息联动见0.59节,会员反馈原键恢复见0.58节,小程序既有发布状态及后台反馈处理见0.57节,首页隔离回归见0.56节,后端发布见0.55节;此前章节保留阶段记录。技术方案和接口说明见[开发文档](./开发文档.md),发布材料见[反馈消息发布清单](./反馈消息发布清单.md)。本台账现有63项任务、27页面,编号与开发文档保持一致。 +基线日期:2026-09-22。文档版本:1.97。后台内容写入CSRF防护见1.07节,内容发布与整篇课程已读组合回归见1.06节,反馈处理与站内消息组合回归见1.05节,核心权限矩阵与后台组合回归见1.04节,会话撤销/跨账户权限/消息与助手组合回归见1.03节,核心评估主流程组合回归及独立Linux路线取消见1.02节,真实Linux隔离条件/执行方案准备见1.01节,合成告警链统一预检/证据汇总见1.00节,dead对账/人工恢复审计见0.99节,告警outbox调度/租约退避/模拟接收幂等见0.98节,告警原子存储/互斥/崩溃恢复见0.97节,告警连续门槛/去重/恢复与维护见0.96节,Linux/systemd守护与告警离线准备见0.95节,部署恢复手册与只读证据入口见0.94节,合成全库恢复导入中断/耗时开发证据见0.93节,队列进程生命周期隔离开发证据见0.92节,合成加密资料/独立密钥恢复开发证据见0.91节,r2隔离实际部署/中断/定向恢复开发证据见0.90节,后台与内容r2生产维护发布见0.89节,生产只读实测与r2具体发布计划见0.88节,生产只读预检脚本准备与历史待登录状态见0.87节,后台/内容增量配套发布准备见0.86节,ADMIN-001后台菜单、正式角色模板与跨模块权限组合检查见0.85节,ADMIN-003服务状态、调用用量与现行策略组合联调见0.84节,ADMIN-002评估排障、失败重试与运行策略组合联调见0.83节,CONTENT-001后台内容编辑与发布页面专项见0.82节,CONTENT-002/003资讯、课程与搜索实际后端H5隔离联调见0.81节,CONTENT-004 FAQ实际后端与H5隔离联调见0.80节,帮助FAQ页面专项见0.79节,CONTENT-002/003/004内容、课程已读与搜索后端隔离HTTP开发检查见0.78节,课程整篇阅读与单一已读操作见0.77节,CONTENT-002/003/004内容、课程进度与搜索组合开发检查见0.76节,AUTH-003/004账户资料、头像及会话撤销后端隔离HTTP开发检查见0.75节,AUTH-003/004账户资料、改密及退出组合开发检查见0.74节,ASSESS-004评估新建/修改后端隔离HTTP开发检查见0.73节,ASSESS-004资料填写、确认提交与档案回显组合开发检查见0.72节,PRODUCT-004匹配读取与产品解释后端隔离开发检查见0.71节,PRODUCT-004/005匹配详情与对比历史版本组合开发检查见0.70节,CHAT-004后端消息幂等、并发额度与历史上下文隔离开发检查见0.69节,CHAT-004历史版本上下文与异常会话组合开发检查见0.68节,REPORT-006行动页与报告可用性组合开发检查见0.67节,REPORT-005微信PDF下载与导出边界开发检查见0.66节,REPORT-004历史报告与重评组合开发检查见0.65节,REPORT-003报告生成与持久化开发检查见0.64节,REPORT-002异步任务与补偿链开发检查见0.63节,反馈与消息后端生产发布见0.62节,反馈与消息配套发布准备见0.61节,最新反馈恢复与消息组合检查见0.60节,反馈回复与站内消息联动见0.59节,会员反馈原键恢复见0.58节,小程序既有发布状态及后台反馈处理见0.57节,首页隔离回归见0.56节,后端发布见0.55节;此前章节保留阶段记录。技术方案和接口说明见[开发文档](./开发文档.md),发布材料见[反馈消息发布清单](./反馈消息发布清单.md)。本台账现有63项任务、27页面,编号与开发文档保持一致。 + +### 1.07 2026-10-08 后台内容写入CSRF防护 + +完成资讯、课程、FAQ与旧协议新增/编辑/批量/删除的内容专用CSRF门禁:独立随机256位Session Token、仅POST请求体、缺失/错误/数组/跨会话/旧Token拒绝,成功及失败刷新,客户端手动重试、不自动重放。权限/撤权、类型和版本范围、超管批量仅合法status保持。8个运行文件配套,通用Backend/Form/Table与公开内容/整篇一次已读不改。 + +新增CSRF627项/128次HTTP,内容组合522/147、课程服务56、内容HTTP362/90和后台权限227/158回归通过,本批五入口1794项/523次本机HTTP,模型0。实际Chromium宽1440×1000/窄390×844验证63项、18次内容POST,错误/警告/外部请求0;保存按钮与Token刷新/手动恢复、Table.api.multi及真实删除控件通过,手机保存按钮滚动后可见,不声称存在批量状态按钮或手机首屏保存。失败/重复运行及浏览器与PHP检查分开,不跨轮累计。 + +仅全新本机合成MySQL/Redis与安全配置;26表核空、结构和8原触发器保持,DB15零键,本轮精确库删除、所属HTTP/服务退出/端口释放。911份退出屏蔽回执确认真实模型类未加载。旧安全材料、35固定输入/缓存、13旧合成库及既有两仓库改动保持;源码/语法/链接/ACL回执私密留存,配置/session/原始日志/manifest不能整包分享。 [验证说明](D:/AAdesk/202609/airz/database/content-csrf-regression.md)、[安全证据](D:/AAdesk/202609/airz-backups/content-csrf-regression/airz-content-csrf-1791450130328/verification.json)和[验收矩阵](核心与权限验收矩阵.md)。 + +8个运行文件尚未部署;没有生产访问、真实worker/模型、外部消息、安装或提交/推送/PR。未重跑小程序/H5编译、搜索旧响应竞态、真实回执丢失/多设备恢复或真机/正式运营签收。RELEASE-001开发中/整体未验收,独立Linux测试机路线已取消、Linux/systemd未验证、RELEASE-003阻塞;63任务/27页面保持。 进度1.97/1.07、文档v1.65/0.78。 + +下一项:RELEASE-001候选版本与验收用例收口:固定本地候选源码清单/摘要,关联已验证范围和剩余外部阻塞,形成可复核交付基线;不部署、不预填正式签收,不继续扩张同类回归工具。 真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。 + +### 1.06 2026-10-08 内容发布与整篇课程已读组合回归 + +新增[content_publication_flow.php](D:/AAdesk/202609/airz/tests/content_publication_flow.php)。运营/客服/技术v5/超管与双会员贯穿三类草稿/发布、首页/列表/搜索/详情、整篇已读、重排/简介/正文更新、下架/重新发布和退出/重新登录;验证撤权、类型隔离、旧版本409、部分保存故障补齐与双账户隔离。新增内容发布/下架与整篇课程已读组合518项、143次本机HTTP通过;原课程服务56、内容HTTP362、后台权限227项回归通过,本批四个入口共1163项、391次本机HTTP,模型调用0。红测试复现超管批量修改任意字段绕过内容编辑;ContentEditor::multi现统一只接受合法status,非法/混合字段拒绝,保留父类权限、类型范围及事务。仅这一trait修复,原业务改动和旧测试保持。最初红测试实际复现漏洞,之后两次夹具修正不计业务缺陷或通过次数。 + +仅全新本机合成MySQL/Redis与安全配置,真实模型预先屏蔽;26空表/结构和8原触发器保持、DB15零键,精确库删除、所属HTTP/服务退出及端口释放,509份退出回执确认真实模型类未加载。安全[verification.json](D:/AAdesk/202609/airz-backups/content-flow-regression/airz-content-flow-1791448910652/verification.json)、[组合说明](D:/AAdesk/202609/airz/database/content-flow-regression.md)和[验收矩阵](核心与权限验收矩阵.md)留档;旧安全材料/35固定输入与缓存/13旧合成库摘要保持,旧回执不刷新。原测试无复制或端口修改,api_content仅私密bootstrap切content_前缀;并发探针不是真实worker。没有生产访问、部署、外部通知、安装或提交;本轮trait修复尚未发布。 + +本批是后端组合,未重跑前端编译/浏览器旧响应竞态或真机/多设备;内容写入尚无专用CSRF门禁,未携带__token__也可写,不能声称安全或正式验收完成。进度1.96/1.06、文档v1.64/0.77。RELEASE-001开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:后台内容写入CSRF门禁与配套表单/批量请求改造,覆盖资讯、课程、FAQ和旧协议;先缺失/错误/跨会话Token红测试,再补服务端校验和有效请求/Token刷新/撤权验证,全新本机合成环境、不改通用Backend。真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认与供应商约定保持。 + +### 1.05 2026-10-08 反馈处理与站内消息组合回归 + +新增[feedback_message_flow.php](D:/AAdesk/202609/airz/tests/feedback_message_flow.php),复用现行账户HTTP、正式权限夹具和后台HTTP路由。双会员/本人多会话与运营/技术/两名客服/超管贯穿原键提交、处理/回复、唯一通知/已读、退出/改密和重新登录恢复;验证角色权限/撤权、CSRF/旧版本/原文写入拒绝、跨用户消息和反馈隔离、回复修订/水位分页、通知或审计故障完整回滚及私密正文不进入通知/审计。新增反馈处理/站内消息组合344项、97次本机HTTP通过;原反馈67、处理32、通知43、恢复24、账户281和后台权限227项回归通过,本批7个入口共1018项、324次本机HTTP,模型调用0。首次新增组合及六回归均通过,没有新的业务源码缺陷,只新增测试与文档;原有业务改动和测试源码保持。 + +四个旧反馈事务/并发入口固定3309,仅私密副本将端口字面量改为本批3336,其余字节及本机/合成库/模型关闭门禁保持,原/副本摘要和变化范围留档。并发worker参数只为测试探针;固定旧反馈HTTP入口未直接运行,新增动态HTTP组合覆盖其场景。原键补确认是后端恢复语义,本轮不声称真实客户端回执丢失、持久恢复/进程重启或H5/真机通过。 + +仅全新本机合成MySQL/Redis与安全合成配置,不读默认.env或原私密site/upload;真实模型类预先屏蔽。26空表/结构与8原触发器保持、DB15键0,精确库删除后所属服务/HTTP退出、端口释放;348份退出回执确认真实模型类未加载。安全[verification.json](D:/AAdesk/202609/airz-backups/feedback-flow-regression/airz-feedback-flow-1791447922008/verification.json)、[组合说明](D:/AAdesk/202609/airz/database/feedback-message-regression.md)和[验收矩阵](核心与权限验收矩阵.md)留档;旧安全材料/35固定输入/缓存/13旧合成库摘要保持。没有生产访问、真实worker/模型、外部通知、迁移/部署、安装或提交;未重跑前端编译和浏览器。 + +进度1.95/1.05、文档v1.63/0.76。RELEASE-001仍开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。下一项:内容发布/下架→列表/搜索/详情→整篇课程一次已读的跨角色/跨账户组合回归,先用全新本机合成环境;不重复扩张告警模拟工具。真人客服/私有附件、真实渠道/产品、正式运营/真机及生产恢复/密钥托管/规模RTO/RPO仍待各自条件;小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持。 + +### 1.04 2026-10-08 核心权限验收矩阵与后台组合回归 + +新增[核心与权限验收矩阵](核心与权限验收矩阵.md),按现行一期条件汇总主流程、会话/消息/助手、后台三批证据与15模块缺口。通过断言数不当作独立业务场景数;跨轮重复入口不累计,正式账号、候选版本、真实产品/渠道、目标端及验收负责人仍需确定。 + +新增[后台组合测试](D:/AAdesk/202609/airz/tests/admin_assessment_flow.php)、权限夹具与隔离HTTP路由。覆盖运营/客服/技术v5/超管/合成旧技术只读角色,当前失败与旧发布版区分、隐私投影、CSRF/查询参数/版本冲突/暂停拒绝、撤权即时生效、幂等回执跨完成及后续重评、唯一成功审计和审计故障事务回滚。新增后台五角色诊断/人工重试组合167项(41次本机HTTP、4次假调用),原后台权限227项(158请求)、针对性权限/隐私/诊断/重试/审计/服务用量575项和主流程280项回归通过;本批14个入口共1249项、199次本机HTTP、20次显式假调用,失败和重复运行不累计。本轮未发现新的业务源码缺陷,只修正测试夹具与隔离配置;一次准备失败按本轮身份精确恢复,原业务源码/旧测试保持。 + +仅全新本机合成MySQL/Redis与合成配置、实际HTTP及显式假客户端;不读默认.env或原site/upload私密配置,真实模型类在初始化前屏蔽。26空表/结构与8原触发器保持、DB15键0,精确库已删除;正常关闭后首次PID检查偏早,稍后复核所属服务/HTTP均退出、端口释放。357份退出回执确认真实模型类未加载,不是357个独立进程。安全[verification.json](D:/AAdesk/202609/airz-backups/admin-flow-regression/airz-admin-flow-1791445932955/verification.json)及[组合说明](D:/AAdesk/202609/airz/database/admin-flow-regression.md)留档;旧证据/35固定输入/缓存/13旧合成库摘要保持,两仓库既有业务改动保留。无生产访问、真实worker/模型、外部通知、安装或提交/推送/PR;未重跑前端浏览器/编译或真机。 + +进度1.94/1.04、文档v1.62/0.75。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项:已有反馈处理与站内消息的跨角色/跨账户组合回归:会员原键提交→客服处理/回复→唯一通知/已读→退出或改密→重新登录/原键恢复;随后补内容发布/下架与整篇课程已读/搜索组合。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真实渠道/真机、正式运营账号与签收、生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。 + +### 1.03 2026-10-08 会话撤销与跨模块权限组合回归 + +新增[session_assistant_flow.php](D:/AAdesk/202609/airz/tests/session_assistant_flow.php),复用账户HTTP/匹配夹具和助手路由,两个账户分别产生个人/企业报告、通知和冻结助手上下文。验证退出只撤销当前Token、改密撤销本人全部会话且不影响另一账户;旧Token在报告/匹配/消息/助手各读写入口拒绝且无业务写入。重新登录和显式重试保留同一逻辑问题、调用预算及幂等,重评发布后旧通知/助手仍绑定原报告,手机号/证件输入不进入模型提示,旧消息水位全部已读不吞新通知。 + +新增会话撤销/跨账户权限/消息与助手组合检查375项、100次本机HTTP、8次显式假调用通过;原会话并发281、助手165、资料268、主流程280项回归通过,本轮五个入口共1369项,失败和重复运行不累计。新测试同时核跨账户报告/匹配/通知/会话创建读取及发问、伪造身份参数和跨会话游标,拒绝不产生调用预留;已接受任务在退出后正常处理,改密不删除原问题/报告/通知。没有发现新的业务缺陷,业务源码保持。 + +仅本轮全新本机合成MySQL/Redis、实际HTTP/服务层和进程内假模型,真实模型客户端构造被拦截;26表回到空库/结构保持、Redis DB15键0后删除精确合成库,两个所属服务PID退出/端口释放。夹具初次的状态码/产品类型/外键清理顺序已定位并修正,不计为业务缺陷;私密[安全证据](D:/AAdesk/202609/airz-backups/security-flow-regression/airz-security-flow-1791445051475/verification.json)和[组合说明](D:/AAdesk/202609/airz/database/session-assistant-regression.md)。旧材料/固定输入/13旧合成库与缓存摘要保持,没有生产连接、部署、真实worker/模型、外部消息、安装或提交。 + +进度1.93/1.03、文档v1.61/0.74。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。下一项汇总RELEASE-001核心与权限验收矩阵,继续后台跨角色权限及评估排障/人工重试组合检查,明确剩余开发用例与正式签收条件。小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真机/真实渠道、生产恢复/密钥托管/规模RTO/RPO及运营签收仍待各自条件。 + +### 1.02 2026-10-08 核心评估主流程组合回归 + +用户已取消独立Linux测试机路线,原执行方案存档,不再等待目标绑定;Linux/systemd未验证,RELEASE-003仍阻塞/正式未验收。RELEASE-001进入开发中,本轮范围为个人/企业评估→报告→产品匹配,尚未完成全模块权限回归和正式验收。说明见[组合回归](D:/AAdesk/202609/airz/database/core-flow-regression.md)。 + +修复新报告发布后历史匹配列表和导出仍允许解释重试的问题,列表/详情/导出统一依据published_input_id计算权限;重评处理中或失败时,仍在发布的旧版保留重试权限,不能用isPreviousResult直接禁用。新增core_assessment_flow.php覆盖提交/重放、重评失败保留原发布版、独立新评估与最新资料隔离、冻结策略重试、新版发布及解释关闭、跨账户拒绝无写入和当前版三次预算。修复前历史列表重试断言失败,修复后280项/16显式假调用通过。 + +相关回归:匹配读取238、解释52、持久化75、提交514、纯匹配151、纯规则64、版本并发58、匹配任务19、历史报告/PDF接口215,连同新组合共1666项。初次PDF/演示产品夹具缺失已在本轮隔离运行包补齐,未安装依赖或更改相关业务源码;失败/重复运行不累计。 + +仅全新本机合成MySQL/Redis与显式假模型,真实模型客户端构造被拦截;PDF使用仓库已有锁定引擎/字体,未安装依赖。26表回到空库且结构保持、Redis DB15键0后删除本轮精确合成库,两个所属服务PID退出/端口释放。安全证据见[verification.json](D:/AAdesk/202609/airz-backups/core-flow-regression/airz-core-flow-1791443749845/verification.json)。旧回执/固定输入/缓存/13旧合成库保持,既有改动保留,无生产、发布、真实worker/模型、外部消息或提交。 + +进度1.92/1.02、文档v1.60/0.73。下一项继续RELEASE-001的会话撤销/跨账户权限、消息与助手组合回归,覆盖旧Token失效、资源归属、消息幂等与历史报告上下文;不重复同类告警模拟。63任务/27页面保持;小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。H5/真机、真实渠道、Nginx/FPM/TLS恢复、密钥托管/规模RTO/RPO和运营正式签收仍待各自条件。 + +### 1.01 2026-10-08 真实Linux隔离条件核对与执行方案准备 + +承接1.00,新增[执行方案](D:/AAdesk/202609/airz/database/worker-supervision/linux-execution-plan.md)和[准备计划](D:/AAdesk/202609/airz/docs/superpowers/plans/2026-10-08-linux-preparation.md)。用户已明确测试机尚未准备,本机WSL查询无已安装发行版;状态prepared-unbound,目标/完整运行包未冻结。现主控的mysqld.exe/CREATE_NO_WINDOW/USERNAME/ACL依赖Windows,可信systemd采集器缺失,根composer.lock不存在;需实际依赖树清单和目标适配,原8源码摘要只做参考。 + +方案分目标只读核对/平台与采样适配/精确操作单、idle服务信号及限速、独立存储/开机/在途扩展、告警接入与收尾证据。明确SIGTERM无应用排空、stop后不自动重启、累计NRestarts非近期风暴、限速后受控reset-failed、.stop/event归档,以及每场景等待上限/owned资源/失败恢复。服务操作、存储故障、主机重启和外部投递各自明确授权,不把公开历史合成样本记作真实采样。 + +原49/42回归共91项、未传observation的离线预检和五组14历史回执核验通过;本项纯文档不新增测试。60旧安全材料/35固定输入与参考源码(含旧缓存)/13旧合成库摘要保持,无新源码漂移豁免。新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-linux-preparation/airz-linux-preparation-1791442489789/verification.json)及平台/预检/测试/基线/最终核验,ACL仅当前用户/SYSTEM;UTF-8无BOM/换行/链接/两仓库diff与任务页面检查。零Linux采样/服务/worker/模型/外部消息、生产或项目DB/Redis/网络、安装提交。 + +进度1.91/1.01、文档v1.59/0.72,63任务27页面/RELEASE-003阻塞正式未验收保持。下一步获得独立测试机后核对并完成Linux主控/采集适配、冻结目标包和具体操作单,再按授权执行;目标未备不连接生产替代或继续扩张模拟工具。业务规则/小程序发行与独立生产恢复签收条件保持。 + +### 1.00 2026-10-08 合成告警链统一预检与证据汇总 + +承接0.99,新增[链路契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-chain.md)、[统一CLI](D:/AAdesk/202609/airz/tests/worker_alert_chain.py)与52项测试。完整安全序列重放后dispatch→receiver→source持三库锁,核对样本摘要/state/outbox、调度源前缀/每来源确认顺序与零尝试后续、接收每来源顺序及普通/人工补确认持久回执,simulated_ack不算效果。不调用sync/claim/receive/confirm/恢复或推进clock;原源码/历史回执/七旧合成库保持,无新漂移豁免。 + +一致性、排空、syntheticReady分别输出,固定诊断含未同步/退避/lease/已接收未确认/dead恢复路径/三次限额/维护/活动和待确认故障/未知健康/样本空档及来源blockedBy;now显式合成且单调,不输出领取令牌/owner。逻辑snapshot/seal与七份工具hash只做复核,不认证来源;SQLite打开热日志可能恢复,不能当不可变取证。坏source/锁忙错误归属修正,仅改新入口。 + +52项新测试与原43/63/51/56/49/42回归共356项通过,34个有审计测试子进程全部退出。三项新进程测试验证持三库锁、等待写入后读最新clock及中止检查后释放锁/干净库字节保持。新公开24样本7事件形成六阶段报告,超时耗尽/永久失败两个dead分别补确认和grant,最终7模拟确认/7唯一效果/2审计;每次预检三库字节及贯穿source保持。排空时合成ready,样本年龄91秒则仍排空但ready=false,formalAcceptance等四字段始终false。 + +私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-chain/airz-alert-store-1791440789040/verification.json)、tests/receipt-baseline/red-tests/red-source-attribution/final-source-validation和六份chain报告,ACL当前用户/SYSTEM;初次报告/现场保持,最终用第二个新合成目录。39历史材料/16固定输入/七旧库摘要保持,五组14回执/21不同源码核验。AST/UTF-8无BOM/换行空白/新链接/两仓库diff、63任务27页面核对,无生产/项目DB/Redis/网络/实际采样/服务/worker/模型/通知、安装或提交/推送/PR,不算Linux/断电/正式验收。 + +进度1.90/1.00、文档v1.58/0.71,RELEASE-003阻塞/正式未验收保持。下一项转向真实Linux隔离验证条件及冻结方案,先明确测试主机/账号/目录/允许服务信号/采样/渠道和证据位置,不继续扩张同类模拟工具;生产恢复/密钥托管/规模RTO/RPO/运营真机签收仍待条件,课程/小程序/积分/供应商约定保持。 + +### 0.99 2026-10-08 dead事件对账、单次恢复预算与审计门禁 + +承接0.98,新增[恢复契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-recovery.md)、[恢复CLI](D:/AAdesk/202609/airz/tests/worker_alert_recovery.py)和43项测试。共享dispatch源码兼容v1/v2;默认初始化和receiver仍v1,仅新合成dispatch显式enable追加recovery_audit,版本/DDL/seal同事务。旧四库和33份历史安全材料保持,上一项执行摘要不刷新;当前dispatch源码旧/new hash和完整63项回归另存。 + +仅dead可恢复:匹配模拟接收回执则只补确认,无回执且接收账本正常则获准再领取一次。attempts不重置,每次有效上限=当前attempts+1,人工grant每事件最多3次;永久失败1次也只到2次,默认延迟5秒,来源顺序和dead阻塞保持。未知/坏receiver拒绝,人工次数耗尽后仍能凭已存在回执补确认,旧finishedToken不能冒充正常租约confirm。 + +review方案包含scope/policy/事件/状态/预算/次数/clock/审计头/回执,execute重新核对,过期方案/迟到接收拒绝。dispatch→receiver→source锁序,持接收/来源锁到dispatch提交;状态/时钟/预算来源/审计/seal同事务,SQL/commit失败回滚。同32位requestId同参数幂等,后续正常调度后可重试旧请求;改参数冲突,actor安全别名、reason枚举,CLI显式--apply,审计安全before/after及hash链不认证来源或操作者。 + +43新测试含7项进程测试/9 owned子进程,4次enable/execute提交前后终止;热日志与脏页、原子回滚/重启幂等、同键/异键竞争及正常调度/receiver/source锁竞争通过。原63/51/56/49/42回归,共304项/31 owned测试进程全部退出。公开24样本7事件先2 dead,分别补确认/grant,恢复不写source/receiver;正常调度后7模拟delivered/7唯一接收效果/2审计,源字节/来源顺序保持。五组14回执/21不同源码核验与33旧材料/13未改输入/四旧库保持。 + +私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-recovery/airz-alert-store-1791439388039/verification.json)、tests/receipt-baseline/red-tests/final-source-validation和三份合成SQLite现场,ACL当前用户/SYSTEM。仅本地合成SQLite/Windows进程,无生产/项目DB/Redis/网络/实际采样/外部投递、服务/worker/模型、安装或提交/推送/PR,不记Linux/systemd/断电或正式验收。进度1.89/0.99、文档v1.57/0.70,63任务/27页面/RELEASE-003阻塞保持。下一项合成告警链统一预检与证据汇总;真实采样/Linux/渠道、生产恢复/密钥托管/规模RTO/RPO和运营/真机签收仍待条件,课程/小程序/积分/供应商约定保持。 + +### 0.98 2026-10-08 outbox有界调度、租约退避与模拟接收幂等 + +承接0.97,新增[调度契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-dispatch.md)、[调度CLI](D:/AAdesk/202609/airz/tests/worker_alert_dispatch.py)与63项测试。保留原alert-store.sqlite3 v1/源码,新合成目录独立dispatch/receiver SQLite账本,DELETE日志/FULL同步/BEGIN IMMEDIATE;事件按eventId同步/领取原子、锁内最新源校验、回执独立提交后才确认,不持调度锁模拟发送,原source ack/state不写。 + +租约30秒/最多5次领取,失败5/10/20/40秒退避/上限60秒,明确永久失败或次数耗尽保留dead。单来源最早未确认事件阻止后续越过,双来源可独立推进,每轮最多20条/当前实际2条,无后台无限排空。显式合成时钟单调,当前令牌且now)、[切换账户后的空白草稿]()、[短信未配置手机提示]()、[桌面提示]()。位于本机临时目录,清理后可能失效,正式验收应另行归档。两条临时合成账户及其Redis会话已清理;复核数据库25表、Token表不存在。未覆盖微信内置浏览器、Safari、真机、正式发行、真实短信/AI或产品链路。接口复核命令为`php tests/api_session.php`,驱动为`php tests/token_redis.php`;前端编译命令见开发文档8.2。 diff --git a/docs/新会话交接.md b/docs/新会话交接.md index 3818db0..c3a78d9 100644 --- a/docs/新会话交接.md +++ b/docs/新会话交接.md @@ -1,6 +1,411 @@ # 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-08 后台内容写入CSRF防护 + +完成资讯、课程、FAQ与旧协议新增/编辑/批量/删除的内容专用CSRF门禁:独立随机256位Session Token、仅POST请求体、缺失/错误/数组/跨会话/旧Token拒绝,成功及失败刷新,客户端手动重试、不自动重放。权限/撤权、类型和版本范围、超管批量仅合法status保持。8个运行文件配套,通用Backend/Form/Table与公开内容/整篇一次已读不改。 + +新增CSRF627项/128次HTTP,内容组合522/147、课程服务56、内容HTTP362/90和后台权限227/158回归通过,本批五入口1794项/523次本机HTTP,模型0。实际Chromium宽1440×1000/窄390×844验证63项、18次内容POST,错误/警告/外部请求0;保存按钮与Token刷新/手动恢复、Table.api.multi及真实删除控件通过,手机保存按钮滚动后可见,不声称存在批量状态按钮或手机首屏保存。失败/重复运行及浏览器与PHP检查分开,不跨轮累计。 + +仅全新本机合成MySQL/Redis与安全配置;26表核空、结构和8原触发器保持,DB15零键,本轮精确库删除、所属HTTP/服务退出/端口释放。911份退出屏蔽回执确认真实模型类未加载。旧安全材料、35固定输入/缓存、13旧合成库及既有两仓库改动保持;源码/语法/链接/ACL回执私密留存,配置/session/原始日志/manifest不能整包分享。 [防护与验证说明](D:/AAdesk/202609/airz/database/content-csrf-regression.md)、[验收矩阵](核心与权限验收矩阵.md)及安全[verification.json](D:/AAdesk/202609/airz-backups/content-csrf-regression/airz-content-csrf-1791450130328/verification.json)。 + +8个运行文件尚未部署;没有生产访问、真实worker/模型、外部消息、安装或提交/推送/PR。未重跑小程序/H5编译、搜索旧响应竞态、真实回执丢失/多设备恢复或真机/正式运营签收。RELEASE-001开发中/整体未验收,独立Linux测试机路线已取消、Linux/systemd未验证、RELEASE-003阻塞;63任务/27页面保持。 进度1.97/1.07、文档v1.65/0.78。 + +下一项:RELEASE-001候选版本与验收用例收口:固定本地候选源码清单/摘要,关联已验证范围和剩余外部阻塞,形成可复核交付基线;不部署、不预填正式签收,不继续扩张同类回归工具。 真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。 + +红测试先复现无Token写入,后确认默认时间Token不符合独立随机契约。中间数组Token500是新实现缺陷,现原始POST读取/类型核对后明确拒绝;浏览器准备和截图时机调整另留记录,不计通过次数。 + +## 前轮接续:2026-10-08 内容发布与整篇课程已读组合回归 + +最新进度 **1.96 / 1.06**,开发文档 **v1.64 / 0.77**。RELEASE-001开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。 + +- 新增后端tests/content_publication_flow.php,复用账户HTTP、现行权限夹具与后台路由。运营/客服/技术v5/超管与双会员贯穿三类草稿/发布、首页/列表/搜索/详情、整篇已读、重排/简介/正文更新、下架/重新发布和退出/重新登录;验证撤权、类型隔离、旧版本409、部分保存故障补齐与双账户隔离。 +- 新增内容发布/下架与整篇课程已读组合518项、143次本机HTTP通过;原课程服务56、内容HTTP362、后台权限227项回归通过,本批四个入口共1163项、391次本机HTTP,模型调用0。红测试复现超管批量修改任意字段绕过内容编辑;ContentEditor::multi现统一只接受合法status,非法/混合字段拒绝,保留父类权限、类型范围及事务。仅这一trait修复,原业务改动和旧测试保持。两次修复后试运行纠正FAQ路由与搜索顺序的夹具假设,最终组合和三回归通过;失败/重复运行不累计。 +- 本批是后端组合,未重跑前端编译/浏览器旧响应竞态或真机/多设备;内容写入尚无专用CSRF门禁,未携带__token__也可写,不能声称安全或正式验收完成。原api_content只用本轮私密bootstrap适配content_ Token前缀,保留门禁和源码;其worker是合成测试探针。 +- 仅全新本机合成MySQL/Redis与安全配置,真实模型预先屏蔽;26空表/结构和8原触发器保持、DB15零键,精确库删除、所属HTTP/服务退出及端口释放,509份退出回执确认真实模型类未加载。旧安全材料、35固定输入/缓存及13旧合成库摘要保持,既有两仓库改动保留。无生产访问、部署、真实worker/模型、外部消息、安装或提交/推送/PR;本批trait修复尚未发布。 +- [组合说明](D:/AAdesk/202609/airz/database/content-flow-regression.md)、[验收矩阵](核心与权限验收矩阵.md)及私密安全[verification.json](D:/AAdesk/202609/airz-backups/content-flow-regression/airz-content-flow-1791448910652/verification.json),同目录tests/red-test/fixture-trials/cleanup/历史核验/最终源码/ACL;配置/session/原始日志/manifest不能整包分享。 + +**下一开发入口:** 后台内容写入CSRF门禁与配套表单/批量请求改造,覆盖资讯、课程、FAQ和旧协议;先缺失/错误/跨会话Token红测试,再补服务端校验和有效请求/Token刷新/撤权验证,全新本机合成环境、不改通用Backend。真实渠道/产品/内容、私有附件/真人客服、正式运营/真机及生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认与供应商约定保持。 + +## 前轮接续:2026-10-08 反馈处理与站内消息组合回归 + +最新进度 **1.95 / 1.05**,开发文档 **v1.63 / 0.76**。RELEASE-001仍开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003阻塞。63任务/27页面保持。 + +- 新增后端tests/feedback_message_flow.php,复用账户HTTP/现行权限夹具与后台路由。双会员/本人多会话与运营/技术/两名客服/超管贯穿原键提交、处理/回复、唯一通知/已读、退出/改密和重新登录恢复;验证角色权限/撤权、CSRF/旧版本/原文写入拒绝、跨用户消息和反馈隔离、回复修订/水位分页、通知或审计故障完整回滚及私密正文不进入通知/审计。 +- 新增反馈处理/站内消息组合344项、97次本机HTTP通过;原反馈67、处理32、通知43、恢复24、账户281和后台权限227项回归通过,本批7个入口共1018项、324次本机HTTP,模型调用0。首次组合与六回归均通过,未发现新的业务缺陷,业务源码和原测试保持;仅新增测试与文档,不跨轮累计。 +- 四个旧反馈测试只在私密目录复制,将固定3309字面量绑定到本批3336,其余字节/门禁保持;并发测试探针不是实际队列worker。原键补确认只证明后端恢复语义,本轮未重跑前端持久恢复/回执丢失/浏览器/编译或真机。 +- 仅全新本机合成MySQL/Redis与安全合成配置,不读默认.env或原私密site/upload;真实模型类预先屏蔽。26空表/结构与8原触发器保持、DB15键0,精确库删除后所属服务/HTTP退出、端口释放;348份退出回执确认真实模型类未加载。没有生产访问、真实worker/模型、外部消息、部署、安装或提交/推送/PR。旧安全材料、35固定输入/缓存及13旧合成库摘要保持,既有业务改动保留。 +- [组合说明](D:/AAdesk/202609/airz/database/feedback-message-regression.md)、[核心与权限验收矩阵](核心与权限验收矩阵.md)、私密安全[verification.json](D:/AAdesk/202609/airz-backups/feedback-flow-regression/airz-feedback-flow-1791447922008/verification.json)和同目录tests/regression-copy-map/cleanup/收尾前状态/历史核验/最终源码/ACL;配置/session/原始日志/manifest不整包共享。 + +**下一开发入口:** 内容发布/下架→列表/搜索/详情→整篇课程一次已读的跨角色/跨账户组合回归,先用全新本机合成环境;不重复扩张告警模拟工具。真人客服/私有附件、真实渠道/产品、正式运营/真机及生产恢复/密钥托管/规模RTO/RPO仍待各自条件;小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持。 + +## 前轮接续:2026-10-08 核心权限矩阵与后台组合回归 + +最新进度 **1.94 / 1.04**,开发文档 **v1.62 / 0.75**。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。 + +- 新增[核心与权限验收矩阵](核心与权限验收矩阵.md),汇总三批本地子集、15模块缺口及正式签收条件;不把各轮复用入口累计为去重业务用例,不预填验收人。 +- 后端新增tests/admin_assessment_flow.php、admin_flow_fixtures.php、admin_flow_http_router.php。覆盖运营/客服/技术v5/超管/合成旧技术只读角色,当前失败与旧发布版区分、隐私投影、CSRF/查询参数/版本冲突/暂停拒绝、撤权即时生效、幂等回执跨完成及后续重评、唯一成功审计和审计故障事务回滚。 +- 新增后台五角色诊断/人工重试组合167项(41次本机HTTP、4次假调用),原后台权限227项(158请求)、针对性权限/隐私/诊断/重试/审计/服务用量575项和主流程280项回归通过;本批14个入口共1249项、199次本机HTTP、20次显式假调用,失败和重复运行不累计。没有新的业务源码修复,原后台权限及核心入口不改;测试准备失败只记fixture-trials,不记业务缺陷或通过次数。 +- 仅全新本机合成MySQL/Redis与合成配置、实际HTTP及显式假客户端;不读默认.env或原site/upload私密配置,真实模型类在初始化前屏蔽。26空表/结构与8原触发器保持、DB15键0,精确库已删除;正常关闭后首次PID检查偏早,稍后复核所属服务/HTTP均退出、端口释放。357份退出回执确认真实模型类未加载,不是357个独立进程。没有生产连接、真实worker/模型、外部消息、部署、安装、提交/推送/PR。原有源码改动、旧证据、35固定输入/缓存及13旧合成库摘要保持。 +- [后台组合说明](D:/AAdesk/202609/airz/database/admin-flow-regression.md)、私密安全[verification.json](D:/AAdesk/202609/airz-backups/admin-flow-regression/airz-admin-flow-1791445932955/verification.json)和同目录tests/fixture-trials/cleanup/历史核验/最终源码/ACL回执;配置/session/原始日志/manifest不整包共享。 + +**下一开发入口:** 已有反馈处理与站内消息的跨角色/跨账户组合回归:会员原键提交→客服处理/回复→唯一通知/已读→退出或改密→重新登录/原键恢复;随后补内容发布/下架与整篇课程已读/搜索组合。先全新本机合成环境和假客户端,不接真人客服或生产存储;私有资料受EXT-STORAGE/DEC-PRIVACY阻塞,不自行决定保留策略或模拟授权。小程序用户自行发行、课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真实渠道/真机、正式运营账号与签收、生产守护/恢复/密钥托管/规模RTO/RPO仍待各自条件。 + +## 前轮接续:2026-10-08 会话撤销、权限、消息与助手组合回归 + +最新进度 **1.93 / 1.03**,开发文档 **v1.61 / 0.74**。RELEASE-001保持开发中/整体未验收;独立Linux测试机路线已取消,Linux/systemd未验证、RELEASE-003仍阻塞。63任务/27页面保持。 + +- 新增后端tests/session_assistant_flow.php,复用既有账户HTTP/匹配夹具与助手HTTP路由,个人/企业两账户贯穿登录→报告/通知→助手→退出/改密→重新登录/重试→重评/历史上下文→消息已读。验证退出只撤销当前Token、改密撤销本人全部会话且不影响另一账户;旧Token在报告/匹配/消息/助手各读写入口拒绝且无业务写入。重新登录和显式重试保留同一逻辑问题、调用预算及幂等,重评发布后旧通知/助手仍绑定原报告,手机号/证件输入不进入模型提示,旧消息水位全部已读不吞新通知。 +- 新增会话撤销/跨账户权限/消息与助手组合检查375项、100次本机HTTP、8次显式假调用通过;原会话并发281、助手165、资料268、主流程280项回归通过,本轮五个入口共1369项,失败和重复运行不累计。没有发现新的业务缺陷,本轮业务源码保持,包括上一项MatchRecords修复;仅新增组合测试及文档。 +- 仅本轮全新本机合成MySQL/Redis、实际HTTP/服务层和进程内假模型,真实模型客户端构造被拦截;26表回到空库/结构保持、Redis DB15键0后删除精确合成库,两个所属服务PID退出/端口释放。测试开发中纠正HTTP状态码假设、企业产品选择及助手外键清理顺序,部分合成夹具已按归属恢复并核空;不把这些测试夹具失败记作业务缺陷或通过次数。没有部署、安装、真实worker/模型、外部消息或提交/推送/PR。 +- [组合说明](D:/AAdesk/202609/airz/database/session-assistant-regression.md)及私密安全[verification.json](D:/AAdesk/202609/airz-backups/security-flow-regression/airz-security-flow-1791445051475/verification.json)、tests/cleanup/fixture-trials/历史核验/最终源码/ACL证据。上一轮及更早安全回执、35固定输入/旧缓存和13旧合成库摘要保持,旧执行摘要不刷新,两仓库既有改动保留。 + +**下一开发入口:** 汇总RELEASE-001核心与权限验收矩阵,继续后台跨角色权限及评估排障/人工重试组合检查,明确剩余开发用例与正式签收条件。小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认和供应商约定保持;真机/真实渠道、生产恢复/密钥托管/规模RTO/RPO及运营签收仍待各自条件。 + +## 前轮接续:2026-10-08 核心评估主流程组合回归 + +最新进度 **1.92 / 1.02**,开发文档 **v1.60 / 0.73**。用户已取消独立Linux测试机路线,原执行方案存档,不再等待目标绑定;Linux/systemd未验证,RELEASE-003仍阻塞/正式未验收。RELEASE-001由未开始转为开发中,本轮完成个人/企业主流程子集,整体仍未验收。 + +- 修复新报告发布后历史匹配列表和导出仍允许解释重试的问题,列表/详情/导出统一依据published_input_id计算权限;重评处理中或失败时,仍在发布的旧版保留重试权限,不能用isPreviousResult直接禁用。 +- 新增后端tests/core_assessment_flow.php,贯穿新建/原键重放、初版成功、解释超时、修改失败、独立评估更新最新资料、原版重试、目录变化与冻结策略、新版发布/旧解释关闭、跨账户拒绝无写入和三次解释预算。个人/企业评估→报告→产品匹配组合检查280项通过;提交、版本并发、持久化、匹配读取/解释/任务/纯规则及历史报告/PDF相关回归共1666项通过。组合检查使用16次显式假调用;修复前红测试真实复现历史列表错误允许重试,修复后通过。 +- 仅全新本机合成MySQL/Redis与显式假模型,真实模型客户端构造被拦截;PDF使用仓库已有锁定引擎/字体,未安装依赖。26表回到空库且结构保持、Redis DB15键0后删除本轮精确合成库,两个所属服务PID退出/端口释放。版本回归初次缺PDF依赖、匹配任务初次缺演示产品夹具,补齐隔离环境后58/19项分别通过;不计失败运行或重复运行次数。 +- 新[组合回归说明](D:/AAdesk/202609/airz/database/core-flow-regression.md)及私密安全[verification.json](D:/AAdesk/202609/airz-backups/core-flow-regression/airz-core-flow-1791443749845/verification.json)、tests/red-test/cleanup/最终源码核验。旧安全材料、固定输入/旧缓存和13份旧合成库摘要保持,旧执行摘要不刷新;既有两仓库业务改动保留。没有部署、真实worker/模型、外部消息、提交/推送/PR。 + +**下一开发入口:** 继续RELEASE-001的会话撤销/跨账户权限、消息与助手组合回归,覆盖旧Token失效、资源归属、消息幂等与历史报告上下文;不重复同类告警模拟。63任务/27页面保持;小程序用户自行发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/DEC-POINT待确认及供应商约定保持。H5/真机、真实渠道、Nginx/FPM/TLS恢复、密钥托管/规模RTO/RPO和运营正式签收仍待各自条件。 + +## 历史准备:2026-10-08 真实Linux隔离条件与执行方案(路线已取消) + +最新进度 **1.91 / 1.01**,开发文档 **v1.59 / 0.72**。完成[Linux执行条件与方案](D:/AAdesk/202609/airz/database/worker-supervision/linux-execution-plan.md),状态 **prepared-unbound(待目标绑定)**;用户明确测试机“尚未准备”,本机WSL没有已安装发行版,目标包未冻结。RELEASE-003仍阻塞/正式未验收,63任务/27页面保持。 + +- 固化目标/账号/权限/全新作用域、一次性MySQL与Redis、完整依赖包、有效unit/drop-in、出口约束、可信采样、证据及恢复条件。原unit/spec/探针和全部历史回执保持;现Python主控依赖Windows,真实Linux主控和采集器尚需适配,根composer.lock不存在,八份源码hash不算完整运行包。 +- 分阶段列出原生解析/idle启动/显式stop/SIGTERM/SIGKILL/60秒3次启动限速与受控reset-failed,以及等待期限、owned PID/cgroup、失败停止和恢复证据。worker没有SIGTERM排空处理,.stop自然退出/遗留event不当信号验收;存储中断、enable/开机、长调用替身、断电和外部消息各自绑定授权。 +- 原49项预检/42项证据测试共91项、未传observation的原离线预检及五组14历史回执核验通过。本项纯文档准备不新增镜像测试;60份旧安全材料、35固定输入/参考源码与旧缓存、13旧合成库摘要保持,无新漂移豁免,旧执行摘要不刷新。 +- 新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-linux-preparation/airz-linux-preparation-1791442489789/verification.json)与platform-check/offline-preflight/tests/historical-evidence/receipt-baseline/ACL/final-source-validation,ACL仅当前用户/SYSTEM。正式四字段恒false,无实际Linux采样/服务/worker/模型、生产或项目DB/Redis/网络、外部消息、安装、提交/推送/PR;两仓库业务改动保持。 + +**下一开发入口:** 获得独立测试机信息后按方案阶段一只读核对,完成Linux主控与可信采样适配,再冻结精确目标/包/命令/恢复范围并取得服务操作授权。目标未备时不连接生产替代、不反复扩张同类合成工具。Nginx/FPM/TLS恢复、真实密钥托管/规模RTO/RPO与运营/真机签收待条件;小程序用户发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/规则待确认与供应商约定保持。 + +## 前轮接续:2026-10-08 合成告警链统一预检与证据汇总 + +最新进度 **1.90 / 1.00**,开发文档 **v1.58 / 0.71**。本轮完成来源→状态→outbox→调度→接收→恢复的统一快照预检,52项新测试及原43/63/51/56/49/42回归,共356项通过、34个有审计的测试子进程全部退出。说明见[链路契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-chain.md)、[进度1.00](开发进度.md)。RELEASE-003仍阻塞/正式未验收,63任务/27页面保持。 + +- 新增tests/worker_alert_chain.py、worker_alert_chain_test.py和database/worker-supervision/alert-chain.md;旧工具源码/回执/七旧合成库保持,无新漂移豁免。CLI只显式新合成root、固定绝对alert-sequence.json和now,完整安全历史先重放,再dispatch→receiver→source持三库锁读取一致快照,不调用同步/领取/接收/确认/恢复,不推进clock。 +- 按规范JSON核完整样本时间/摘要、state、outbox和顺序,调度须源有序前缀、每来源确认前缀且后续零尝试pending;接收每来源须源前缀。delivered及人工补确认历史回执须本接收账本真实存在,不能只凭确定性字符串或source simulated_ack证明效果。source损坏/锁忙保留原错误归属,未知/坏账本不当空状态。 +- 报告分别输出ledgerConsistent/outboxDrained/syntheticReady:输入与账本一致不等于排空,排空不等于当前合成样本健康或正式签收。未同步/退避/活动及过期lease/已接收未确认/dead两路径/人工限次/维护/活动或待确认故障/未知健康/样本空档有固定诊断、来源blockedBy和下一动作;不输出claimToken/ownerId。逻辑seal/snapshot摘要与七份当前工具hash只做一致性,不认证来源/权限;now是合成时钟。 +- 52项覆盖序列/state/样本/outbox重算seal后偏差、越序/多lease、普通和人工确认回执丢失、预算/回执区分、v1审计未enable、90/91秒边界、路径/CLI/不写及异常归属。三项owned进程验证三库锁、等写提交后读最新clock和中止检查释放锁/字节保持,全部退出;暂停只测试内。现有SQLite事务可能恢复热日志,不能宣称不可变取证;仅干净合成库字节保持已验证,不读历史库验证现场。 +- 新公开24样本7事件形成pending/unconfirmed/dead/recovered/complete/stale六份报告;先接收超时再耗尽成dead、另来源永久失败,两路径人工恢复,最终7模拟delivered/7唯一效果/2审计。每次预检三个干净库前后字节保持,source贯穿保持。排空时syntheticReady=true,样本91秒过旧仍outboxDrained=true但syntheticReady=false;四正式验收字段始终false。 +- 私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-chain/airz-alert-store-1791440789040/verification.json)及tests/receipt-baseline/red-tests/red-source-attribution/final-source-validation与六份报告,ACL当前用户/SYSTEM。首次异常归属修正前报告另存initial-stage-evidence、首次现场库保持,最终演示用其下第二个新合成目录。39份历史安全材料/16固定输入/七旧库摘要保持,五组14回执/21不同源码按原catalog核验,旧执行摘要不刷新。 +- 无生产/项目MySQL/Redis/网络/env或私密log/key/config、实际采样、服务启停、worker/模型/外部消息、安装或提交/推送/PR。Python-B/旧缓存和两仓库业务改动保持;本地合成SQLite/Windows进程证据不算Linux/systemd/断电耐久或真实投递验收。 + +**下一开发入口:** 合成告警链已汇总,转向真实Linux隔离验证的条件核对与冻结执行方案。先明确测试主机/目录/账号、允许服务与信号范围、可信采样、渠道/收件目标和独立证据位置,再按授权执行,不继续扩大同类模拟状态工具。Nginx/FPM/TLS恢复、真实密钥托管/生产规模RTO/RPO及运营/真机签收仍待条件;小程序用户发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/规则待确认与供应商约定保持。 + +## 前轮接续:2026-10-08 dead事件对账与人工恢复审计 + +最新进度 **1.89 / 0.99**,开发文档 **v1.57 / 0.70**。本轮完成RELEASE-003模拟回执对账与同事务人工恢复审计,43项新测试/9个owned子进程、原63/51/56/49/42回归通过,共304项/31测试进程全部退出。说明见[恢复契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-recovery.md)、[进度0.99](开发进度.md)。RELEASE-003阻塞/正式未验收、63任务/27页面保持。 + +- 新增tests/worker_alert_recovery.py、worker_alert_recovery_test.py与database/worker-supervision/alert-recovery.md;必要修改共享worker_alert_dispatch.py,兼容旧v1/新v2。默认初始化及receiver仍v1,仅在新合成dispatch显式enable追加recovery_audit;DDL/版本/seal同事务、幂等,坏库/陌生版本不清空重建。历史四库不迁移、不改字节。 +- 仅dead可review:本模拟接收账本有匹配回执→confirm-received,只补模拟确认;正常账本明确无此event→grant-retry,只在当前attempts基础上再领取一次,默认延迟5秒,人工grant每事件最多3次。attempts不清零;首次永久失败1次也只grant到2次,不恢复原自动5次预算。dead仍阻塞同来源,事件ID/来源顺序保持,次数耗尽后有回执仍可补确认;旧finishedToken不能冒充正常confirm。 +- 方案覆盖作用域/政策/事件/状态/预算/人工次数/clock/审计头/回执,execute锁内重新核对,过期方案或迟到接收拒绝。锁序dispatch→receiver→source,接收/来源锁持到恢复commit;状态、预算来源、时钟、审计与seal在同一dispatch事务提交,SQL/commit失败一起回滚,没有跨库写入。hash/令牌/request/actor别名不认证来源或授权,可信本地目录约束保持。 +- 32位小写hex requestId,同plan/actor/固定reason/now重试changed=false,仅一条审计,正常调度推进后仍可重试旧请求;同键改参数冲突。actor安全别名/reason枚举,不保存私密自由文本;审计保留安全before/after状态和预算、回执及hash链,加载核对链/预算/当前状态。CLI固定绝对plan文件名和显式--apply,安全错误不回显正文。 +- 43项涵盖对账/单次预算/三次上限/lease/非dead/过期快照/请求冲突/类型/坏receiver/审计篡改/IO回滚/CLI。7项进程测试9个owned Python进程,4次enable/execute提交前后终止,确证热日志/脏页、重开回滚与提交后幂等;同键/异键并发及正常调度/接收/来源锁竞争通过。连同旧调度12/存储10共31个测试进程全部退出,不记Linux或断电耐久验收。 +- 公开24样本7事件,新现场两个来源首事件先dead,一条已接收、一条未接收;分别补确认/grant并幂等重试,人工恢复不改source/receiver字节。随后正常调度7模拟delivered/7唯一接收效果/其他状态0、2条审计,源字节/来源顺序保持。33份旧安全材料、13份未改输入、四份旧合成库摘要保持;dispatch源码必要漂移单列旧/new hash并关联新63项回归,上一项执行回执/摘要不刷新。五组14回执/21不同源码按原catalog核验,原密钥漂移豁免不扩大。 +- 新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-recovery/airz-alert-store-1791439388039/verification.json)及tests/receipt-baseline/red-tests/final-source-validation、三个SQLite现场,ACL当前用户/SYSTEM。formalAcceptance/liveSystemdVerified/externalDeliveryVerified/hostPowerFailureVerified均false;零生产/项目MySQL/Redis/网络/实际采样/服务启停/worker/模型/外部消息、安装或提交/推送/PR。Python-B/保留旧缓存和两仓库既有业务改动保持。 + +**下一开发入口:** 合成告警链统一预检与证据汇总,核对来源→状态→outbox→调度→接收→恢复的完整快照和剩余条件,避免把局部模拟通过当作正式签收。真实Linux信号/守护/开机、可信实际采样、授权渠道/收件目标、Nginx/FPM/TLS恢复、实际密钥托管/生产规模RTO/RPO及运营/真机签收仍待条件。小程序用户发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/规则待确认及供应商约定保持。 + +## 前轮接续:2026-10-08 outbox调度租约、失败退避与模拟接收幂等 + +最新进度 **1.88 / 0.98**,开发文档 **v1.56 / 0.69**。本轮完成RELEASE-003有界调度与独立模拟接收,63项新增测试/12个owned子进程通过,原51/56/49/42回归和五组历史核验保持。说明见[调度与接收契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-dispatch.md)、[进度0.98](开发进度.md)。RELEASE-003阻塞/正式未验收、63任务/27页面保持。 + +- 后端新增tests/worker_alert_dispatch.py、worker_alert_dispatch_test.py与database/worker-supervision/alert-dispatch.md。新合成本地目录追加alert-dispatch.sqlite3/alert-receiver.sqlite3,原alert-store.sqlite3 v1/源码/旧回执保持;三个账本独立事务,调度从已提交outbox按eventId幂等同步,不改source simulated_ack/state。 +- DELETE日志/FULL同步/BEGIN IMMEDIATE,锁内核对最新源快照,claim同步新事件/单调时钟/领取同事务;状态pending/leased/delivered/dead严格校验,损坏/错scope或policy/陌生schema/WAL/缺库/孤立日志拒绝,不自动清空重建。目录/库/sidecar沿用可信本地路径/链接/reparse/硬链接元数据/64MiB门禁,摘要/合成令牌不认证来源,禁止网络盘。 +- 合成默认租约30秒、最多5次领取、失败退避5/10/20/40秒且上限60秒、每轮limit1–20,两个来源实际每轮最多2条。每来源只领最早未delivered事件,dead仍阻塞同来源后续,其他来源可推进;永久失败/次数耗尽保留dead、不无限重试。显式合成now单调,令牌当前且now,位于本轮专属restore-interruption-rehearsals父目录。607合成行(601 config、1模型/3凭据/1会员/1资料)、26表/8触发器,5GCM密文/1NULL;身份明文123456.78元保持。模型false/URL127.0.0.1:1,只加载Secret/Env纯类、不读默认/生产.env/私密dump/真实key,不运行worker/模型。 +- 三个真实mysql.exe客户端各由主控核对本机连接ID/owned PID后强制kill:前11完整表块保留DDL/601 config;config前32完整INSERT显式事务时,session见32/另一连接0且INNODB_TRX实际活跃,终止后回滚32行但11表保留;全SQL26表已完成但本地成功回执未写,终止后全数据/结构其实完整,独立密钥认证通过。暂停输入/显式事务是明确测试注入,不覆盖任意半语句、服务器断电或磁盘故障。 +- 三中断目标重复restore均RESTORE_TARGET_NOT_EMPTY且前后摘要保持,不自动清库/续灌;实际重启owned MySQL后三现场/来源持久化,未提交行不复活。另建空目标全26表/全部行/列/索引/外键/8触发器和密钥恢复一致,重复恢复拒绝,旧现场和源库全程保持。 +- SQL371203字节/gzip18876字节,小本机样本完整恢复1.235秒:预检0.063、SQL导入1.031、结构数据0.094、DB解密0.047,空目标门禁低于测量分辨率;备份0.109秒、故障后MySQL重启1.922秒、92项清理前14.203秒/cleanup0.375秒。单调时钟阶段总和核对;来源无并发写,不能记生产RTO/RPO或真实规模承诺。 +- 私密最终证据`D:/AAdesk/202609/airz-backups/restore-interruption-rehearsals/airz-key-recovery-1791429283246/verification.json`、`cleanup.json`、三份interruption-*.json和`final-source-validation.json`,六源码hash/备份hash/阶段耗时齐备。14隔离负例与错误key/损坏包/manifest/cnf/来源即目标守卫通过,父/key/gzip/config/MySQL数据ACL实测一致;无密钥/凭据明文回执。全部owned客户端和服务停止、3320/6400释放,6库/备份/key/事件日志私密保留。 +- 共享工具53项回归新环境证据`D:/AAdesk/202609/airz-backups/restore-interruption-regression/airz-key-recovery-1791429315094/verification.json`及cleanup,MySQL3321/Redis6401停止、端口释放,默认服务未处理。两个首轮均完整通过,Python-B/旧缓存不重试删除;无系统/全局安装。此前1.81历史回执保持,不修改旧源码摘要来冒充新验证。 +- 零生产连接/worker/模型执行;未生产发布/小程序代发/账号绑定改密/策略/积分迁移。身份证明文/后台脱敏、课程整篇一次已读、小程序用户发行、积分和供应商约定保持。 + +**下一开发入口:** RELEASE-003部署/恢复手册整合及证据校验入口。先阅读r2发布/定向恢复、密钥、队列、导入中断说明和安全回执,形成可复核的入口与当前证据范围,区分历史执行hash/当前源码及正式未验收条件;只读核验不启动生产维护或模型/worker。Linux/Nginx/FPM/TLS、systemd信号/守护/开机恢复、外部告警、实际密钥托管/生产规模耗时和正式签收仍待各自条件;不用默认.env/生产dump/key,不整库覆盖后续数据或复活Token,不重复r2/账号改密绑定/策略积分,小程序仍用户发行。 + +## 前轮接续:2026-10-08 队列进程生命周期隔离演练 + +最新进度 **1.82 / 0.92**,开发文档 **v1.50 / 0.63**。承接密钥恢复,本轮完成RELEASE-003队列进程生命周期隔离演练,76项通过/134子进程审计;说明见[队列演练](D:/AAdesk/202609/airz/database/queue-lifecycle-rehearsal.md)、[进度0.92](开发进度.md)。任务/队列/心跳业务源码未改;RELEASE-003整体阻塞/正式验收及63任务/27页面保持。 + +- 后端新增`tests/queue_lifecycle_rehearsal.py`、`tests/queue_lifecycle_probe.php`及`database/queue-lifecycle-rehearsal.md`。先检查两仓库状态及父/就近指令,无项目AGENTS;保留所有既有未提交工作,不提交/推送/PR。仅演练工具/说明和进度交接文档变更。 +- 新MySQL5.7.26/3319、Redis5.0.14.1/6399、PHP7.4.3、ROOT/唯一队列/合成库,26表8触发器无数据schema。模型Config/Env始终false、api_key空、URL127.0.0.1:1;双入口18项目标/模型/.env拒绝,真实客户端未加载、网络调用函数禁用。 +- 真实AnalysisWork/AnalyzeAssessment/AnalysisTasks/冻结发布/Redis connector/心跳执行。成功/中断/迟到路径仅显式fake-policy进程内class_alias策略返回值和客户端,实际启用策略/供应商能力未验收;常驻command用测试Input stop文件有界退出,不等于Linux信号/systemd。产品解释/助手只覆盖真实空闲扫描,没有任务夹具。 +- 实际强制终止本轮持有的进程:领取后fire前退出reserved真到期重投,delivery attempts1→2但业务attempt1;运行中有效租约不改/重复消费不调用,过期AI_TASK_INTERRUPTED不自动收费重试、未知用量NULL,同键明确重试新task且attempt2。旧客户端阻塞时新进程发布,释放旧响应仅补原task用量,新报告/日志/通知保持。 +- 心跳新owner接管后旧退出不能覆盖,有界退出stopped、强制kill不伪报stopped、180秒显式时间stale、缺键stop不重建;6安全字段/TTL核对。自建MySQL实际停机/重启同command恢复,Redis实际停机/无持久重启后按DB/超过30秒边界补投。业务租约过期/派发时间及只读stale测试有显式时间注入,生产配置不改。 +- 最终22非目标表/结构保持、三队列0;1合成会员/1资料/7评估会话/15日志/9成功或失败通知。私密证据`D:/AAdesk/202609/airz-backups/queue-lifecycle-rehearsals/airz-queue-lifecycle-1791428470406/verification.json`、`cleanup.json`和`final-source-validation.json`;13源码摘要齐备,134成功进程审计,stderr全空。全部owned进程/MySQL/Redis停,3319/6399释放,默认服务不处理,合成数据/事件/日志私密保留、ACL实测通过。 +- 四轮早期脚本适配失败尾号1791428313479/1791428354628/1791428368512/1791428403444现场和cleanup保留,不计成功;两级Config、PHP7禁用函数检查、通知版本ID、假正文数字已修正,全新完整重跑76项通过,不改业务校验。Python-B、此前被审批拒绝的旧缓存仍保留,不换工具重试删除。 +- 零生产连接/活动库worker/真实模型网络调用,未生产发布/小程序代发/账号绑定改密/调整策略/积分迁移。身份证明文/后台脱敏、课程整篇一次已读、小程序用户发行、积分和供应商约定保持。 + +**下一开发入口:** RELEASE-003合成全库恢复的导入中断、部分新目标保留/另建空目标恢复及耗时记录。先审阅`tests/key_recovery_rehearsal.py`及恢复门禁,用全新合成库/私密目录/单独合成密钥,不复用旧夹具或生产dump/.env/密钥;模型关闭且地址127.0.0.1:1,不启动活动库worker。不整库覆盖已有数据或复活已撤销Token。Linux/Nginx/FPM/TLS、systemd守护/信号/开机恢复、外部告警、实际密钥托管及正式签收仍待其条件;不重复既有生产r2,不绑定账号/改密/策略/积分,小程序仍用户发行。 + +## 前轮接续:2026-10-08 合成加密资料与单独密钥恢复 + +最新进度 **1.81 / 0.91**。承接r2恢复演练,本轮完成新合成环境的全26表/8触发器备份恢复及单独AES密钥恢复,53项通过;说明见[密钥恢复演练](D:/AAdesk/202609/airz/database/key-recovery-rehearsal.md)、[进度0.91](开发进度.md)。当前AES持久字段为模型api_key/api_secret,身份证按既有业务约定明文、后台读取脱敏;本轮没有修改业务加密源码或生产密钥。RELEASE-003整体/正式运营真机验收保持待办,63任务/27页面保持。 + +- 后端新增`tests/key_recovery_rehearsal.py`、`tests/key_recovery_probe.php`及`database/key-recovery-rehearsal.md`。复制并核对既有Secret/Env纯类,独立Env前缀和显式key文件,不加载框架、默认/生产.env或生产私密dump。双入口先拒绝正式库/远程地址/默认端口/模型开启/外部URL,mysql客户端cnf也精确核对。 +- 全新本机MySQL5.7.26/3318、Redis5.0.14.1/6398和三座新合成库。合成源库无数据schema后加入一个禁用模型/三凭据、一个合成会员/明文资料和配置标记;五非空密文含中文/换行/NUL,一secret为NULL。26表全部行及列/索引/外键/8触发器实际恢复一致,金额123456.78元保持,来源全程不变。 +- 数据gzip/ciphertext快照与随机合成密钥分文件私密保管;封存原密钥路径,只用单独备份复制的新key文件恢复并解密。缺失/非法Base64/短/错误密钥,损坏包/manifest/密文、MySQL cnf漂移、非空目标和重复导入均明确拒绝,拒绝前后目标保持;跳过文件摘要的篡改密文仍被GCM认证拒绝。恢复库故障夹具已撤销并核对完整。 +- 最终证据`D:/AAdesk/202609/airz-backups/key-recovery-rehearsals/airz-key-recovery-1791427161829/verification.json`及`cleanup.json`,53检查/两个工具源码hash/纯类hash齐备;目录和数据包/密钥ACL实际通过,安全回执不含密钥或凭据明文。自己的MySQL/Redis停止,3318/6398释放;合成库/备份/密钥私密保留,不复用旧夹具。零生产连接/真实worker/模型调用。 +- 首轮尾号1791427042626失败回执保留:系统Windows PowerShell安全模块无法自动加载,ACL核验误读空结果;改用显式已安装pwsh及Stop策略,全新环境完整重跑成功,不安装/升级软件或放宽权限门禁。Python使用-B,本轮未新增字节码;前轮被自动审批拒绝清理的旧缓存仍保留,不重新处理。 +- 保留两仓库既有业务改动,未提交/推送/PR、生产发布/回退、小程序代发、账号绑定/改密/策略/积分迁移。同步文档并纠正database/README“card_no仍加密”的过时一句,实际明文约定和源码不变。 + +**下一开发入口:** RELEASE-003队列进程生命周期。审阅任务/租约/心跳和现有隔离测试,使用新合成库/Redis和受控测试进程验证退出、重启、补偿、迟到结果及重复任务;模型继续禁用,地址127.0.0.1:1,不启动真实analysis:work连接活动库。生产Linux/Nginx/FPM/TLS/systemd/外部告警、恢复耗时及导入中断、实际密钥托管与正式签收仍待各自条件。不能整库覆盖已有数据或恢复已撤销Token;小程序仍用户发行,积分规则/供应商/真实资料依既有约定。 + +## 前轮接续:2026-10-08 r2 隔离实际部署与定向恢复 + +最新进度 **1.80 / 0.90**。已完成上一检查点要求的新显式隔离r2增量部署、异常中断及实际定向恢复开发演练,最终157项通过;生产r2既有发布不重复执行。详见[开发进度0.90](开发进度.md)、[隔离演练说明](D:/AAdesk/202609/airz/database/release-rehearsal.md)。RELEASE-003整体仍有守护/告警、密钥及灾难恢复等证据待补,正式运营/真机验收保持待办,63任务/27页面保持。 + +- 后端新增`tests/release_rehearsal.py`、`tests/release_rehearsal_runner.py`、`tests/release_rehearsal_db.php`。显式config、ROOT标记、非默认本机端口及合成库名先于连接校验;不读默认/生产.env,不启动analysis:work,模型关闭且URL固定127.0.0.1:1。冻结生产脚本未改,不用于Windows演练。 +- 全新MySQL5.7.26/3317、Redis6397、PHP7.4.3及HTTP18177,schema来自仓库无数据结构,六座新合成库/ROOT/检查点。运行包仍冻结13文件,71依赖/保护保持;合成旧源码仅增加无行为注释,不是历史生产before复刻。16权限节点/3模板、8FAQ、课程intro及资源版本实际apply/恢复,无整表/整库导入。 +- 正常/重复部署、文件第5项退出、DB提交前退出及提交回执丢失续跑、site版本后退出、恢复DB提交前后/第5文件退出与重复恢复通过。新增FAQ/课程正文/资源版本/源码编辑、组绑定及发布后新角色引用新节点均安全拒绝,拒绝前后数据库保持。 +- 实际定向恢复保留发布后的合成admin密码、积分、浏览量、已读时间、通知、新配置及另一FAQ;26表列结构保持。10本机HTTP请求/2正文检查及双入口12隔离拒绝通过。零生产连接、零worker/模型执行,本轮自己的MySQL/Redis/PHP服务停止,端口释放,默认服务未处理。 +- 最终私密证据`D:/AAdesk/202609/airz-backups/release-rehearsals/airz-release-rehearsal-1791425757362/verification.json`及`cleanup.json`,三个工具源码hash已记录;尾号7363—7367为各故障场景。更早失败/143项首轮目录保留且不作为最终成功证据,原因和修订见演练说明。合成库文件/检查点私密保留,不作为可直接复用夹具。 +- 收尾文档/源码摘要、UTF-8无BOM、空白/链接、63任务/27页面核对通过,回执为同目录`final-source-validation.json`。自动审批拒绝清理后端`tests/__pycache__/release_rehearsal_runner.cpython-311.pyc`的组合命令,仅返回`blocked by policy`;未换工具重试,缓存未跟踪保留,不影响演练或服务清理结果。 +- 本轮仅新增演练工具/说明及文档,前后端原有未提交业务改动保留,未提交/推送/PR、生产发布或小程序代发。账号已改密码、正式绑定、策略及积分业务规则保持既有约定;小程序仍用户发行、暂不正式验收。 + +**下一开发入口:** 继续RELEASE-003可隔离推进的合成加密资料/密钥备份恢复、队列进程生命周期及恢复手册证据;先审阅对应实现、检查两仓库状态和新本机端口,仍用新合成环境,不复用生产私密dump/密钥、默认.env或真实worker。生产Linux所有者/Nginx/FPM/TLS/systemd与外部告警、整库灾难恢复及正式验收按各自条件推进,不把本批r2合成演练扩大为全部RELEASE-003完成。不要重复生产发布、绑定账号/改密/调整策略或迁移积分。 + +## 上轮收尾检查点:2026-10-08(准备新会话,历史) + +本轮仅保存交接,不新增开发或验收版本。最新进度保持 **1.79 / 0.89**;后台与内容 r2 已生产发布,具体范围、备份和回执见下方最新接续。历史“等待授权/未部署”已被本次发布记录取代,本批授权已经执行完毕,不重复发布。 + +- 工作目录:前端 `D:/WorkSpace/cyun/ai融资`,后端 `D:/AAdesk/202609/airz`;线上管理端入口为 https://airz.hqling.cloud。生产服务/PID/队列记录只是发布当时快照,本轮未重新连接生产。 +- 下一开发项:在全新显式隔离环境完成本批增量部署、异常中断及**实际定向恢复演练**,补充 RELEASE-003 开发证据。生产回退守卫干跑不等于实际恢复演练,也不等于正式业务验收。 +- 隔离约束:使用新合成库与合成资料、独立本机非默认 MySQL/Redis 端口和配置,模型关闭且地址固定为 `127.0.0.1:1`;不加载默认或生产 `.env`,不启动真实 worker,不将生产私密备份导入测试环境。现有发布执行脚本硬编码生产路径,不能直接用于本机演练,先审阅并改为显式隔离目标。 +- 两仓库已有未提交源码、测试和文档改动全部保留;前端 `packages/content/help/help.uvue`、`packages/content/search/search.uvue`、`packages/content/services/help.uts` 已有改动。开始修改前检查各仓库状态及适用指令;不自动提交、推送或创建 PR。 +- 用户约定:小程序已由用户发布,后续仍由用户自行发行,暂不正式验收;课程整篇连续阅读、一次已读,不恢复章节交互。用户已自行更改 admin 密码,不使用旧临时密码或再次重置;不自动绑定正式账号、调整运行策略、迁移积分或调用收费模型。 + +**新会话起手:** 先读本节与下方最新接续,再读[开发进度](开发进度.md)0.89、[后台内容增量发布清单](后台内容增量发布清单.md)及后端适用指令,从上述隔离演练继续。私密备份与执行证据的位置已在下方列明;凭据不写入交接文档。本轮没有开展下一开发项。 + +## 最新接续:2026-10-08 后台与内容 r2 已生产发布 + +最新以[开发进度](开发进度.md)1.79/0.89及[发布清单](后台内容增量发布清单.md)的已执行记录为准。用户回复“同意授权”后,本批已通过宝塔Playwright完成维护;下方“等待本批授权/未部署”均为历史快照,不再重复申请本批授权或重新部署。 + +- 目标https://airz.hqling.cloud、/www/wwwroot/xctai.cn、127.0.0.1:3306/airz保持。09:29复核,09:35:21完成备份,09:35:46发布,09:37:37恢复入口/worker,09:39:34最终观察,均+08:00。13运行文件上线、60依赖和10保护保持、AssessmentRecords.php保留已审阅线上哈希;原始预检ok=false仍保留,最终r2门禁另有证据。 +- 16权限节点ID134—149,三模板ID6/7/8(运营v1/客服v2/技术v5),父根1;总147节点/8组/1绑定、复检0增量。未创建/换绑账号,用户已改admin密码保持。 +- 首次导入8 FAQ,ID5—12按profile/password/phone/assessment/result/amount/files/draft顺序,公开GET /api/v1/help/faqs返回8条。课程credit-basics/ID1仅intro及更新时间维护,正文/稳定ID/顺序/推荐/发布/进度保持;新version729e675e4e67da195fd7a77a47b9c1d838d60748d9763b2673317f3cb0f318b8。整篇连续阅读、一次已读保持,不重复import_content。 +- fa_config ID4/version和线上site.php/version为20261007-admin-content-r2,只同步目标字段;.env/其余配置、ai_runtime_policy缺行及环境默认Flash/20次/3尝试保持。File __menu__精确缓存已清,受影响模板缓存当次不存在;未清Redis或修改Nginx长期配置。 +- 22本机HTTPS烟测+20公网可信TLS检查通过;84文件after、15表结构及26表数据核对,21非目标表、账号/绑定/策略/学习进度/模型日志保持。0模型调用,不触发真实重试。回退干跑通过但未实际回退,不记RELEASE-003恢复演练/正式业务验收。 +- 私密服务器备份/root/airz-admin-content-20261007-r2-20261008,目录700/文件600,含13before、site、权限/内容before/after、26表完整数据库gz、受限脚本与回执。完整dump SHA256 be8791b009fb236bc6b0500b94f177ffb2906060d2d41fe7bbd3f6e1dbb4c09e。禁止整表/整库覆盖后续数据;回退先重新审阅当前状态/引用/编辑,在停写/空闲worker窗口内按守卫处理目标字段/新增ID和源码。远程database.private.ini/mysql.private.cnf及站点暂存文件已清理。 +- 最终analysis/FPM/Redis active,PID3489163/3488235/552222,三队列0,心跳ready/idle且0秒新鲜;恢复后journal最多300条样本0,不推断全时段无错。宝塔会话已退出、清cookies、关闭;未用网站admin密码,未保存面板凭据。 +- 本机安全证据在D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/execution-20261008/,重点[release-receipt.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/execution-20261008/release-receipt.json)与[final-verification.json](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/execution-20261008/final-verification.json)。冻结包/manifest/verifier保持;大段命令超过Linux参数限制时尚未建远程目录,已分4段传输并整体核对,不改变发布范围。 + +**下一开发入口:** 在新显式隔离环境做本批增量部署、异常中断与实际定向恢复演练,完善RELEASE-003开发证据;不能把生产干跑当实际演练。不要再次发布本批、绑定正式账号/重置密码或修改运行策略。小程序由用户自行发行,暂不正式验收;H5/积分/供应商/真实业务资料及运营/真机验收依各自条件推进。两仓库现有业务改动全部保留,不提交/推送/PR;63任务/27页面保持。 + +## 同日收尾:2026-10-07 22:14(只读复核、凭据清理和本批确认单) + +承接下方1.78/0.88,不新增开发/正式验收版本。宝塔专用Playwright会话再次登录,22:14:43/22:14:55+08:00执行原冻结内存只读脚本;84文件before/属主/权限、15相关表、19权限计划、8缺FAQ/7现有内容slug、ID1课程原版本/简介/正文/进度、环境/资源版本/策略全部保持,r2共13个观察门禁通过。服务PID2525192/2525169/552222保持active,活动任务/调用与三队列0,心跳idle且0秒新鲜;15分钟最多300条worker journal样本仍0,不能推断全时段无错。原始主预检ok=false及已审阅换行/缺FAQ例外保持,未停写/停worker、备份、上传包、发布或业务/模型写入。 + +临时`admin-content-preflight-20261007/panel.private.json`和`refresh-command.private.js`已精确删除;宝塔专用会话退出关闭,无凭据写入仓库/回执。r2归档新增`refresh_readonly.py`、`preapproval-main.json`、`preapproval-supplement.json`、`preapproval-review-r2.json`与[维护执行确认单](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/维护执行确认单.md)。初次本机审阅误将DB版本ID4转为字符串而拒绝,已改为原类型精确比较;初次`preapproval-review.json`保留,修正后全通过,无重复数据库连接。冻结包/manifest/verifier和两仓库业务源码均保持,84后端/28前端本机哈希核对通过;不提交/推送/PR。 + +**接续行动:** 按确认单向用户取得r2本批13运行文件、19权限增量、8FAQ首次导入、ID1课程intro和资源版本同步的具体维护窗口授权。此前入口/反馈维护已完成,不重复申请其授权;本批新增生产数据范围依据用户提供的AGENTS.md第8节确认。批准后再窗口复核、停写/空闲worker、私密备份、逐项发布与零模型烟测;不操作账号/已改密码、角色绑定或策略,小程序仍用户发行、暂不正式验收。 + +## 新会话接续检查点:2026-10-07(生产只读实测与r2计划,未部署) + +最新以[开发进度](开发进度.md)1.78/0.88和[后台内容增量发布清单](后台内容增量发布清单.md)为准。用户补宝塔登录方式后已用Playwright完成生产只读实测;没有发布、apply、内容/策略/账号修改、模型调用或worker执行,无提交/推送/PR和正式验收。历史“待登录”已解决,具体生产维护仍待本批范围授权,不扩大此前反馈/入口/密码发布授权。 + +- 主回执21:50:51+08:00、补充21:57:17+08:00,精确目标/www/wwwroot/xctai.cn及127.0.0.1:3306/airz,Python3.12.13/PHP7.4.33/MySQL5.7.44-log。84文件:13运行全待更新、60依赖/10保护匹配,AssessmentRecords.php仅4行CRLF/LF差异,规范LF逐字节相同;保留线上SHA256 6e294e8db263ad5a705ac308741f02fd1dfd12a191c9a20270d0039e49aecc71,不纳入runtime。原始ok=false回执保留,r2显式审阅变体及缺FAQ计划,不删门禁。 +- 15相关表规定结构/索引/外键/InnoDB通过;权限真实131节点/5组/1绑定、根1,待补16节点/3正式模板共19项。不能照搬测试63项/根37,不绑定admin或其他账号。策略ai_runtime_policy缺行,合法环境默认Flash/20次/3尝试,环境开启;不创建/删除/调整现行策略,不调用模型或供应商。 +- FAQ type6总行0,8 slug均不存在;改计划为首次导入8条已冻结FAQ,原两FAQ答案编辑取消。4资讯/3课程均唯一现有,不能重复import_content。credit-basics已发布/推荐ID1,baseVersion 009a6ac642d2be36f89a867dc42c0f4df9c86954f498fff0fb510f51f9cb6946,原intro匹配参考,3稳定ID/正文摘要与进度0已记录;只改简介,整篇一次已读保持。资源版本DB id4/value=1.0.2而site.php=1.0.1,独立计划同步为20261007-admin-content-r2,仅version字段,不refreshFile整体生成配置。 +- 三服务active,实际PID analysis2525192/FPM2525169/Redis552222,活动processing/pending/streaming0、三队列0、心跳idle且1秒新鲜。worker日志为journal,最近15分钟最多300条样本实际0,不能宣称全时段无错误。窗口内重新检查,不把快照当空闲保证/部署许可。 +- 新受限材料D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/,ACL JUN/SYSTEM:runtime/maintenance仍原13/7文件和哈希;r2 manifest dad26e8d1e8067d840f9dc8ed0b7d062798239fb5d8736f26cba59a6c4aedca0,verifier 5bcfed4dae360fde7c7a18d2dd737d30749cb5dd346acc058907526686260b0e。13真实before/属主/权限、60依赖+1精确审阅变体/10保护、production/supplemental回执与权限/内容/资源计划齐备。包/84后端/28前端核对及5类变体门禁验证通过,合成文件清理,不重复业务全量测试或小程序编译。 +- 宝塔终端画布改从实际Playwright WebSocket捕获内存脚本回执;直接刷新曾缺ws_callback,经首页→终端进入恢复。专用面板会话显式加载既有ignoreHTTPSErrors配置处理证书,未改站点/系统认证;无上传/生产检查文件/框架初始化。面板仅正常登录/访问审计,PDO会话只读,不输出凭据/会员资料/模型正文/日志原文;面板凭据不写文档。用户已自行修改网站admin密码,不使用旧临时密码、不重置。 +- 下一步:按具体授权在维护窗口复核、停写/空闲worker、私密备份后,13运行文件+资源版本同步+19权限增量+8 FAQ首次导入+ID1课程intro维护,零收费烟测及恢复观察。不包含账号绑定/密码/策略/积分/供应商接入,小程序由用户发行、暂不正式验收。保留两仓库既有工作,不提交/推送/PR;63任务/27页面保持。本轮未启停本机服务,历史5175/PID3484不作为当前活动服务。 + +## 新会话接续检查点:2026-10-07(生产只读预检准备,待宝塔登录) + +最新以[开发进度](开发进度.md)1.77/0.87及[后台内容增量发布清单](后台内容增量发布清单.md)为准。本轮完成内存只读预检脚本与本机拒绝检查,**尚未登录宝塔或读取生产文件/数据库**。原13文件runtime包、7文件maintenance包及manifest保持,不发布、不停写、不执行迁移、内容维护、权限绑定或模型调用;保留两仓库既有工作,未启停本机服务,不提交/推送/PR。 + +- 本轮新受限目录 `D:/AAdesk/202609/airz-backups/admin-content-preflight-20261007/`,ACL仅JUN/SYSTEM。`server-probe.py`/`database-probe.compiled.php`将核对84文件、15相关表、实际权限根/节点/模板计划、15个种子slug、三条内容ID/版本/目标字段、策略缺行兼容、服务/PID、15分钟最多300条worker日志的错误计数、活动调用与Redis三队列/心跳。只返回安全摘要,不回显.env、管理员凭据、会员资料、模型正文或原始日志。 +- 独立PDO使用当次明确服务器.env,精确拒绝非`127.0.0.1:3306/airz`及错误站点,MySQL会话只读事务;候选纯库按原manifest哈希冻结后在内存加载,无ThinkPHP初始化、FOR UPDATE、apply或导入。Python脚本和PHP代码通过终端内存运行,不上传/解压维护包、不创建生产检查文件。观察仅为当次快照,不能替代维护窗口内复核/备份或授权。 +- 本机6类检查通过:编译Python/PHP语法、错误现存根路径在子进程前拒绝、本机缺生产根在读.env前拒绝、合成错误DB目标与损坏纯库在假PDO构造前拒绝、安全压缩回执传输。无真实数据库连接,SQL/当前结构/版本/队列尚未实测。安全回执为`prepared.json`、`probe-spec.json`和`validation.json`,不把本机检查计为生产预检通过。 +- 历史H5的5175/PID3484在本轮末未见对应监听/进程,仅保留历史记录,未重启预览。当前登录条件未满足:缓存Playwright CLI可用但无打开会话;此前面板私密配置已清理。浏览器会话查询对Chrome/Edge返回`unsupported Codex auth method: apikey`,没有可用的在应用浏览器页签;未修改认证设置或升级工具。已向用户请求当前宝塔入口和面板凭据,**不需要网站admin密码,不使用旧临时密码,也不再次重置**。 +- 下一步:收到宝塔登录信息后用Playwright登录、核对终端和目标,在内存运行冻结脚本并将安全回执保存本机。有依赖/保护漂移、权限计划冲突、内容重复/版本差异时先审阅;补实际before哈希及具体备份/发布/恢复范围后,按明确授权执行生产写入。小程序仍由用户发行、暂不正式验收,课程整篇连续阅读、一次已读;63任务/27页面和开发/验收状态保持。 + +## 新会话接续检查点:2026-10-07(后台/内容/评估增量发布准备) + +最新以[开发进度](开发进度.md)1.76/0.86及[后台内容增量发布清单](后台内容增量发布清单.md)为准。候选包及预检/备份/发布/恢复清单已准备,本轮零生产连接/写入、零模型/worker/DB执行,无正式验收、提交/推送/PR。用户已自行修改线上admin密码,不能使用旧临时凭据或重置;小程序由用户自己发行、现有发布保持,课程整篇连续阅读、一次已读,63任务/27页面保持。 + +- 根据部署记录识别10月4日后端包、10月5日7反馈/消息文件及迁移、10月7日3根入口;本机7反馈文件与已部署artifact manifest逐字节哈希相同。10月4日完整生产快照尚未取得,当前服务器文件没有读取;后端560d089只是仓库参考,不作为生产before。 +- 受限长期材料 `D:/AAdesk/202609/airz-backups/admin-content-release-prep-20261007/`,JUN/SYSTEM ACL:runtime.zip仅13文件(四评估/八内容/一服务JS)、maintenance.zip独立7维护/种子/纯依赖文件;61个配套文件与10个已部署入口/反馈文件只读核对。完整哈希/门禁在manifest与清单;不整体覆盖工作树、site.php、.env、上传/依赖/运行时,不执行积分迁移或供应商接入。 +- 前端28个相对1723363业务源码哈希冻结,不等于已知小程序线上差异;实际上传版本/源码hash未知,须完整项目重新编译/核对,由用户发行。课程正文/顺序/稳定ID保持,planned三处仅FAQ password/phone答案和credit-basics简介;重复种子导入不更新已有条目,生产ID/版本/before尚待只读定位,写入需具体授权。 +- 仓库外verify_release.py要求显式可信manifest哈希及目录,只校验包/显式源码/指定生产文件,标准库无框架初始化/DB/网络/部署。20归档条目/84后端/28前端哈希通过,14包内PHP lint/2JS/2种子JSON通过,四种损坏/错误目标/缺文件拒绝通过,负例精确清理;未重复0.82—0.85业务专项、未新编译或启动服务/浏览器,原5175/PID3484保留。UTF-8无BOM/LF、diff、链接及包/保护项/种子非目标字段保持检查通过。 +- 安全回执为归档中的manifest.json/package-summary.json/package-verification.json/validation.json/frontend-source-reference.json/content-maintenance-plan.json;材料不含凭据或业务原行。runtime SHA256 c1c3adb13d82c89b2bf280911266b951a50da59b268e535962d2eca213477a91,maintenance SHA256 576f36650b86e08b6d9f0ee5da34c0a48ba63c5787d4ae66dfeb8ad4f3cd2a59。候选脚本无授权不执行写入;prepare.py依赖历史本地manifest且拒绝覆盖已准备包,不直接重跑已冻结包。 +- 下一步:宝塔Playwright当次生产只读文件/DB预检,补真实哈希、模板缺项/根角色、内容ID/版本和服务状态。实际权限增量不得照搬测试63项/根37;依赖/保护漂移先核对再重建包。依据真实结果形成具体发布/备份/恢复范围,生产停写/部署/权限apply、内容编辑、账号分配分别按具体授权执行;现行策略不为开入口而创建/删除/调整。真实重试可能收费,不能当零模型烟测。不把本次准备算RELEASE-003演练或ADMIN-004/RELEASE-004验收。 + +## 新会话接续检查点:2026-10-07(ADMIN-001正式模板、菜单与跨模块权限组合) + +最新以[开发进度](开发进度.md)1.75/0.85及[后台权限维护](D:/AAdesk/202609/airz/database/admin-permissions.md)为准,561项隔离开发检查通过,ADMIN-001仍开发中,63任务/27页面保持。用户已自行修改线上管理员密码;不要使用此前临时密码、重新重置账号或把此前入口发布授权扩大到配套增量。课程仍整篇连续阅读、一次已读,小程序既有发布状态保持,暂不正式验收。 + +- 本轮后端仅改 `tests/admin_access.php`:共享显式隔离bootstrap、随机本机端口/无PHP base(兼容显式旧入口)、按base清匿名日志、按合成会员清反馈新增通知。无业务源码/权限定义/数据库结构或小程序源码改动,保留两仓库既有未提交工作,不提交/推送/PR、生产写入或模型/worker执行。 +- 权限纯97项、真实HTTP/数据库227项(158请求)、Chrome页面/接口组合237项,共561项;页面夹具清后最终HTTP复跑仍保持原13表,不重复累计。正式运营v1/客服v2/技术v5完整菜单/默认首页、无PHP地址、旧技术v4不获新配置权、多角色权限并集、直接越权/敏感字段/正文隐藏、实际内容发布/客服回复通知/技术策略与用量一致、打开后撤权和清旧用量通过。环境关闭时实际技术重试拒绝,业务完整基线及队列保持,无新增业务缺陷;不重复0.82/0.83/0.84全量单层专项。 +- Chrome1280×900/390×844真实菜单切换/手机折叠展开/当前页签、身份/非空/无遮罩/控件边界及十截图通过,pageerror/console错误警告/外网均0。框架透明行负边距受body横向裁切,实际面板/控件在视口内,宽表容器内滚动;隔离脚本iframe等待/空标题/响应式姓名及夹具字段适配中断已排除。Browser plugin not available,缓存Playwright CLI,无新增依赖;无前端业务源码变更,沿用0.81编译,不代表真机/运营验收。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-permissions-combo-20261007-1791361600000/`,MySQL3330/Redis6410/HTTP49586仅本机,新schema26表、独立ENV/Token/session、模型关闭且固定127.0.0.1:1。新库备份应用60节点/3模板共63项、根角色37、复检0项,不自动绑定;五合成管理员组合检查后精确清理。先清业务/策略及41管理员日志、恢复规则,再最终HTTP回归、核对备份哈希/新增ID字段清60节点/3模板,原权限/根角色保持;owned根角色清后26表/Redis16库0、故障触发器0,schema8触发器核对后随库DROP。 +- 浏览器清存储/cookies/routes关闭,三个服务/端口停,原5175/PID3484保留;私密JSON/config/session/runtime/MySQL数据删356文件/15目录。PowerShell清理被策略拦截,已核对所属后逐文件/空目录完成。安全证据为ROOT内 `verification.json`、`access-final.out`/err、三个 `cleanup-*.json`与 `cleanup.json`、`services.json`、`checks.json`及十张 `roles-*` 截图;权限备份受限,临时目录不整体分享,环境已删、脚本不能直接复用。 +- 下一开发入口:尚未上线增量的配套发布准备。核对线上基线与内容隔离/换行兼容、评估排障、服务用量、正式模板及配套资源、迁移预检/备份/绑定/缓存/回退依赖,形成具体可审阅清单;实际生产发布、正式库迁移和分配角色需另行授权。供应商能力/账单余额/外部告警、积分业务规则和真实worker/运营/真机仍待,不做ADMIN-004正式验收。 + +## 最新线上入口:2026-10-07(管理端无 PHP 后缀) + +用户选择第二种方案并单独授权重置管理员密码后,已通过宝塔 Playwright 发布后端三个文件:`public/index.php`、`public/ZYurKboadX.php`、`application/admin/view/index/login.html`。管理端直接访问 **https://airz.hqling.cloud**,匿名进入 `/index/login`,菜单及页签地址无 `.php`;旧 `/ZYurKboadX.php` 以308保留路径、查询和POST方法跳转。API `/api/v1` 保持,验证码走原框架路由,登录图使用 `/captcha`,静态资源正常。 + +线上唯一正常超级管理员已确认 `id=1 / admin`,按本轮明确授权重置为随机临时密码,并完成密码+实际图形验证码登录;密码不在文档保存。仅更新凭据/登录失效字段,其余账号字段、角色绑定及业务数据保持。备份 `/root/airz-admin-root-20261007`:三源码原件、原账号私密记录、`receipt.json`、`restore-entries.py`;代码回退 `python3 /root/airz-admin-root-20261007/restore-entries.py` 保持新密码与业务数据。完整说明见[部署记录](D:/AAdesk/202609/airz/deployment-baota.md)。 + +隔离本机21项HTTP与实际浏览器菜单检查、公网17项入口检查及服务器HTTPS/FPM检查通过,生产管理员实际登录成功、菜单无PHP路径、最终浏览器error0;PHP-FPM/Redis/analysis均active,.env/Nginx rewrite保持,无业务迁移/worker重启/模型调用。仅发布上述三文件,其他前后端开发成果仍未配套发布,不把本次入口检查算业务正式验收。专用3330/6410/64684服务与随机测试库已清理,原5175/PID3484保留;浏览器退出关闭、私密临时凭据清理,不提交/推送。 + +当前ADMIN-001组合检查、配套发布准备及生产只读预检已完成,接续为顶部检查点的r2具体生产维护授权;63任务/27页面与既有开发/验收状态保持。课程仍整篇连续阅读、一次已读,小程序既有发布状态保持。本轮入口/密码授权不扩大到其他功能发布或数据库迁移。 + +当前接续入口:生产只读预检与r2具体计划已完成,最新为[开发进度](开发进度.md)1.78/0.88及顶部检查点;下一项为明确本批范围/维护窗口授权后备份并发布。 + +记录日期:2026-10-07。本文件为接续入口;后台内容编辑与发布最新以[开发进度](开发进度.md)0.82节及下方CONTENT-001检查点为准,资讯、课程与搜索实际联调最新以[开发进度](开发进度.md)0.81节及下方内容实际联调检查点为准,帮助FAQ最新以[开发进度](开发进度.md)0.80节及下方FAQ实际联调检查点为准,页面专项见0.79节,内容后端检查以0.78节为准,课程交互仍以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(ADMIN-003服务、用量与现行策略组合) + +最新以[开发进度](开发进度.md)1.74/0.84及[服务检查与策略维护](D:/AAdesk/202609/airz/database/admin-services.md)为准,620项开发检查通过,63任务/27页面及ADMIN-003开发中保持。未正式验收、发布、提交或推送,保留两仓库全部既有工作及用户小程序既有发布状态。 + +- 仅三后端源码/测试变更:`public/assets/js/backend/servicestatus.js` 补会员摘要“评估尝试上限”,有效策略显示当前值、坏策略显示未知;两个数据库入口接共享显式 `report_test_bootstrap.php`、去固定3309并保持模型禁用守卫。服务测试完整设置隔离队列/心跳配置,回滚后核对原表完整摘要才输出成功。无API/表结构/权限模板迁移或小程序业务源码变更;修复尚未上线。 +- 纯逻辑345项、数据库41项、Chrome桌面1280×900/手机390×844/360×844页面及接口组合234项通过。25记录分页/五状态/三场景、NULL/零/超大Token精度、历史报表与今日共享预算分离、删除/坏请求键/未来预留、会员隔离/停用/空态,真实策略保存/暂停/降低额度/恢复与坏策略降级、真实Redis队列/登录/观测断连恢复、合成心跳八状态与关闭、网络失败清旧指标/分页/时间及慢请求禁控、日期/参数/分页/POST拒绝通过。心跳为合成记录切换,无真实worker/模型执行。 +- 四合成管理员真实密码登录:只读策略无写入口/伪造POST拒绝、仅服务权限隐藏用量、无关角色/匿名拒绝、打开后撤权清旧数据与恢复重读通过。六截图/身份/非空/无遮罩/控件边界通过,宽表容器内滚动、无文档横溢或文字重叠;pageerror0/外网0,console仅2条刻意中断ERR_FAILED。Browser plugin not available,缓存Playwright CLI,无新依赖;临时脚本传参和main角色选择器适配中断已排除。PHP/JS语法、缺bootstrap拒绝、六变更文本UTF-8无BOM/LF、diff及链接通过;前端业务源码未改,沿用0.81平台编译,不宣称真机验收。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-services-admin-20261007-1791357448842/`,MySQL3329/Redis6409/HTTP54031仅本机,26表新schema/独立ENV/Token/session。bootstrap模型禁用,HTTP仅合成开关启用固定不可连127.0.0.1:1来源以观察配置元数据,无正式.env/生产/真实短信模型或worker。精确清4管理员/组/绑定/规则、4会员、12会话、36日志、1策略行、17管理员日志,3队列键/1心跳键;业务摘要保持,26表/Redis16库/故障触发器0,schema8触发器核对后随库DROP。最终数据库回归保持摘要,凭据JSON/session/runtime/MySQL临时目录删除,浏览器清存储并关闭、三服务/端口停,既有5175/PID3484预览保留。自动审批两次拒绝递归清理且未提供具体原因,按所属核对后逐文件/逐空目录清理已完成。 +- 安全证据:ROOT内 `verification.json`、`service-final.out`/`usage-final.out`及err、`cleanup-fixtures.json`、`cleanup.json`、`cleanup-files.json`、`services.json`、`checks.json`及六张 `service-*`/`usage-*` 截图。临时bootstrap/脚本不可整体分享或直接复用,环境和夹具已删;供应商余额/账单对账、外部告警、真实worker/运营/真机仍待,本轮源码未发布。 +- 下一开发入口:ADMIN-001后台菜单、角色模板与跨模块权限组合检查。0.41模板基础与0.82/0.83/0.84各模块最小动作已有证据,补正式模板在隔离库中的菜单/默认页及内容/反馈/排障/服务/策略动作组合、敏感字段/直接越权/打开后撤权。另建显式ROOT,仅新测试库备份增量应用模板、绑定合成管理员;旧权限脚本先核对固定目标或适配守卫,不直接重跑。保持课程整篇一次已读、不接供应商、不做ADMIN-004正式运营验收或自行发布。 + +## 新会话接续检查点:2026-10-07(ADMIN-002评估排障与失败重试组合) + +最新以[开发进度](开发进度.md)1.73/0.83及[评估排障维护](D:/AAdesk/202609/airz/database/admin-assessment.md)为准,426项开发检查通过,63任务/27页面及ADMIN-002开发中保持。未发现新业务源码缺陷,未正式验收、发布、提交或推送,保留两仓库既有工作及用户小程序既有发布状态。 + +- 后端仅两数据库测试接共享 `report_test_bootstrap.php`,去除固定3309并保持模型禁用守卫;回滚后核对原记录摘要才输出成功。无业务接口、数据库结构/权限模板或前端业务源码改动。实际模型运行策略通过真实后台保存;合成角色仅构造所需最小动作,未执行正式权限迁移或绑定。 +- Chrome桌面1280×900/手机390×844/360×844最终155项页面、177项纯逻辑、94项数据库通过。历史/current/published版本、23版本/调用独立分页、旧任务/提交键/人工键定位、产品解释排除、未知/零用量、跨chat损坏指针、冻结正文/旧结果保持;最新策略暂停/额度/次数拦截与恢复、Pro新预留、跨页CSRF、已接受响应丢失/取消/页内刷新同键、后续新版本/暂停仍回原任务且不覆盖、队列故障接受及同键补投、版本冲突新意图、审计故障原子回滚、撤权/只读/他人日志范围组合通过。真实模型及worker未执行。 +- 身份/非空/无遮罩/无横溢/五截图通过,pageerror=0/外网0;console仅3次刻意丢响应的ERR_FAILED,含1次已排除旧队列夹具中断。Browser plugin not available,缓存Playwright CLI,无新依赖。早期隔离账号、三级配置覆盖、DDL连接及弹窗动画等待适配已修正,不计业务缺陷或通过场景。PHP/JS、五文本UTF-8无BOM/LF、diff及链接检查通过。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-assessment-admin-20261007-1791346885227/`,MySQL3328/Redis6408/HTTP61702仅本机,26表新schema/独立ENV/Token/session。bootstrap模型关闭,HTTP仅合成开关启用且URL固定不可连127.0.0.1:1,用于元数据预留与派发;无worker/真实模型短信/正式.env/生产。精确清5管理员/组、7规则/绑定、10会员评估/版本调用审计、1策略行及10队列消息;26表/Redis16库/故障触发器0,schema8触发器随新库DROP。数据库回滚摘要保持、合成凭据JSON/session文件删除、浏览器清存储并关闭、三服务/端口停,既有5175/PID3484保留。 +- 安全证据:ROOT内 `verification.json`、`diagnostics-final.out`/`retry-final.out`及err、`cleanup-fixtures.json`、`cleanup.json`、`services.json`、`checks.json`及五截图。临时脚本/runtime/CLI日志不整体分享或复用;供应商查询/对账、真实worker/运营/真机验收仍待,本轮源码未发布。 +- 下一开发入口:ADMIN-003服务状态/调用用量/现行策略的实际隔离组合联调,补pending/失败/历史用量、共享额度、队列故障及心跳页面一致性。另建显式ROOT/库/Redis,心跳使用业务替身,无真实worker/供应商/自行发布;0.44/0.46基础不重复全量单层专项。课程仍整篇连续阅读、一次已读。 + +## 新会话接续检查点:2026-10-07(CONTENT-001后台内容编辑与发布) + +完成资讯、课程及FAQ实际后台页面专项。台账1.72/0.82,共180项开发检查通过,63任务/27页面及CONTENT-001开发中状态保持;未正式验收、发布、提交或推送,保留两仓库全部既有工作及用户小程序既有发布状态。 + +- 后端课程表单/共享编辑器改为阅读时长、正文段落、小标题,操作按钮补名称及排序/最后一段删除/30段上限禁用。前台仍整篇连续阅读、一次“我已读完”;内部chapters/稳定ID只供兼容,不恢复章节交互。 +- 修复共表跨类型维护:Acticle查询排除type6、Faq限定type6,4资讯/8FAQ列表隔离,跨入口GET/POST/multi均拒绝;旧协议1–4继续维护,type只读且伪type不写入。修复前两列表均12条并可打开其他类型,修复后正确。 +- 修复浏览器表单LF→CRLF使未修改课程的正文哈希/版本变化、已读失效:ContentPublication仅编辑保存路径按课程稳定ID/资讯位置对比等价换行,旧正文等价时保留原LF或CRLF,新文本用LF。复现前unchanged=false、后true;服务回归验证两种旧换行的版本/已读/完成时间保持,数组段落ID明确拒绝。不改变全局decode/text、不迁移旧正文。 +- Chrome桌面1280×900/手机390×844/360×844最终124项实际页面检查,加56项真实数据库服务回归通过。覆盖新建草稿/发布/下架/再次发布与公开API/首页推荐、回填/纯文本多行/段落新增排序删除及ID保持、双页面旧版拒绝/不覆盖/刷新/缺版本、资讯及FAQ保存/slug/发布同步、旧课程确认重整/旧协议保持、三种合成管理员真实登录/最小权限/只读无写按钮/无关角色拒绝/页开后撤权拒写。身份/非空/无遮罩/无横溢/三截图通过;pageerror=0、console0、外网0,额外业务写入0。仅开发检查,不算正式验收。 +- Browser plugin not available,缓存Playwright CLI、无新依赖。早期隔离语言路由、会员路由与本地封面挂载/等待适配已修正,中断不计最终;不改框架通用协议。PHP/JS语法、11个本轮变更文本UTF-8无BOM/LF、两仓库diff与链接通过。前端业务源码本轮未改,沿用0.81微信/Android编译,不重复前轮H5专项。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-admin-20261007-1791344309503/`,MySQL仅127.0.0.1:3327、Redis127.0.0.1:6407/DB15、随机PHP HTTP63075;26表初始化,独立ENV_PREFIX/Token/session,模型禁用且127.0.0.1:1/心跳关闭,无worker/正式.env/生产/真实短信模型。15原内容完整恢复/按ID比对后删除,再跑事务回滚测试;精确清3管理员/3组/12规则/绑定及189日志,26表/Redis键/故障触发器0,schema自带8触发器核对后随测试库DROP。浏览器清存储/cookies/routes并关闭;HTTP/MySQL/Redis和三端口停,既有5175/PID3484预览保留。 +- 安全证据:ROOT内 `verification.json`、`repro-newlines-before.json`/`repro-newlines-after.json`、`content-cleanup.json`、`catalog-final.out`/`catalog-final.err`、`cleanup.json`、`services.json`、`checks.json`、三张 `admin-course-*` 截图。临时bootstrap/runtime/脚本含本机合成账户,不整体分享或直接复用。本轮修复与前轮源码未配套上线,正式运营/真机/微信内H5/Safari与多设备验收仍待。 +- 下一开发入口:ADMIN-002后台评估排障与当前版本生命周期实际隔离联调。0.42/0.43已有任务定位、人工重试及审计,0.46已有服务/受控策略页面证据;补当前评估/历史版本、失败重试、原键重放、权限及审计组合,必要时结合现行额度策略。另建显式本机ROOT/库/Redis和合成管理员,保持假环境/模型禁用,无真实worker/供应商接口,不重复内容专项、自行发布或正式验收。 + +## 新会话接续检查点:2026-10-07(CONTENT-002/003内容实际联调) + +完成资讯、课程与搜索的真实隔离后端H5组合开发检查,修复搜索返回详情滚动空引用并对齐一条课程简介。台账1.71/0.81,63任务/27页面及CONTENT-002/003待验收、CONTENT-004开发中保持;未正式验收、发布、提交或推送,保留两仓库全部既有工作和用户既有小程序发布状态。 + +- 前端仅改 `packages/content/search/search.uvue`:动态key重建scroll-view与H5返回activated钩子冲突,复现 `Cannot set properties of null (setting 'scrollTop')` 及Vue警告;改scroll-top/nextTick回顶,组件保持。独立实际后端复现修复前两错误true、修复后false;真实分页滚动后重新搜索回顶、资讯/课程结果进入详情再返回通过。 +- 后端仅改 `database/content_initial.json` 一条credit-basics简介,去掉逐节记录提示;`database/content-publication.md` 补后续维护边界。全部正文/顺序/稳定段落ID与原种子完全一致,不使段落已读失效;简介改变课程版本,旧版保存409刷新。重复导入不覆盖旧课程,后续授权维护后台只改该简介,保留其他字段、推荐及发布状态。课程仍整篇连续阅读、一次“我已读完”,不恢复章节交互。 +- Chrome手机390×844/360×740、桌面1280×900最终126项/86次实际本机业务请求通过:78H5转发、8直接HTTP、其中15进度PUT,另38测试控制。22资讯/21课程真实分页、分类/场景/完整正文/两类详情、实际Acticle/Finance编辑发布下架及空态、更新正文搜索/草稿隐藏、搜索分页/类型/无节数摘要/返回重读/回顶、Redis503和数据库500页面恢复通过;首页推荐本轮仅直接HTTP3资讯/3课程核对,不宣称首页页面组合。 +- 课程匿名零进度请求/真实密码登录回跳,一次保存/重复零写/刷新与另一真实会话恢复、SQL第二段失败第一段保留/不假已读/重载仅补缺失且首次时间保持、重排保持已读/正文变更仅补对应段落、409停止后刷新重试、两真实合成账户切换隔离、进度故障仍可读且禁写、下架无按钮/恢复/课堂空态通过。pageerror=0/外网0,业务no-store,console仅刻意404/409/500/503。六截图/身份/非空/无遮罩/无横溢/无正文重叠/实际封面/小屏按钮通过。 +- HBuilderX5.26 Android11:27:20、微信11:27:52,27页面编译成功。Browser plugin not available,缓存Playwright CLI,无新依赖。临时控制脚本DDL连接及推荐整数/字符串适配已修正,不计早期中断为通过,不修改框架/通用错误协议。PHP/JS语法、JSON/正文完全一致、五变更文本UTF-8无BOM/LF/无尾空白、两仓库diff和文档链接通过。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-live-20261007-1791343150236/`,MySQL5.7.26仅127.0.0.1:3326、Redis127.0.0.1:6406/DB15、随机PHP HTTP61451;26表初始化,仅初始4资讯/3课程加各18合成条目和两合成用户,独立ENV_PREFIX/Token前缀,模型关闭/127.0.0.1:1及心跳关闭,无worker/正式.env/生产/真实短信模型。精确恢复22资讯/21课程及推荐、清进度/Token后核对删除,11业务表/Redis键/故障触发器0,来源搜索计数键精确清除,测试库DROP;HTTP/MySQL/Redis和三端口停,schema自带8触发器随库删除。存储/cookies/routes清空,content-live关闭,既有5175/PID3484预览保留并核对归属。 +- 安全证据:ROOT内 `verification.json`、`repro-before.json`/`repro-after.json`、`cleanup.json`、`services.json`、`checks.json`、六张content截图和两平台最终日志。临时bootstrap/runtime/脚本含本机合成账户,不整体分享或复用。新增搜索修复、课程简介及前轮源码未配套上线;旧课程简介后续授权更新,真机/微信内H5/Safari/实际多设备及正式验收仍待。 +- 下一开发入口:CONTENT-001后台内容编辑与发布页面专项。先核对资讯/课程/FAQ共享编辑器,将课程编辑表述与整篇阅读对齐并保留内部稳定段落ID;另建显式本机ROOT/库/Redis和合成管理员,检查新建/编辑/排序/草稿/发布/下架/旧版拒绝与最小权限。0.80/0.81已覆盖模型发布,补实际后台页面缺口,不恢复用户章节流程、不全量重复前后端单层专项、不读正式.env/接供应商/自行发布或正式验收。 + +## 新会话接续检查点:2026-10-07(CONTENT-004 FAQ实际联调) + +完成FAQ与真实隔离后端H5组合开发检查。台账1.70/0.80,63任务/27页面与CONTENT-004开发中状态保持,未正式验收、发布、提交或推送;用户既有小程序发布状态保持,保留两仓库全部既有改动。 + +- 本轮后端仅改 `database/faq_initial.json`、`database/content-publication.md`:password/phone两条去掉未接入客服核验承诺,明确短信登录/验证码重设密码及手机号换绑暂未开放、忘记密码暂不能自行重设、已有密码可登录改密并重登录。核对现行短信接口 `SMS_NOT_CONFIGURED` 与无换绑路由。重复按slug导入不覆盖旧内容,已导入FAQ须后续授权维护时后台逐条更新。前端业务源码、接口与数据库结构未改,沿用0.79微信/Android编译证据。 +- Chrome手机390×844/360×740、桌面1280×900最终83项/30次真实本机业务请求通过:21H5转发、9直接HTTP,另16测试控制操作。覆盖8实际正文/ID顺序/3-3-2分组/展开收起、分类与非法422、后台Faq模型真实下架/发布/编辑/保留slug/旧版及空白拒绝/草稿隐藏/全下架空态/恢复、数据库实际断连与恢复重新加载。FAQ非空切标签不刷新,发布变化用离页返回onShow核对。真实密码登录回跳、两合成账户切换清草稿、公开零私有读取、Token撤销后的反馈门禁/公开恢复及真实退出通过;零反馈写入、零外网、业务响应no-store。 +- 三截图及身份/非空/无遮罩/无横溢/正文与底部通过,pageerror=0,console仅刻意数据库故障500/Token撤销401。断连由现行通用处理返回500,页面重试恢复正确,未扩展通用错误协议。早期Windows路径、反馈表名、422码、标签刷新与500预期造成的中断已修正,不计最终通过。Browser plugin not available,缓存Playwright CLI;裸php无PATH后用显式路径lint通过,无新增依赖。PHP/JS语法、两仓库diff及四变更文本UTF-8无BOM/LF/无尾空白通过。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-faq-live-20261007-1791341832972/`,MySQL5.7.26仅127.0.0.1:3325、Redis仅127.0.0.1:6405/DB15,随机PHP HTTP65196,26表初始化,仅8FAQ与两合成账户;独立ENV_PREFIX/Token前缀,模型关闭且127.0.0.1:1,无worker/正式.env/生产连接/真实短信模型。精确恢复FAQ后核对删除,11业务表/Redis键/故障触发器0,schema自带8个触发器随库DROP;HTTP/MySQL/Redis与三端口均停止。停止脚本初次过早检查退出竞态,补同时等待进程/端口后确认。存储/cookies/routes清空,专用faq-live关闭;既有5175/PID3484预览保留并核对当前项目归属。 +- 安全证据为ROOT内 `verification.json`、`cleanup.json`、`services.json`、`checks.json`、三张 `faq-live-*` 截图,最终verification.err空;临时bootstrap/runtime/脚本含本机合成会话,不整体分享或复用。前轮新增源码及本轮FAQ文案仍未上线;正式内容更新、真机/微信内H5/Safari与正式验收仍待,不沿用历史生产发布授权。 +- 下一开发入口:CONTENT-002/003资讯与课程的真实后端H5页面联调。0.76/0.77已做受控前端、0.78已做真实后端,补真实组合缺口即可。另建显式本机ROOT/库/Redis,仅导入合成环境内容;资讯列表/详情/搜索与发布变化,课程整篇一次已读、刷新恢复、两个真实合成账户隔离、部分保存失败和版本更新。不要恢复章节交互、全量重复单层专项、接供应商、正式验收或自行发布。 + +## 新会话接续检查点:2026-10-07(CONTENT-004帮助FAQ) + +完成帮助FAQ页面专项,修复五类已复现问题。台账1.69/0.79,63任务/27页面与CONTENT-004开发中状态保持,未正式验收、发布、提交或推送;用户既有小程序发布状态保持。 + +- 两前端源码:`packages/content/services/help.uts` 严格校验数组/对象、正INT字符串ID/合法分类/非空字符串问题答案及唯一ID,任一坏条目报错,真正空items保持空态;`packages/content/help/help.uvue` 补可见期每秒账户核对、标签/FAQ请求与回包代次守卫、旧请求失效和重新读取,换账户清旧反馈状态,仅反馈标签读私有记录。离页停止计时器/回填,重载收起旧展开。原问题为非法ID、空白正文、全坏误空态、重复静默丢弃及闲置登录状态未更新,复测均消失。 +- Chrome手机390×844/360×740、桌面1280×900最终88项/62次受控请求通过:57FAQ GET、4合成反馈GET、1合成密码登录POST,无反馈写入。覆盖29类坏响应/3类合法响应、固定分类/展开收起/多行正文、坏包/空态/503/断网重试、慢请求/双击、匿名门禁/密码登录回跳、立即登录/闲置换账户/退出、公开FAQ无私有读取、旧401/离页迟到回包/返回刷新及客服未开放。身份/非空/无遮罩/无横溢/问题箭头/固定底部/三截图通过,pageerror=0、未定义API=0,console仅刻意503/401及net::ERR_FAILED。同页hash/同名提交定位造成的早期中断不计最终数。 +- HBuilderX5.26 Android10:41:45、微信10:42:15,27页面编译成功;两源码/两台账UTF-8无BOM/LF、JS语法及两仓库diff通过。Browser plugin not available,缓存Playwright CLI,无新依赖;首次连接拒绝来自初编译等待,之后正常,共享layout既有H5类型警告保留。后端本轮只读,0.78全部未提交改动保留,无数据库/Redis/worker、正式.env/正式数据库、短信模型调用。初次预览发生1次未拦截匿名线上FAQ GET,无凭据/写入;最终全部外部API拦截,不计初次读取为隔离证据。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-faq-20261007/`,安全证据 `verification.json`、`repro-before.json`/`repro-after.json`、`checks.json`、三FAQ截图及 `android-final.log`/`weixin-final.log`。临时脚本/CLI日志含无服务器权限合成会话,不整体分享。存储/cookies/routes清空,专用faq浏览器关闭;新5175/PID3484预览保留,启动归属当前项目/ROOT h5,后续核对归属再复用。开始5173/5174/5175无监听,未停止其他服务。 +- 下一开发入口:FAQ与隔离后端实际H5联调,另建显式本机ROOT/库/Redis,检查8条初始FAQ与严格解析兼容、后台发布/下架/更新及页面重读、匿名/登录只读恢复;导入只写新合成库。0.52已做导入/HTTP基础,本轮已做受控坏包和账户边界,不重复全量专项、不接真实客服/短信模型、不沿用历史授权部署。真实后端页面组合、真机/微信内H5/Safari及正式验收仍待补,新增源码未发行。 + +## 新会话接续检查点:2026-10-07(CONTENT-002/003/004后端) + +完成内容、课程已读与搜索后端隔离HTTP开发检查。课程继续整篇阅读、一次已读,后台段落ID仅用于历史兼容。台账1.68/0.78,63任务/27页面及既有待验收/开发中状态保持,未发布、提交、推送或正式验收。 + +- 后端四文件:`ContentCatalog.php` 搜索课程meta改为阅读时长,去掉节数;`tests/content_catalog.php` 接共享显式bootstrap并移除固定3309,回滚清零后才成功;新增 `tests/api_content.php`、`tests/content_http_router.php`,随机本机HTTP、独立竞争进程、runtime故障模式及精确清理。无前端源码、数据库结构或接口形状变更。 +- 最终服务45项、HTTP362项/90次请求通过,合计407项:内容列表/详情/首页/分类/分页/坏行/下架、JSON及鉴权边界、重复完成时间保持/双会话恢复/账户隔离、SQL故障回滚及部分保存补齐、重排保持/正文变化失效/删除新增/409、双PHP重复保存唯一行/发布行锁竞争、搜索AND/字面%/_/类型/空/非法、无章节数摘要、双HTTP共享60/61原子限流/TTL/429恢复及Redis503重试。仅开发检查,不宣称真机或跨设备验收。 +- ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-backend-20261007-1791338749380/`,MySQL5.7.26仅127.0.0.1:3324、Redis5.0.14.1仅127.0.0.1:6404/DB15,模型关闭且127.0.0.1:1,26表由schema初始化,无worker/真实短信模型/新增依赖/正式.env或生产连接。十业务表/测试触发器/Redis键清零,测试库DROP,随机HTTP/竞争进程/MySQL/Redis全停,3324/6404无监听。schema自带8个约束触发器单独核对后随库删除。初轮空数组预期、TP5两级故障配置及清理触发器枚举已修正,中断结果不计最终数。 +- 安全证据:ROOT内 `verification.json`、`cleanup.json`、`services.json`、`catalog-final.out`/`catalog-final.err`、`http-final.out`/`http-final.err`,最终stderr空;临时bootstrap/runtime/脚本不整体分享或直接复用。四PHP lint、两缺bootstrap拒绝、两仓库diff及六文件UTF-8无BOM/主要行尾通过。前端未改,沿用0.77浏览器及微信/Android证据;本轮未启浏览器/H5,开始结束5175无监听,历史PID不再视为当前服务。 +- 新搜索课程文案需后端发布才生效。H5与真实后端页面组合、真机/跨设备及正式验收仍未覆盖,不沿用历史生产授权。用户自行发布小程序的既有状态保持,本轮新增源码未发行。 +- 下一开发入口:CONTENT-004帮助FAQ页面级组合检查,`packages/content/services/help.uts`、`packages/content/help/help.uvue`。核对合法/损坏/重复条目解析、空态/错误重试/迟到回包、分类与展开、匿名/登录/账户变化及客服未开放回退;先受控API,必要时再另建显式隔离HTTP。FAQ服务端导入/HTTP基础在0.52、帮助反馈/消息组合在0.60已有证据,补FAQ专项即可,不重复反馈消息专项、不接真实客服或自行发布。 ## 新会话接续检查点:2026-10-07(课程简化) diff --git a/docs/核心与权限验收矩阵.md b/docs/核心与权限验收矩阵.md new file mode 100644 index 0000000..92e379d --- /dev/null +++ b/docs/核心与权限验收矩阵.md @@ -0,0 +1,63 @@ +# RELEASE-001 核心与权限验收矩阵 + +更新日期:2026-10-08;进度1.97/1.07,开发文档v1.65/0.78。现有63项任务、27页面保持。RELEASE-001开发中、整体未验收;RELEASE-003阻塞。用户已取消独立Linux测试机路线,不再等待独立机,Linux/systemd仍未验证。 + +本矩阵补充[开发进度6.2](开发进度.md#62-一期验收矩阵),记录最新本地可复核子集与尚缺条件。通过检查数是入口内部断言数,不能当独立业务场景数;各轮复用入口不跨轮累计。历史阶段“未执行”指该行完整验收尚未完成,不否认已记录的局部开发检查。验收人、候选版本和真实设备尚未指定,不预填签收结论。 + +## 最新证据 + +| 证据批次 | 本地通过范围 | 本批检查数 | 限制 | +| --- | --- | ---: | --- | +| [1.02 主流程](D:/AAdesk/202609/airz-backups/core-flow-regression/airz-core-flow-1791443749845/verification.json) | 新个人/企业评估→报告→匹配组合280;相关提交、金额、版本并发、历史/PDF等入口 | 1666 | 合成产品、假模型;修复历史匹配列表/导出解释重试权限;无真实产品签收 | +| [1.03 会话组合](D:/AAdesk/202609/airz-backups/security-flow-regression/airz-security-flow-1791445051475/verification.json) | 新会话/消息/助手组合375;相关会话、助手、资料及主流程入口 | 1369 | 两个合成账户、假模型;无真机/真实身份渠道签收 | +| [1.04 后台组合](D:/AAdesk/202609/airz-backups/admin-flow-regression/airz-admin-flow-1791445932955/verification.json) | 新五角色诊断/重试组合167,原后台权限227,11个针对性入口575,主流程280 | 1249 | 合成管理员与正式模板、199次本机HTTP;合计20次假模型调用;未新增业务源码修复 | +| [1.05 反馈消息组合](D:/AAdesk/202609/airz-backups/feedback-flow-regression/airz-feedback-flow-1791447922008/verification.json) | 新反馈→跨角色回复→通知→撤销/原键恢复344;原反馈事务/并发166、账户281及后台227 | 1018 | 两会员/多会话、合成正式角色、324次本机HTTP,模型0;后端补确认,不代替前端/真机/真人客服验收 | +| [1.06 内容发布组合](D:/AAdesk/202609/airz-backups/content-flow-regression/airz-content-flow-1791448910652/verification.json) | 新跨角色发布/下架→公开内容→双账户整篇已读518;原服务56/内容HTTP362/后台227 | 1163 | 391次本机HTTP、模型0;修复超管批量越界;当批前端/真机未重跑,CSRF当批待实施、现见1.07 | +| [1.07 内容CSRF](D:/AAdesk/202609/airz-backups/content-csrf-regression/airz-content-csrf-1791450130328/verification.json) | 新内容Token门禁627;内容组合522/服务56/内容HTTP362/后台227;后台浏览器另计63 | 1794 | 523次本机HTTP、模型0;宽/窄屏18次内容POST手动恢复;8运行文件未部署,无小程序/真机或正式签收 | + +六批均完成所属合成库/队列/HTTP/服务清理;保留私密证据。历史清理回执证明当次收尾,不代表任意未来时点的服务状态。原始日志、manifest、配置与会话不能整包分享。真实模型小样例见[既有语义记录](AI助手真实语义验收.md),本批不产生新真实调用,也不扩大旧样例的验收范围。 + +## 核心与权限检查 + +| 场景 / 任务 | 最新已验证子集 | 尚需验收的范围 | +| --- | --- | --- | +| 个人/企业主流程;ASSESS、REPORT、PRODUCT、RELEASE-001 | 两类提交、失败保留旧发布版、人工/用户重试、独立新评估与最新资料隔离;1.02及1.04主流程回归 | 真实产品与人工样例、完整正式输入、渠道数据及真实用户全链路 | +| 金额/冻结输入/产品变更;ASSESS-004、PRODUCT-004/005 | 元与万元边界;冻结策略与产品快照;新报告发布后历史版禁止解释重试;1.02 | 人工核对真实产品额度/期限/利率与匹配规则,目标设备金额输入展示 | +| 会话撤销;AUTH-002/004、BASE-003 | 退出仅撤销当前Token;改密撤销本人全部会话且不影响他人;旧Token跨报告/匹配/消息/助手统一拒绝;1.03 | 原/新手机真实双挑战、号码冲突、渠道登录及真机账户切换 | +| 跨用户资源;ASSESS、CHAT、MSG | 跨账户报告/匹配/通知/助手创建、读取、发问及游标拒绝,无任务或调用预留;1.02/1.03 | 私有附件、真实授权/数据查询资源尚无实现及签收证据;前端缓存/弱网按端复核 | +| 消息/助手幂等;CHAT-004、MSG-001/004 | 原键重发一次预留;显式重试沿用逻辑问题;旧会话与旧通知绑定原版本;已读水位不吞新消息;1.03 | 真实供应商异常/额度对账、多设备消息状态和目标端交互 | +| 五角色诊断与隐私;ADMIN-001/002 | 运营不能读取诊断;客服/技术/超管/合成旧技术只读可读取安全状态;当前失败版与已发布旧版区分;1.04 | 明确正式账号与权限并集,运营实际登录和签收;不自动绑定账号 | +| 人工重试授权;ADMIN-002、REPORT-002 | 仅技术v5/超管具动作权限;客服/运营/旧技术拒绝;撤绑定即时拒绝;超管仍受失败状态限制;1.04 | 正式账号操作演练、在途/并发和真实供应商故障恢复;已有纯/事务边界检查不能代替生产演练 | +| 重试门禁/原子性;ADMIN-002 | CSRF、查询force参数、版本/任务冲突、模型暂停拒绝无业务写入;成功任务与审计同事务,审计插入故障完整回滚;1.04 | 实际队列守护、真实服务故障/恢复和线上监控条件 | +| 回执与历史审计;ADMIN-002 | 同键、完成后及后续重评中返回原任务/审计;仅一条成功审计;请求标识定位历史版;客服拒读管理员审计;1.04 | 真实运营审计检索、留存/备份及责任人确认 | +| 后台通用权限;ADMIN-001/003 | 运营/客服/技术/超管菜单与动作;身份脱敏、金额独立授权、系统消息只读、模型密钥不回显、受控启停及旧日志脱敏;227项/158请求;1.04 | 1.07补内容CSRF及后台表单/列表手动恢复;反馈前端持久恢复、策略完整并发与正式运营签收仍待办,未重跑历史浏览器237项 | +| 内容发布与整篇已读;CONTENT-001/002/003/004 | 运营/客服/技术/超管与撤权;发布/下架同步首页/列表/搜索/详情;版本/换行/重排/正文更新与双账户已读;修复超管批量任意字段;1.06/1.07内容CSRF、实际表单/列表恢复及删除宽窄屏验证 | 前端旧响应竞态/真机/跨设备、真实内容及正式运营签收待补;批量/CSRF配套未发布 | +| 反馈回复/通知/恢复;SUPPORT-002、MSG-004、AUTH-004 | 原键作用域/版本/CSRF/角色与撤权、唯一通知/已读水位、通知/审计事务回滚、退出/改密后重新登录补确认;1.05 | 前端真实回执丢失/持久恢复、私有附件、真人坐席和正式运营/真机签收 | + +## 一期模块缺口 + +任务编号与状态以[开发进度](开发进度.md)和[开发文档](开发文档.md)现行台账为准;本表不新增任务、不改变已有阻塞状态。 + +| 模块 | 已有证据 / 可继续的内部工作 | 尚缺条件与下一动作 | +| --- | --- | --- | +| BASE | 请求、账户隔离和首页有本地子集;1.03补会话跨模块检查 | 冻结候选包与环境,核生产禁用模拟和真实API;按端复核缓存/回跳 | +| AUTH | 密码登录、资料/头像、改密和会话撤销有本地证据 | EXT-SMS的服务商/模板/测试能力;真实换绑双挑战;AUTH完整未验收 | +| LOGIN | 已有安全失败入口,未声称真实渠道成功 | EXT-WX/EXT-ONE账号、H5支持矩阵及服务端验证能力;不模拟成功 | +| FILE | 公开头像检查不能作为私有证件上传验收 | EXT-STORAGE、DEC-PRIVACY待确认;先确定私有目录/桶、元数据/权限/生命周期及协议版本,再实施FILE-002/003/004 | +| ASSESS | 1.02覆盖个人/企业提交、多版本与冻结输入 | 真实附件/协议、完整渠道数据及正式用户签收 | +| DATA | 渠道范围、授权查询、验签回调和收费对账仍无完整证据 | EXT-DATA、DEC-QUERY;需产品、资质、字典、测试样例和计费/对账能力 | +| PRODUCT | 合成目录、历史快照与解释权限有1.02证据 | DEC-PRODUCT真实产品与发布责任人,DEC-MATCH人工样例及业务签收 | +| REPORT | 自填范围、版本发布、历史/PDF及本地队列有证据 | 真实输入/产品/模型语义、目标端PDF;真实守护与恢复仍待验证 | +| CHAT | 1.03覆盖撤销/重试/冻结上下文;旧真实语义小样例单独保留 | 真实产品上下文、供应商预算/异常、多端与运营签收 | +| CONTENT | 原发布/已读/搜索/FAQ/H5证据保持;1.06跨角色/双账户后端组合及批量越界修复;1.07内容CSRF与后台浏览器手动恢复 | 候选清单与用例收口;真实内容责任人、目标端/跨设备/真机和正式签收 | +| POINT | 已有关闭状态和合成事务/并发检查 | DEC-POINT待确认,默认关闭;批准后才能启用规则、迁移或验证真实奖励 | +| MSG | 1.03报告通知与1.05反馈通知/水位/账户隔离组合通过 | 双端/多设备与目标不可用交互及正式签收 | +| SUPPORT | 1.05补反馈→跨角色处理→通知→退出/改密→原键恢复后端组合 | 前端持久恢复/真机、私有附件及运营签收;真人客服仍需EXT-CS坐席和支持矩阵 | +| ADMIN | 1.04补现行正式模板、诊断和人工重试组合 | ADMIN-004未开始;正式账号绑定与运营内容/反馈/策略操作签收需明确账号和授权 | +| RELEASE | RELEASE-001局部开发回归推进,历史部署/恢复/告警材料可核摘要 | RELEASE-002目标端/真实渠道,RELEASE-003生产守护/恢复/密钥托管/规模RTO/RPO,RELEASE-004正式发布记录与签收;独立Linux路线已取消 | + +## 接续顺序与签收条件 + +反馈后端组合1.05、内容后端组合1.06及内容CSRF与后台手动恢复1.07已通过;8运行文件尚未部署,前端其他恢复场景与正式条件保持待补。下一开发项:RELEASE-001候选版本与验收用例收口:固定本地候选源码清单/摘要,关联已验证范围和剩余外部阻塞,形成可复核交付基线;不部署、不预填正式签收,不继续扩张同类回归工具。后台Token流程的本机宽窄屏验证不能代替搜索旧响应竞态、小程序/H5编译、真机或正式运营签收。 + +正式签收需要确定候选源码/发布版本、真实产品及内容、目标设备/浏览器、测试账号/角色和验收负责人;按对应供应商和业务决策解除阻塞,并保存可追溯成功/失败/恢复证据。小程序由用户自行发行,课程整篇一次已读、身份证明文输入/后台脱敏、积分默认关闭及供应商约定保持。本批没有部署、提交、真实worker/模型或外部消息;不能据此判定全63任务/27页面通过。 diff --git a/packages/content/help/help.uvue b/packages/content/help/help.uvue index 29f7d74..4e2e09e 100644 --- a/packages/content/help/help.uvue +++ b/packages/content/help/help.uvue @@ -82,7 +82,8 @@ const targetId = ref(''); const targetItem = ref(null); const targetLoading = ref(false); const targetError = ref('') let detailRequest = 0 let visible = false; let generation = 0; let faqRequest = 0; let listRequest = 0; let page = 0 - let owner = '' + let owner = ''; let accountTimer = 0 + function stopAccountTimer() { if (accountTimer != 0) { clearInterval(accountTimer); accountTimer = 0 } } const groups = computed((): HelpGroup[] => { const results: HelpGroup[] = [] helpCategories.forEach((category: string) => { @@ -122,8 +123,10 @@ if (!visible || ticket != generation) return false const sessionToken = getSession()?.getString('token') ?? '' if (sessionToken == token) return true - generation++; clearFeedback(); targetId.value = ''; owner = sessionToken; loggedIn.value = owner.length > 0 - if (loggedIn.value) { restorePending(); reloadAfterAccountChange() } + generation++; faqRequest++; loading.value = false; errorMessage.value = ''; expanded.value = '' + clearFeedback(); targetId.value = ''; owner = sessionToken; loggedIn.value = owner.length > 0 + if (loggedIn.value) restorePending() + reloadAfterAccountChange() return false } reconcileAccount = () => { current(generation, owner) } @@ -143,10 +146,12 @@ } const load = async () => { if (!visible || loading.value) return + const account = generation; const token = owner + if (!current(account, token)) return const ticket = ++faqRequest - loading.value = true; errorMessage.value = '' - try { const items = await fetchHelpQuestions(); if (visible && ticket == faqRequest) questions.value = items } - catch (_error) { if (visible && ticket == faqRequest) errorMessage.value = '暂时无法加载帮助内容,请稍后重试' } + loading.value = true; errorMessage.value = ''; questions.value = []; expanded.value = '' + try { const items = await fetchHelpQuestions(); if (current(account, token) && ticket == faqRequest) questions.value = items } + catch (_error) { if (current(account, token) && ticket == faqRequest) errorMessage.value = '暂时无法加载帮助内容,请稍后重试' } finally { if (ticket == faqRequest) loading.value = false } } async function loadFeedback(append: boolean) { @@ -170,9 +175,11 @@ } finally { if (ticket == generation && request == listRequest) { feedbackLoading.value = false; loadingMore.value = false } } } function reloadFeedback() { loadFeedback(false) } - reloadAfterAccountChange = () => { reloadTarget(); reloadFeedback() } + reloadAfterAccountChange = () => { load(); if (tab.value == 'feedback') { reloadTarget(); reloadFeedback() } } const loadMore = () => { loadFeedback(true) } const changeTab = (value: string) => { + if (!visible) return + reconcileAccount() tab.value = value if (value == 'feedback') { reloadTarget(); reloadFeedback() } else if (questions.value.length == 0) load() } @@ -226,9 +233,10 @@ visible = true; generation++; const token = getSession()?.getString('token') ?? '' if (token != owner) { if (owner.length > 0) targetId.value = ''; clearFeedback() } owner = token; loggedIn.value = token.length > 0; restorePending(); load(); if (tab.value == 'feedback') { reloadTarget(); reloadFeedback() } + stopAccountTimer(); accountTimer = setInterval(() => { reconcileAccount() }, 1000) }) - onHide(() => { visible = false; generation++; faqRequest++; listRequest++; detailRequest++; targetItem.value = null; targetLoading.value = false; targetError.value = ''; loading.value = false; feedbackLoading.value = false; loadingMore.value = false; sending.value = false; records.value = [] }) - onUnload(() => { visible = false; generation++; faqRequest++; clearFeedback() }) + onHide(() => { visible = false; stopAccountTimer(); generation++; faqRequest++; listRequest++; detailRequest++; targetItem.value = null; targetLoading.value = false; targetError.value = ''; loading.value = false; feedbackLoading.value = false; loadingMore.value = false; sending.value = false; records.value = [] }) + onUnload(() => { visible = false; stopAccountTimer(); generation++; faqRequest++; clearFeedback() })