fix: 修复帮助内容加载、搜索滚动和账户同步的问题
- 完善帮助内容接口的响应校验,增加数据格式和范围验证 - 优化搜索页面的滚动位置管理,避免H5页面激活时的组件重建问题 - 增加账户切换时的定时器清理,防止内存泄漏和重复请求
This commit is contained in:
@@ -1,5 +1,43 @@
|
|||||||
# AI 融资移动端
|
# 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最新(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发行、积分规则和正式迁移仍按各自记录处理,下文为历史阶段记录。
|
2026-10-04最新:会员反馈未知提交已支持离页、浏览器进程重启、退出/401及原账户重新登录后恢复原请求键和原文,恢复后由用户点击确认,不自动发送;存储故障阻止覆盖待确认记录,成功回执核对 `requestId` 后才清理。后端67项、页面93项隔离开发检查及Android/微信27页面编译通过,未开展正式验收。用户此前发布的小程序版本不包含本轮新增源码;这批前后端尚未部署/发行,新前端需要后端先或配套发布 `requestId` 回执,无新增DDL。测试库/Token已清除、隔离服务已停止,私密文件删除被自动审批拦截,精确路径及证据见[交接](docs/新会话交接.md)和[开发进度0.58](docs/开发进度.md)。H5发行、积分规则和正式迁移仍按各自记录处理,下文为历史阶段记录。
|
||||||
|
|||||||
@@ -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)。
|
||||||
+125
-3
@@ -1,6 +1,128 @@
|
|||||||
# AI 融资平台开发文档
|
# 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 反馈回复与站内消息契约
|
### 0.59 2026-10-04 反馈回复与站内消息契约
|
||||||
|
|
||||||
@@ -812,7 +934,7 @@ REPORT-004页面子项完成本地联调:report/report改为评估概况、匹
|
|||||||
|
|
||||||
**目标:** 后台发布的内容、图文课程和FAQ可被前端检索阅读,进度跨设备一致。 **阶段:** M3。**剩余:** 4–6人日。
|
**目标:** 后台发布的内容、图文课程和FAQ可被前端检索阅读,进度跨设备一致。 **阶段:** M3。**剩余:** 4–6人日。
|
||||||
|
|
||||||
- **现状:** 资讯/课程/搜索/首页真实接口、云端进度及发布后台已正式上线;FAQ服务端源码已完成但尚未导入/部署,真机/多设备待验收,见0.39。
|
- **现状:** 资讯/课程/搜索/首页、云端进度与发布后台已上线;8FAQ于2026-10-08首次导入,类型隔离/换行兼容配套已发布。课程整篇阅读、一次已读,真机/多设备及正式运营待验收,见开发进度0.89。
|
||||||
- **前端:** 新闻、文章、课堂、课程页接真实分页/详情;处理404/下架和搜索竞态。2026-10-07起课程整篇连续阅读,去掉章节目录/折叠/逐节完成/进度条,底部仅一次标记课程已读;状态读取不阻止正文,历史记录与旧接口兼容,详见开发进度0.77。
|
- **前端:** 新闻、文章、课堂、课程页接真实分页/详情;处理404/下架和搜索竞态。2026-10-07起课程整篇连续阅读,去掉章节目录/折叠/逐节完成/进度条,底部仅一次标记课程已读;状态读取不阻止正文,历史记录与旧接口兼容,详见开发进度0.77。
|
||||||
- **后端:** 发布/下架、富文本清洗、分类与首页推荐、搜索和FAQ;稳定章节ID与进度幂等。
|
- **后端:** 发布/下架、富文本清洗、分类与首页推荐、搜索和FAQ;稳定章节ID与进度幂等。
|
||||||
- **数据:** 复用fa_acticle/fa_finance;章节数据结构化;用户章节完成关系独立存储;不引入视频和付费课程。
|
- **数据:** 复用fa_acticle/fa_finance;章节数据结构化;用户章节完成关系独立存储;不引入视频和付费课程。
|
||||||
@@ -866,7 +988,7 @@ REPORT-004页面子项完成本地联调:report/report改为评估概况、匹
|
|||||||
|
|
||||||
**目标:** 帮助页既能提交可追踪反馈,也能真实到达人工服务。 **阶段:** M3。**剩余:** 2–4人日。
|
**目标:** 帮助页既能提交可追踪反馈,也能真实到达人工服务。 **阶段:** M3。**剩余:** 2–4人日。
|
||||||
|
|
||||||
- **现状:** FAQ服务端读取,文字反馈提交/本人记录/后台处理源码完成但尚未部署;客服仅未开放提示。
|
- **现状:** FAQ服务端及8条种子已上线;文字反馈提交/本人记录/后台处理及回复通知后端已配套发布,小程序发行由用户负责,正式验收待办;人工客服仍仅未开放提示。
|
||||||
- **前端:** 反馈文字表单、请求键重试、记录/回复;附件入口保留为空数组,客服在线/排队/离线状态及失败回退待供应商。
|
- **前端:** 反馈文字表单、请求键重试、记录/回复;附件入口保留为空数组,客服在线/排队/离线状态及失败回退待供应商。
|
||||||
- **后端:** 反馈归属与后台处理已实现;服务端访客签名、客服会话关联待供应商,外部系统消息遵循渠道身份规则。
|
- **后端:** 反馈归属与后台处理已实现;服务端访客签名、客服会话关联待供应商,外部系统消息遵循渠道身份规则。
|
||||||
- **数据:** 复用fa_feedback补处理结果;不把反馈图片当公共文件;客服历史优先由供应商维护。
|
- **数据:** 复用fa_feedback补处理结果;不把反馈图片当公共文件;客服历史优先由供应商维护。
|
||||||
|
|||||||
+452
-14
@@ -1,6 +1,442 @@
|
|||||||
# AI 融资平台开发进度
|
# 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<leaseUntil才生效;过期接管换令牌,迟到成功/失败不能覆盖新状态。接收端eventId唯一且完整规范载荷一致,回执须匹配且持久存在;重复接收/确认/失败幂等,CLI四类进程内场景,无URL/实际投递。
|
||||||
|
|
||||||
|
63项测试覆盖顺序/限次/退避/过期、非法参数/倒退时钟无部分导入、回执/载荷/数值类型/IO回滚、损坏/schema/版本/WAL/目录/sidecar/CLI安全输出。9项进程测试12个owned Python进程,6个在领取/接收/确认commit前后终止,全部退出;强制缓存写回验证热日志、领取提交前不耗次数、发送后缺确认重投只有一次效果,双领取/双接收并发和锁超时通过。仅Windows进程中断,不能记Linux/systemd/断电耐久验收。
|
||||||
|
|
||||||
|
公开24样本7事件,首轮2条接收成功但模拟超时,退避前不领取、5秒重投2条均duplicate,随后7模拟delivered/7唯一接收效果/其他状态0;来源顺序及原源库字节保持。原51/56/49/42回归和五组14回执/21不同源码核验通过;28旧安全材料、12固定输入与上一项合成库摘要不改,原业务/纯状态/预检/spec/unit/catalog保持。
|
||||||
|
|
||||||
|
私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-dispatch/airz-alert-store-1791436020494/verification.json)、tests/receipt-baseline/red-tests/final-source-validation与三个SQLite现场,ACL当前用户/SYSTEM;含新12/原存储10共22 owned进程全部退出审计。AST/UTF-8无BOM/空白/链接/两仓库diff及63任务/27页面核对,Python-B/旧缓存保持。仅合成SQLite,无生产/项目MySQL/Redis/网络/实际采样/外部消息/服务启停/worker/模型、安装、提交/推送/PR。
|
||||||
|
|
||||||
|
进度1.88/0.98、文档v1.56/0.69,RELEASE-003阻塞/正式未验收保持。dead保留并阻塞同来源,若已接收但确认耗尽也不自动当成功;下一项dead回执对账与带审计人工恢复门禁,只新合成账本,不直接重置次数/跳过事件或外部补发。真实Linux/采样/渠道、生产恢复/密钥托管/规模RTO/RPO和正式签收仍待条件;课程/小程序用户发行/积分/供应商约定保持。
|
||||||
|
|
||||||
|
### 0.97 2026-10-08 告警state/outbox原子保存与崩溃恢复
|
||||||
|
|
||||||
|
承接0.96,新增[存储契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-store.md)、[标准库事务入口](D:/AAdesk/202609/airz/tests/worker_alert_store.py)和51项测试。新合成本地SQLite使用DELETE日志/FULL同步/BEGIN IMMEDIATE,先锁再读最新检查点;state、样本时间/摘要和新增eventId唯一outbox原子保存,任何失败全部回滚。完整/交叠批次重试只跳过已记同摘要样本,冲突/未记旧样本/过快拒绝;模拟确认同事务、幂等、保留事件,无真实投递。
|
||||||
|
|
||||||
|
51项覆盖门禁/损坏现场/版本schema/摘要、整批重试/部分失败/SQL IO故障、唯一约束/确认、CLI安全输出及跨进程锁。7项进程测试共10个owned Python进程,4个在apply/ack提交前后终止,全部退出;测试连接强制缓存写回,确证DB脏页变化和有效热日志,重开回滚完整状态/outbox。提交后未输出回执的整批重试及确认恢复通过,仅本机Windows进程证据,不是Linux/systemd/断电耐久验收。根/库/sidecar检查,缺库/孤立日志/政策作用域变化/损坏拒绝,不清空重建;可信目录/来源与网络盘边界详见契约。
|
||||||
|
|
||||||
|
公开24样本实际CLI7事件/4维护重置,与纯state一致;整批重试0新增/24跳过/0新事件,最终无活动故障。模拟确认1条后事件7/待确认6,再次确认不变。原56/49/42项回归、五组14回执/21不同源码核验与23份历史安全材料摘要保持;旧业务源码/纯状态/预检/spec/unit/catalog不改。
|
||||||
|
|
||||||
|
私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-store/airz-alert-store-1791434240512/verification.json)、tests/receipt-baseline/red-tests/final-source-validation和SQLite现场,ACL仅当前用户/SYSTEM;AST/UTF-8无BOM/新链接/两仓库diff与63任务/27页面核对。仅本地合成SQLite、无项目MySQL/Redis/生产采样/网络/服务启停/worker/模型或外部消息,无提交/推送/PR/安装;Python-B/既有业务改动和原缓存保持。
|
||||||
|
|
||||||
|
进度1.87/0.97、文档v1.55/0.68;RELEASE-003阻塞/正式未验收保持。下一项outbox有界调度/领取租约/失败退避/迟到确认与模拟接收端eventId幂等,只合成存储/进程内渠道;实际采样、外部通道/收件目标、真实Linux和生产恢复/规模RTO/RPO/密钥托管及正式签收仍待条件。课程整篇一次已读、小程序用户发行、积分与供应商约定保持。
|
||||||
|
|
||||||
|
### 0.96 2026-10-08 告警连续门槛、状态去重与恢复
|
||||||
|
|
||||||
|
承接0.95,新增[告警状态说明](D:/AAdesk/202609/airz/database/worker-supervision/alert-state.md)、[纯状态/只读重放](D:/AAdesk/202609/airz/tests/worker_alert_state.py)、[测试](D:/AAdesk/202609/airz/tests/worker_alert_state_test.py)及[24样本序列](D:/AAdesk/202609/airz/database/worker-supervision/alert-sequence.json)。复用原安全快照预览;默认同故障3次打开、持续去重、新码3次changed保留incidentId,明确systemd active/success+近期心跳且非维护2次恢复。规则只是合成开发默认,未批准生产告警时效。
|
||||||
|
|
||||||
|
最短采样15秒/最大连续空档90秒,最新同时间同内容重放不计数/不重复事件;冲突/乱序/过快拒绝。长空档和维护进出重置待确认故障/恢复计数,保留已打开事件;维护预期停止不恢复,真实degraded/限速继续检测。未知/缺失、故障码变化或停止服务的旧近期心跳不当恢复,累计NRestarts不推断近期风暴。双来源独立,state/policy/作用域/计数/时间/ID严格验证,坏state不自动重置;输入不变/JSON恢复、事件ID确定性,CLI安全失败不吐部分事件。
|
||||||
|
|
||||||
|
56项测试通过,24合成样本7事件/4维护重置、最终0打开事件;分段恢复含边界最新样本重放,与整段事件及state一致。原49项preflight、42项证据回归与五组14历史回执保持,另保留上一项5份安全回执摘要,共19材料不改;旧源码/spec/unit/catalog及业务代码不改。工具纯标准库/安全读取,默认stdout,不连接DB/Redis/网络、采集或启停服务/worker/模型,不落状态或投递。formalAcceptance/liveSystemdVerified/externalDeliveryVerified固定false。
|
||||||
|
|
||||||
|
新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-state/airz-alert-state-1791432337110/verification.json)、tests/receipt-baseline/final-source-validation,ACL当前用户/SYSTEM;UTF-8无BOM/空白/新链接/AST/两仓库diff、63任务/27页面核对。Python-B、旧缓存和既有业务改动保持,无提交/推送/PR、系统安装、生产/账号/策略/积分或小程序代发。
|
||||||
|
|
||||||
|
进度1.86/0.96、文档v1.54/0.67,RELEASE-003阻塞/正式未验收保持。当前只有纯状态去重,缺原子state/outbox/互斥和投递确认,不能保证崩溃后发送不丢/不重复。下一项先合成文件的原子保存/互斥/eventId去重、崩溃/重复输入恢复和模拟确认,不接外部渠道;真实Linux/安全采样、渠道/收件目标、Nginx/FPM/TLS恢复、密钥托管/生产规模RTO/RPO及正式签收仍待条件。课程整篇一次已读、小程序用户发行及积分/供应商约定保持。
|
||||||
|
|
||||||
|
### 0.95 2026-10-08 Linux/systemd队列守护与告警隔离准备
|
||||||
|
|
||||||
|
承接0.94,新增[守护隔离准备手册](D:/AAdesk/202609/airz/database/worker-supervision/README.md)、[公开作用域spec](D:/AAdesk/202609/airz/database/worker-supervision/rehearsal-spec.json)、[合成unit](D:/AAdesk/202609/airz/database/worker-supervision/airz-analysis-rehearsal.service)及[离线预检](D:/AAdesk/202609/airz/tests/worker_supervision_preflight.py)。独立用户/srv目录、非默认DB3330/Redis6410/DB15及独立队列,原探针persistent/real策略、模型禁用/网络函数封住;只计划值,不配置环境或生成私密运行config。unit含重启5秒、限速60秒3次、Stop240秒、SIGTERM/control-group及受限沙箱,不用于生产。
|
||||||
|
|
||||||
|
预检复用标准库安全文件/严格JSON,核8份依赖源码摘要;拒绝生产/default/remote/model/凭据/共享队列/类型、root/生产入口/fake策略、重复指令/续行/EnvironmentFile、过宽写目录/无限时间/无启动限速。默认只stdout,失败固定码,无演练/框架导入、子进程、DB/Redis/网络/worker或模型运行。规范化安全快照预览识别active但degraded、限速/失败/非计划停机、stale和未知观测;核年龄/阈值/状态,维护仅抑制预期stopped/missing,不隐藏故障。样本为历史合成输入,无定时采集/连续失败门槛/状态去重/恢复通知/持久化或外部投递。
|
||||||
|
|
||||||
|
49项合成文件测试通过;现有PHP7.4.3心跳纯类读回调生成10类实际DTO,Python规则兼容通过,不初始化框架/.env/DB/Redis/worker。官方systemd手册及源码审阅:worker无应用SIGTERM排空,Stop240秒不保证模型请求自然完成;显式stop不自动重启,启动限速后不保证自动再试;worker存储错误可保持active,OnFailure不够,累计NRestarts不当近期重启风暴。本机没有systemctl/systemd-analyze,原生解析/实际信号、重启/限速/开机恢复未执行,不连接生产来代替。
|
||||||
|
|
||||||
|
新私密证据[verification.json](D:/AAdesk/202609/airz-backups/worker-supervision-preflight/airz-supervision-preflight-1791431462713/verification.json)、[native-heartbeat-compatibility.json](D:/AAdesk/202609/airz-backups/worker-supervision-preflight/airz-supervision-preflight-1791431462713/native-heartbeat-compatibility.json)及tests/final-source-validation,ACL当前用户/SYSTEM;原42项证据校验回归/14份旧回执通过且字节保持。UTF-8无BOM/空白/新链接/AST/两仓库diff、63任务/27页面核对;既有业务改动保持,Python-B/旧缓存保留,无服务启停/系统安装/提交/推送/PR、生产/模型/外部通知。
|
||||||
|
|
||||||
|
进度1.85/0.95、文档v1.53/0.66,RELEASE-003阻塞/正式未验收保持。下一项安全快照的连续失败门槛、故障去重/恢复事件及维护边界,只合成序列/离线状态检查不投递。真实Linux演练、渠道/收件目标、Nginx/FPM/TLS恢复、密钥托管/生产规模RTO/RPO和运营/真机签收仍待条件;小程序用户发行、课程整篇一次已读及积分/供应商约定保持。
|
||||||
|
|
||||||
|
### 0.94 2026-10-08 部署恢复手册与只读证据入口
|
||||||
|
|
||||||
|
承接0.93,新增[统一恢复手册](D:/AAdesk/202609/airz/database/deployment-recovery-runbook.md)、[固定catalog](D:/AAdesk/202609/airz/database/release-evidence.json)、[标准库校验器](D:/AAdesk/202609/airz/tests/release_evidence.py)及[文件测试](D:/AAdesk/202609/airz/tests/release_evidence_test.py)。手册串联r2定向恢复、密钥/整库、队列补偿与导入中断,列明现场保留、非空目标拒绝、后续编辑/引用保护、未知用量/明确重试和Token不复活的处置顺序。
|
||||||
|
|
||||||
|
五组14份安全JSON回执、21个不同执行源码/纯类文件核验通过。原检查数分别157/53/76/92/53,只逐组核对、不合并累计;清理断言/零生产与模型边界/134队列审计/三导入故障/耗时及新回归关联一致。唯一旧key_recovery_rehearsal.py摘要5913a69c…与当前a49ac108…差异明确由restore-import及key-regression覆盖;两组均须通过且同文件摘要匹配当前。旧回执字节保持,不改写原执行hash,也不强制历史文档摘要等于当前。
|
||||||
|
|
||||||
|
42项合成文件测试通过,覆盖缺失、篡改、失败、cleanup/端口、布尔/零调用类型、组/计数、相对路径/秘密文件/源码白名单、符号链接与Windows reparse元数据、大小、重复键/NaN/指数溢出、导入事实/阶段和回归替代关联、CLI安全JSON/退出码/不写文件。链接/junction使用元数据注入,不声称实际系统链接演练。校验器只用标准库,不导入演练/框架、不起子进程、不连DB/Redis/网络或启动worker/模型;只stdout,错误固定码,formalAcceptance始终false。历史cleanup不证明当前服务/端口/ACL;catalog摘要不是数字签名,可信来源是核验前提。
|
||||||
|
|
||||||
|
新私密证据为[verification.json](D:/AAdesk/202609/airz-backups/release-evidence-reviews/airz-evidence-review-1791430386861/verification.json)及同目录receipt-baseline/tests/final-source-validation,ACL仅当前用户/SYSTEM;由独立收尾流程保存,不写旧证据目录。本轮没有启停服务/安装依赖,Python-B、旧缓存保留。两仓库UTF-8无BOM/空白/新链接/源码AST与diff、63任务/27页面核对,原业务改动保持,未提交/推送/PR、生产发布、账号/策略/积分操作或小程序代发。
|
||||||
|
|
||||||
|
进度1.84/0.94、开发文档v1.52/0.65;RELEASE-003阻塞/正式未验收保持。下一项先审阅部署单元和任务/心跳,准备Linux/systemd队列守护与告警隔离方案和离线检查入口;真实信号/重启/开机恢复需新Linux隔离环境,投递需通道/收件目标。Nginx/FPM/TLS恢复、真实密钥托管/生产规模RTO/RPO及运营/真机签收仍待各自条件,不直接停止生产worker或发送外部通知。课程整篇一次已读、小程序用户发行及积分/供应商约定保持。
|
||||||
|
|
||||||
|
### 0.93 2026-10-08 合成全库恢复导入中断与耗时
|
||||||
|
|
||||||
|
承接0.92下一项,新增后端[导入中断主控](D:/AAdesk/202609/airz/tests/restore_interruption_rehearsal.py)和[演练/处置说明](D:/AAdesk/202609/airz/database/restore-interruption-rehearsal.md)。共享[key_recovery_rehearsal.py](D:/AAdesk/202609/airz/tests/key_recovery_rehearsal.py)将原有备份/密钥预检提取为verified_backup,校验顺序/错误码保持,restore新增单调时钟阶段耗时;Secret/Env、schema和业务源码不改。另一新合成环境完整53项回归通过,不与本项92项合并累计。
|
||||||
|
|
||||||
|
全新MySQL5.7.26/3320、Redis5.0.14.1/6400、PHP7.4.3、6合成库/私密ROOT/随机密钥下92项通过。source无数据26表/8触发器schema后加入1禁用模型/3凭据、1会员/资料和601 config,共607合成行,5非空GCM密文/1NULL。只加载Env/Secret纯类,无默认/生产.env、dump/实际密钥、框架/worker或模型调用;模型固定false/127.0.0.1:1,14项双入口目标/模型负例先拒绝,密钥和数据库包分别保管。
|
||||||
|
|
||||||
|
| 本轮实际证据 | 结果 |
|
||||||
|
| --- | --- |
|
||||||
|
| 部分表导入中断 | 原包前11个完整表块执行后停止SQL输入,核对本机连接/owned PID并强制终止mysql.exe;11张已提交表/601 config保留,缺15表 |
|
||||||
|
| 未提交事务中断 | 显式包裹config前32条完整INSERT,导入连接看见32行、其他连接0行且INNODB_TRX活跃;终止后32行回滚,前11张DDL不回滚 |
|
||||||
|
| 完成后丢本地回执 | 全SQL执行完成后、测试成功回执未写时终止客户端,26表数据/结构其实完整;独立解密通过,不能用非零退出推断库为空 |
|
||||||
|
| 非空目标保护 | 三个中断目标重复导入均RESTORE_TARGET_NOT_EMPTY且摘要保持;实际重启自建MySQL后状态仍持久,未提交行不复活 |
|
||||||
|
| 另建空目标恢复 | 新替代库全26表/行/列/索引/外键/8触发器、5密文/1NULL恢复一致,身份明文和123456.78元保持,重复恢复拒绝;三个现场/来源保持 |
|
||||||
|
| 失败门禁与安全 | 缺失/短/错误key、损坏包/manifest、cnf漂移和来源即目标拒绝,空夹具库保持;父/key/gzip/config/MySQL数据目录ACL实测通过 |
|
||||||
|
|
||||||
|
SQL371203字节、gzip18876字节,本机小合成样本完整恢复 **1.235秒**(预检0.063、SQL导入1.031、数据结构核对0.094、数据库解密0.047;空库门禁低于测量分辨率);备份0.109秒、故障后MySQL重启1.922秒、92项清理前全程14.203秒,cleanup0.375秒。各阶段使用time.monotonic、总计一致;嵌套父/子阶段不能重复相加。来源无并发写入,不记生产RTO/RPO、吞吐或真实容量承诺。
|
||||||
|
|
||||||
|
三个客户端均通过实际连接ID/状态握手,stdout固定控制标记、stderr空,终止后服务器session释放;暂停发生于完整表块/INSERT边界,事务场景显式START TRANSACTION,不能外推为普通整库事务回滚、任意语句中途损坏、服务器断电或磁盘故障。最终6库及包/密钥/部分恢复现场私密保留,不自动删库或切换活动连接,不复活已撤销Token。
|
||||||
|
|
||||||
|
最终证据:[verification.json](D:/AAdesk/202609/airz-backups/restore-interruption-rehearsals/airz-key-recovery-1791429283246/verification.json)、[cleanup.json](D:/AAdesk/202609/airz-backups/restore-interruption-rehearsals/airz-key-recovery-1791429283246/cleanup.json),三份interruption回执、六源码hash和阶段耗时齐备;[共享入口53项回归](D:/AAdesk/202609/airz-backups/restore-interruption-regression/airz-key-recovery-1791429315094/verification.json)及cleanup保留,使用新MySQL3321/Redis6401。首轮均完整通过;全部owned客户端/服务停止、3320/6400/3321/6401释放,默认服务未处理,Python-B/旧缓存不重试清理。收尾语法/UTF-8/链接/diff和63任务/27页面校验另存final-source-validation.json。
|
||||||
|
|
||||||
|
进度1.83/0.93,开发文档v1.51/0.64,RELEASE-003整体阻塞/正式验收保持;无提交/推送/PR、生产发布/回退、小程序代发、账号/策略/积分操作,既有改动保持。下一项部署恢复手册整合及证据校验入口,串联r2/密钥/队列/导入中断并列明环境条件和只读检查;Linux/Nginx/FPM/TLS、systemd信号/守护/开机恢复、外部告警、生产规模恢复耗时/实际密钥托管和正式签收仍待各自条件。课程整篇一次已读、小程序用户发行及积分/供应商约定保持。
|
||||||
|
|
||||||
|
### 0.92 2026-10-08 队列进程生命周期隔离演练
|
||||||
|
|
||||||
|
承接0.91下一项,新增后端[主控](D:/AAdesk/202609/airz/tests/queue_lifecycle_rehearsal.py)、[PHP执行器](D:/AAdesk/202609/airz/tests/queue_lifecycle_probe.php)及[复跑/维护说明](D:/AAdesk/202609/airz/database/queue-lifecycle-rehearsal.md)。真实AnalysisWork、AnalyzeAssessment、AnalysisTasks、评估冻结/发布、Redis reserved迁移及心跳代码保持,未发现需修改的业务源码缺陷。
|
||||||
|
|
||||||
|
全新MySQL5.7.26/3319、Redis5.0.14.1/6399、PHP7.4.3、私密ROOT及合成库中最终76项通过,134份成功子进程审计。配置deepseek.enabled始终false、api_key为空、URL固定127.0.0.1:1;真实禁用策略拒绝提交/重试及消费。成功路径仅在显式fake-policy进程内替换策略返回值和客户端,真实模型客户端文件未加载、网络调用函数禁用。受控常驻循环通过测试Input/stop文件退出,不作为Linux信号或systemd验证。
|
||||||
|
|
||||||
|
| 本轮开发证据 | 结果 |
|
||||||
|
| --- | --- |
|
||||||
|
| 真实任务/队列 | 正常完成、完成后的双消息不调用;领取后fire前强制退出,实际reserved到期投递次数1→2、业务尝试仍1 |
|
||||||
|
| 运行中中断 | streaming/有效租约保持,重复消费不再调用;过期后AI_TASK_INTERRUPTED,无自动重试、未知用量NULL,明确同键重试新task仅一次 |
|
||||||
|
| 并发迟到结果 | 旧客户端阻塞时新进程完成重试/发布;释放旧响应仅补原task用量,原失败码/新报告/新日志及完成通知保持 |
|
||||||
|
| 心跳生命周期 | 新owner接管,旧进程退出不能覆盖;有界退出stopped,强制终止不伪报stopped,显式180秒后stale,缺键stop不重建;6字段/TTL核对 |
|
||||||
|
| 实际存储中断 | 自建MySQL停止/重启后同command恢复,期间degraded且数据库保持;Redis停止/无持久重启丢消息,DB按超过30秒边界补投、重复恢复0增量并完成 |
|
||||||
|
| 隔离/保全 | 双入口18项不安全目标/.env负例提前拒绝;最终三队列0,22非目标表、26表列/索引/8触发器保持,目录/config ACL实测通过 |
|
||||||
|
|
||||||
|
业务租约61秒(遵守真实max规则)、Redis reserved expire仅测试配置2秒;业务租约过期/派发30秒边界用合成状态时间注入,心跳stale用只读snapshot显式时间。最终1合成会员/1资料/7评估会话/15日志/9成功或失败通知;完成通知按输入版本去重。产品解释/助手走真实空闲扫描,但未构造其任务,不外推覆盖。
|
||||||
|
|
||||||
|
安全证据:[verification.json](D:/AAdesk/202609/airz-backups/queue-lifecycle-rehearsals/airz-queue-lifecycle-1791428470406/verification.json)、[cleanup.json](D:/AAdesk/202609/airz-backups/queue-lifecycle-rehearsals/airz-queue-lifecycle-1791428470406/cleanup.json),13源码摘要、审计和替身/时间边界齐备。四轮早期失败为测试Config两级键、PHP7禁用函数检查、通知版本ID及假正文含数字适配,现场/清理回执保留;修正测试后全新完整重跑,不累计或放宽业务校验。全部owned测试进程/MySQL/Redis停止,3319/6399释放,默认服务未处理;私密合成数据/日志/事件保留,Python-B且旧缓存不重试清理。
|
||||||
|
|
||||||
|
零生产连接/活动库worker/真实模型网络调用,未提交/推送/PR、生产发布、小程序代发、账号绑定/改密/策略/积分迁移,两仓库既有工作保留。进度1.82/0.92、63任务/27页面保持,RELEASE-003整体阻塞及正式验收不变。下一项可隔离推进全库恢复导入中断、部分新目标保留/另建空目标恢复及耗时;Linux守护/信号/Nginx/FPM/TLS、外部告警、实际密钥托管和正式签收待各自条件。课程整篇阅读/一次已读、小程序用户发行和已撤销Token不复活约定保持。
|
||||||
|
|
||||||
|
### 0.91 2026-10-08 合成加密资料与单独密钥备份恢复
|
||||||
|
|
||||||
|
承接0.90下一项,新增后端[演练入口](D:/AAdesk/202609/airz/tests/key_recovery_rehearsal.py)、[独立PHP探针](D:/AAdesk/202609/airz/tests/key_recovery_probe.php)与[恢复说明](D:/AAdesk/202609/airz/database/key-recovery-rehearsal.md)。实际复用并核对Secret/Env纯类,不启动框架或读默认/生产.env;当前AES字段是fa_model_keys.api_key/api_secret,身份证仍明文/后台脱敏,不改业务加密代码、密钥或schema。
|
||||||
|
|
||||||
|
新本机MySQL5.7.26/3318、Redis5.0.14.1/6398、三座新合成库完成53项检查。一个禁用模型/三禁用凭据、一个会员/合成明文资料和配置标记;5非空密文含中文/换行/NUL,另一个secret为NULL。mysqldump全26表/8触发器和数据包摘要、列/索引/外键/触发器与全部行恢复一致。随机32字节合成密钥单独私密备份,原路径封存后只用恢复文件解密;数据包没有AES密钥/凭据明文,但包含合成身份明文,仍受私密ACL保护。
|
||||||
|
|
||||||
|
| 本轮证据 | 结果 |
|
||||||
|
| --- | --- |
|
||||||
|
| 实际数据库与密钥恢复 | 26表、8触发器全数据/结构一致,3凭据6字段核对(5GCM解密/1NULL),明文身份和123456.78元保持 |
|
||||||
|
| 密钥/备份失败保护 | 缺失、非法Base64、31字节、错误32字节密钥、gzip截断、manifest/密文漂移均拒绝,目标无写入;跳过摘要的篡改密文仍被GCM认证拒绝 |
|
||||||
|
| 目标保护 | MySQL cnf连接漂移、非空目标和重复导入拒绝;恢复库密文损坏拒绝且不写库,撤销故障夹具后完整 |
|
||||||
|
| 隔离门禁 | Python/PHP各6类目标/模型错误提前拒绝,共12项;明确不连接正式库或外部模型 |
|
||||||
|
| 来源/权限/安全 | 源库在全部场景前后保持,目录ACL禁继承且只用户/SYSTEM,数据包/密钥继承权限一致,安全回执不含密钥/凭据明文 |
|
||||||
|
|
||||||
|
最终安全回执:[verification.json](D:/AAdesk/202609/airz-backups/key-recovery-rehearsals/airz-key-recovery-1791427161829/verification.json)及[cleanup.json](D:/AAdesk/202609/airz-backups/key-recovery-rehearsals/airz-key-recovery-1791427161829/cleanup.json)。两个执行源码/Secret/Env摘要已记录。首轮1791427042626因系统Windows PowerShell安全模块无法加载、ACL摘要为空而失败,保留失败回执;显式改用现有pwsh/Stop策略后在新环境完整重跑53项通过,不放宽权限/安装软件。自己的MySQL/Redis已停止,3318/6398释放;合成库文件/备份/密钥私密保留。使用Python-B,不新增字节码或重试前轮拒绝的缓存清理。
|
||||||
|
|
||||||
|
零生产连接、零真实worker/模型执行;没有生产发布/回退、提交/推送/PR、小程序代发、账号/策略/积分改动,两仓库原业务工作保留。只新增演练工具/说明与文档,同步纠正database/README的历史card_no加密描述。当前开发证据不等于生产5.7.44/Linux远程灾难恢复或实际密钥托管验收;MySQL DDL隐式提交,真正导入中断可能留下部分新库,本轮未注入这一阶段故障。63任务/27页面保持,RELEASE-003整体阻塞/正式验收状态不变。
|
||||||
|
|
||||||
|
下一项RELEASE-003队列进程生命周期:新合成库/Redis、禁用模型及受控测试进程,验证退出/重启/租约补偿/迟到结果/重复任务;不启动真实analysis:work连接活动库。Linux/Nginx/FPM/TLS、systemd/外部告警、恢复耗时/导入中断与正式签收待其各自条件;已撤销Redis Token不能从备份复活,小程序仍用户发行。
|
||||||
|
|
||||||
|
### 0.90 2026-10-08 r2 隔离实际部署、异常中断与定向恢复
|
||||||
|
|
||||||
|
承接0.89的下一开发入口,新增后端[演练主入口](D:/AAdesk/202609/airz/tests/release_rehearsal.py)、[文件执行器](D:/AAdesk/202609/airz/tests/release_rehearsal_runner.py)和[独立PDO执行器](D:/AAdesk/202609/airz/tests/release_rehearsal_db.php),以及[复跑/恢复说明](D:/AAdesk/202609/airz/database/release-rehearsal.md)。冻结生产release.py/database.php保持;新工具拒绝非合成ROOT、正式库名、默认端口/远程地址、.env、模型开启/外部URL,不加载框架默认环境或生产私密备份。
|
||||||
|
|
||||||
|
全新本机MySQL5.7.26/3317、Redis6397、PHP7.4.3/HTTP18177及六座合成库/ROOT/检查点下,最终157项通过。应用/恢复冻结13运行文件、16权限节点/3正式模板、8FAQ、课程intro及DB/site版本;71依赖/保护文件、26表列结构保持。纯库复用BusinessPermissions/ContentPublication,13文件独立备份/原子替换;数据库intent和恢复intent提交前持久化,磁盘回执必须与数据库事实核对,不整表/整库覆盖。
|
||||||
|
|
||||||
|
| 本轮开发证据 | 结果 |
|
||||||
|
| --- | --- |
|
||||||
|
| 正常/重复部署与恢复 | 精确增量及幂等通过;actualTargetedRecovery=true |
|
||||||
|
| 发布异常中断 | 第5文件、DB提交前、DB提交成功回执丢失、site版本写入后退出86;新进程恢复;提交回执丢失还验证继续部署不重复新增 |
|
||||||
|
| 恢复再次中断 | DB提交前事务回滚、DB提交后回执丢失、第5文件恢复后退出均可重试 |
|
||||||
|
| 后续业务数据 | 合成密码变化、积分、浏览量、已读时间、通知、另一FAQ及新配置恢复后全部保留 |
|
||||||
|
| 保护守卫 | FAQ/课程正文/版本/源码后续编辑、组绑定、发布后新组引用新节点全部拒绝,拒绝时数据库一致 |
|
||||||
|
| 实际本机HTTP | 10请求及2正文检查:公开内容200、FAQ跨入口404、匿名消息/产品401;FAQ匹配冻结种子,课程简介更新,模型日志保持 |
|
||||||
|
| 双入口隔离拒绝 | Python/PHP各拒绝6类目标/模型错误,共12项;发生于连接之前 |
|
||||||
|
|
||||||
|
安全证据:[verification.json](D:/AAdesk/202609/airz-backups/release-rehearsals/airz-release-rehearsal-1791425757362/verification.json)及[cleanup.json](D:/AAdesk/202609/airz-backups/release-rehearsals/airz-release-rehearsal-1791425757362/cleanup.json),含三个源码摘要/版本、命令回执及场景目录。最初合成课程未规范化导致非目标内容门禁拒绝,改用ContentPublication纯库构造后通过;失败材料及143项首轮回执保留,不隐藏或计为成功。最终157项补恢复提交前中断,避免仅看恢复intent存在就误认已提交。
|
||||||
|
|
||||||
|
零生产连接、零真实worker/模型执行,无生产发布/回退、小程序发行、提交/推送/PR;自己的MySQL/Redis/PHP停止,3317/6397/18177释放。合成资料/检查点在JUN/SYSTEM受限目录保留;不删除既有默认服务/库或用户改动。合成旧源码是候选加无行为注释,不能视为真实生产历史before;Windows/MySQL5.7.26结果不外推Linux/生产5.7.44、Nginx/FPM/HTTPS或全库灾难恢复。
|
||||||
|
|
||||||
|
RELEASE-003本批增量实际恢复开发证据已补,整体仍受EXT-DEPLOY、守护/告警与密钥/灾难恢复证据影响,任务阻塞/正式验收状态不变;63任务/27页面保持。下一开发入口为同类隔离合成加密资料/密钥备份恢复、队列进程生命周期和恢复手册,不重复生产r2、不调整账号/策略/积分规则;小程序仍用户发行,正式运营/真机验收待办。
|
||||||
|
|
||||||
|
### 0.89 2026-10-08 后台与内容 r2 生产维护发布
|
||||||
|
|
||||||
|
用户明确回复“同意授权”后,已按[维护确认单](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/维护执行确认单.md)通过宝塔Playwright完成本批维护。实际站点仍为https://airz.hqling.cloud、/www/wwwroot/xctai.cn,数据库127.0.0.1:3306/airz;09:29:17/09:29:49+08:00复核全部13项r2观察门禁通过,84文件真实before/属主/权限、15相关表、19权限计划、FAQ缺8slug、课程ID1版本/简介/正文/进度、环境及策略保持。正常面板登录/访问审计属于工具使用,不计为业务验收。
|
||||||
|
|
||||||
|
09:35:21前已阻断外部入口、确认任务/调用/队列空闲并停worker和PHP-FPM,备份13原文件、site.php、权限三表/绑定、课程/FAQ/版本/策略存在状态及26表完整数据库。私密服务器归档/root/airz-admin-content-20261007-r2-20261008,所有目录700/文件600;完整数据库gz SHA256 be8791b009fb236bc6b0500b94f177ffb2906060d2d41fe7bbd3f6e1dbb4c09e。09:35:46完成13运行文件按原属主/权限原子替换,保留AssessmentRecords.php的已审阅线上字节;维护包和临时凭据仅在Web根之外,未上传前端产物、覆盖依赖/.env或执行DDL。
|
||||||
|
|
||||||
|
冻结权限迁移只插入16节点(ID134—149)和运营v1/客服v2/技术v5三模板(ID6/7/8),父组1;现147节点/8组/1绑定,重复预检0项,原节点/组/绑定保持。8 FAQ首次插入ID5—12,仅profile/password/phone/assessment/result/amount/files/draft;4资讯/3课程保持。课程ID1仅intro改为整篇阅读文案并更新时间,正文/3稳定ID/顺序/推荐/发布/进度保持;新版本729e675e4e67da195fd7a77a47b9c1d838d60748d9763b2673317f3cb0f318b8。只将fa_config ID4/version value和线上site.php/version同步为20261007-admin-content-r2,其余配置保持;删除当前File驱动的__menu__精确缓存,受影响模板缓存当次不存在,不清Redis。PHP-FPM启动加载新源码,worker在验证期间仍停止。
|
||||||
|
|
||||||
|
22项服务器本机HTTPS烟测及20项公网可信TLS检查通过:资讯/课程/FAQ/首页/搜索200,匿名私有接口401、敏感路径404,FAQ跨文章/课程入口404、旧GET/POST308、验证码PNG、登录页新资源版本。公开FAQ8条及课程简介逐字段匹配计划,84文件after/依赖/保护与15相关表复核通过。数据库26表核对,21非目标表及模型日志保持,原管理员密码/账号、绑定、策略和学习进度未变。回退干跑确认13源码原件、FAQ新增ID、权限新增ID和课程/版本目标字段具备守卫,0次恢复写入;这是回退条件验证,不等于RELEASE-003实际恢复演练或正式运营验收。
|
||||||
|
|
||||||
|
09:37:37恢复worker及原Nginx配置、移除维护gate;09:39:34最终心跳ready/idle、0秒新鲜,三队列0,analysis/FPM/Redis active,PID3489163/3488235/552222。恢复后最多300条journal样本实际0条,无近期错误样本,不推断全时段无错。ai_runtime_policy仍缺行、合法环境默认Flash/20次/3尝试保持,模型日志表未变,维护及烟测0收费调用、未触发重试或测试任务。远程临时数据库INI/client cnf和同目录暂存文件已清理;面板退出、清cookies并关闭,凭据未落仓库。
|
||||||
|
|
||||||
|
本机受限回执为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)、prepare/deploy/verify/rollback-check/resume/observe/public-smoke及post-release-probe回执;冻结runtime/maintenance/manifest/verifier哈希保持。最初大段终端命令超过Linux单参数限制、传输超时,复核私密目录尚未创建、入口未维护;改为4段传输且整体SHA256复核后完成,无业务影响,不将失败记为发布步骤成功。
|
||||||
|
|
||||||
|
小程序仍由用户发行,未编译/上传、未进行正式运营/真机验收或供应商调用;未提交、推送或创建PR,既有两仓库业务源码保持。63任务/27页面及各模块正式验收状态不变。下一开发入口为本批增量部署和恢复的独立隔离实际演练,补中断恢复与字段/新增ID回退证据;不在生产重复执行本批、不自动绑定正式账号或调整策略。积分业务规则、供应商余额/账单/告警及真实资料/真机验收仍待其各自条件。
|
||||||
|
|
||||||
|
### 0.88 2026-10-07 生产只读实测与r2具体发布计划
|
||||||
|
|
||||||
|
本节追加22:14:43/22:14:55(+08:00)只读复核与临时凭据收尾,不新增开发任务或验收版本。84文件真实before/属主/权限、15表、19权限计划、8缺FAQ、7现有资讯/课程slug、ID1课程版本/正文/进度、环境/资源版本及策略全部保持;三服务active、活动任务/调用及三队列0、心跳idle且0秒新鲜,r2共13个观察门禁通过。冻结包/manifest/84后端/28前端参考哈希仍匹配,原始主脚本ok=false及精确已审阅变体保持。复核工具在仓库外,初次本机比较把版本行ID4转为字符串造成拒绝,已改为原类型精确比较,保留初次失败与修正回执,不重连数据库。`panel.private.json`和执行JS精确删除,宝塔专用会话退出关闭;无生产停写/worker启停、备份、业务写入、模型调用或提交/推送/PR。已形成[维护执行确认单](D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/维护执行确认单.md),新增权限/FAQ等r2具体维护范围仍待按用户AGENTS.md第8节明确授权;执行时再次复核窗口内状态。
|
||||||
|
|
||||||
|
用户补充宝塔当前登录方式后,已通过缓存Playwright CLI登录并进入本地服务器终端。主预检时间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。独立PDO会话只读事务,纯库按原manifest哈希在内存加载,无ThinkPHP初始化、包上传/解压、生产检查文件、迁移/apply、内容维护或收费调用。正常面板认证/终端访问审计会产生记录,不等于业务数据写入。
|
||||||
|
|
||||||
|
84文件实际读取:13运行全部待更新、60依赖和10已部署入口/反馈保护文件精确匹配。唯一依赖差异AssessmentRecords.php为线上22393字节/本机22389字节,逐字节规范LF后完全一致,仅4行CRLF/LF不同;保留线上哈希6e294e8db263ad5a705ac308741f02fd1dfd12a191c9a20270d0039e49aecc71,不覆盖该依赖。新r2 manifest记录13真实before/所有者/权限及有哈希审阅回执的精确生产变体,源包逐字节保持;其他漂移仍拒绝,原始主预检ok=false保留,不冒充原清单全通过。
|
||||||
|
|
||||||
|
15张相关表的InnoDB、指定列类型/空值/显式排序规则、唯一键和声明外键核对通过,包含评估版本/反馈/消息/课程进度;不是全库schema验收,不迁移积分。当前权限131节点/5组/1绑定,唯一正常超管根1;严格计划实际缺16节点及运营v1/客服v2/技术v5三模板,共19项,不是隔离63项/根37。只读记录规则范围与before摘要,未改节点、模板或绑定,窗口内计划改变即重新审阅。
|
||||||
|
|
||||||
|
实际type6 FAQ总行0,8种子slug全部不存在,取消此前password/phone“改已有答案”计划,改为独立批准后首次导入8条已冻结FAQ;种子文案已经准确说明短信登录/重设及手机号换绑未开放。4资讯/3课程slug各唯一,不能为改简介重复import_content。credit-basics实测已发布/推荐ID1,版本009a6ac642d2be36f89a867dc42c0f4df9c86954f498fff0fb510f51f9cb6946,原简介与参考相同,3稳定段落ID/顺序/正文摘要及进度0已记录;仅拟改intro,仍整篇连续阅读一次已读。资源版本另实测fa_config id4/version=1.0.2与site.php=1.0.1不一致,计划批准后只将两个version字段同步为20261007-admin-content-r2,不调用refreshFile整体写出环境配置,其他site/.env保持。
|
||||||
|
|
||||||
|
airz-analysis/php-fpm-74/redis均active,观察PID2525192/2525169/552222、NRestarts0/0/1;无processing/pending/streaming,Redis三队列0、心跳idle且1秒新鲜。worker stdout/stderr均journal,最多300条最近15分钟样本实际0条;只能说明无近期样本,不能宣称全时段无错误。ai_runtime_policy缺行,解析当次.env默认Flash/20次/3尝试且环境开关开启;缺行兼容合法,不创建/删除/修改策略,也不调用供应商。模型环境开启不代表账单/余额/服务验证。
|
||||||
|
|
||||||
|
终端画布无法读取完整文本,改为Playwright监听实际WebSocket接收安全压缩回执;直接刷新终端曾缺ws_callback,改首页→终端进入后恢复,未改面板/系统。最初证书不受信任,显式专用会话加载既有ignoreHTTPSErrors面板配置后登录;不改变公网业务TLS或认证。源码差异仅取明确无秘密PHP文件,.env/site只输出哈希与资源版本,不返回凭据、会员资料、模型正文或原始日志。缓存CLI未新增依赖;本轮无本机服务启停,不重启历史H5预览。
|
||||||
|
|
||||||
|
当前受限r2目录D:/AAdesk/202609/airz-backups/admin-content-release-reviewed-20261007/(JUN/SYSTEM ACL),含原13运行/7维护包、生产回执、依赖差异审阅、实际权限/内容/资源版本计划、新manifest和verifier。manifest SHA256 dad26e8d1e8067d840f9dc8ed0b7d062798239fb5d8736f26cba59a6c4aedca0;verifier SHA256 5bcfed4dae360fde7c7a18d2dd737d30749cb5dd346acc058907526686260b0e。包/84后端/28前端源码核对通过;5类本机验证通过:已审阅精确生产变体接受、未知同逻辑换行哈希拒绝、逻辑变更拒绝、错误manifest拒绝、篡改审阅拒绝,合成文件逐项清理。不重复前序业务全量测试或新编译小程序;回执见[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)和[发布清单](后台内容增量发布清单.md)。
|
||||||
|
|
||||||
|
下一项为本批具体生产维护授权:备份后发布13运行文件、精确资源版本同步、19权限增量、8 FAQ首次导入及ID1课程intro维护;账号绑定、用户已改管理员密码和运行策略均不包含。实际执行前复核before/结构/活动、停写/空闲worker、私密备份,逐项记录after与定向回退;不得整表/整库恢复后续业务数据。尚未部署/数据维护、提交/推送/PR或正式运营/真机验收,63任务/27页面及开发状态保持,小程序仍由用户发行。
|
||||||
|
|
||||||
|
### 0.87 2026-10-07 生产只读预检脚本准备与登录条件
|
||||||
|
|
||||||
|
承接0.86,本轮先检查可复用宝塔会话和私密配置。缓存Playwright CLI可用但无打开浏览器,前次面板临时凭据已清理;额外浏览器会话查询因Chrome/Edge的`unsupported Codex auth method: apikey`不能复用,在应用浏览器没有页签。已请求当前宝塔入口及面板账号密码;未登录宝塔、读取生产文件/数据库或使用用户已更换的网站admin密码,不重置账号,不修改浏览器认证设置或安装工具。
|
||||||
|
|
||||||
|
完成仓库外内存预检材料,受限目录 `D:/AAdesk/202609/airz-backups/admin-content-preflight-20261007/`,ACL仅JUN/SYSTEM。冻结原manifest中的84个文件和四个纯库哈希,准备15张相关表的引擎、列类型/空值/显式排序规则、唯一键/声明外键核对;权限计划读取真实根角色、完整节点/组/绑定并复用BusinessPermissions严格判断,不套用测试根37或63项。内容按15个种子slug检查缺失/重复,并只返回password/phone及credit-basics三条的真实ID、版本、目标字段和正文摘要/稳定ID;种子和候选包保持。读取现行策略或缺行兼容、systemd状态/PID、最多300条最近15分钟worker日志的错误计数、活动评估/调用以及Redis三队列与心跳;不返回凭据、会员资料、模型正文或原始日志。
|
||||||
|
|
||||||
|
服务器脚本拟由宝塔终端在内存执行,精确站点`/www/wwwroot/xctai.cn`和数据库`127.0.0.1:3306/airz`门禁;独立PDO设置MySQL会话只读事务,无框架初始化、FOR UPDATE、迁移/导入apply、生产检查文件/上传包或业务写入。纯库从本地可信源码按哈希冻结后在内存加载。`ok`仅表示观察条件满足,不能作为部署许可;文件、权限、内容、策略、服务和活动分别有证据字段,窗口内仍需复核和备份。
|
||||||
|
|
||||||
|
本机6类检查通过:编译Python/PHP语法;错误现存根在子进程/文件核对前拒绝;本机不存在生产根时PHP在读.env前拒绝;合成错误DB目标、损坏纯库均在假PDO构造前拒绝;安全压缩回执传输。真实数据库连接0,生产SQL/结构/文件before/权限实际缺项和服务状态尚未实测。安全回执[prepared.json](D:/AAdesk/202609/airz-backups/admin-content-preflight-20261007/prepared.json)、[probe-spec.json](D:/AAdesk/202609/airz-backups/admin-content-preflight-20261007/probe-spec.json)、[validation.json](D:/AAdesk/202609/airz-backups/admin-content-preflight-20261007/validation.json)。原runtime/maintenance/manifest哈希保持,不重复已有业务全量检查或新编译小程序;未启停本机服务,历史5175/PID3484本轮末未见对应监听/进程;保留两仓库既有改动,无提交/推送/PR。
|
||||||
|
|
||||||
|
下一项仍为生产只读实测,当前需补宝塔登录信息。登录后用Playwright核对目标、执行冻结内存脚本、保存安全生产回执;漂移/计划冲突/内容差异先审阅,再形成明确before及备份/发布/恢复清单。未完成生产预检,不部署、不停写/停worker、不维护权限/内容/绑定,不记正式运营或真机验收;小程序由用户发行、课程整篇阅读一次已读、63任务/27页面及既有状态保持。
|
||||||
|
|
||||||
|
### 0.86 2026-10-07 后台、内容与评估增量配套发布准备
|
||||||
|
|
||||||
|
承接0.85的下一开发入口,已形成[后台内容增量发布清单](后台内容增量发布清单.md)和受限本机候选包。核对10月4日3716文件包记录、10月5日7个反馈/消息文件及迁移、10月7日3个根域名入口;反馈7文件当前哈希与已部署artifact manifest全部一致。未取得10月4日完整当前生产文件快照,本轮没有连接生产、使用旧临时密码或操作用户已自行改密的账号;Git560d089只作参考,不冒充线上before哈希。
|
||||||
|
|
||||||
|
候选runtime包只含13运行文件:Assessments/AnalysisTasks/Assessment/AssessmentStore四评估文件;Acticle控制器/模型、Faq模型、两表单、ContentCatalog/ContentPublication/content-editor八内容文件;servicestatus.js一服务摘要文件。维护包独立7文件(权限迁移/内容及FAQ导入/两种子/两纯依赖),只供私密维护目录。61个配套源码/资源和10个已部署反馈/入口文件只列哈希核对,不自动覆盖;缺失或漂移必须审阅后重新生成包,不能只上菜单/模板而漏DTO、专用审计、三场景策略读取或通用Config保留行保护。包排除.env/site.php/vendor/extend/上传/运行时/测试/Git/前端产物,不安装依赖。
|
||||||
|
|
||||||
|
形成具体三处内容维护意图:FAQ password/phone只改answer,credit-basics课程只改intro,正文/段落顺序/稳定ID及其他种子内容完全保持;实际生产ID/当前文本/版本尚未读取。首次导入仅补批准的缺少slug,重复导入不覆盖已有正文。已导入记录须批准后通过版本化编辑仅改字段,保留发布/推荐、正文/会员已读/首次完成时间;简介可能改变lessonVersion并触发旧版409刷新,不恢复章节阅读交互。
|
||||||
|
|
||||||
|
前端另冻结28个业务源码相对1723363的哈希(账户8、内容6、融资13、shared content1),包含本轮以前已提交/未提交修复;这不是已确认小程序线上差异,缺实际上传版本/源码hash。发行须完整当前项目编译/核对,由用户自己上传,H5单独安排。沿用0.81微信/Android27页编译证据,本轮无前端业务源码改动或新编译,不把平台编译当真机验收。
|
||||||
|
|
||||||
|
新增仓库外标准库verify_release.py,必须显式可信manifest哈希和包目录,可只校验包、核对显式本机源码或指定/www/wwwroot/xctai.cn文件;零框架bootstrap/DB/网络/部署写入。原始逐字节校验20归档条目、84后端源码(13+61+10)及28前端哈希通过;包内14次PHP lint、2次JS语法、2份种子JSON通过,错误manifest、错误生产目录、损坏包、缺失源码/依赖四类拒绝通过。失败仅保留安全哈希/路径和固定信息,合成负例逐文件清理;不重跑0.82—0.85业务全量专项或重复累加旧检查。
|
||||||
|
|
||||||
|
受限长期归档 `D:/AAdesk/202609/airz-backups/admin-content-release-prep-20261007/`,ACL仅JUN/SYSTEM,含runtime.zip(13文件/28706字节,SHA256 c1c3adb13d82c89b2bf280911266b951a50da59b268e535962d2eca213477a91)、maintenance.zip(7文件/20672字节,SHA256 576f36650b86e08b6d9f0ee5da34c0a48ba63c5787d4ae66dfeb8ad4f3cd2a59)、manifest.json、package-summary.json、package-verification.json、validation.json、frontend-source-reference.json、content-maintenance-plan.json与无凭据脚本。文档/包哈希、UTF-8无BOM/LF、diff/链接、保护项与种子非目标字段保持已核对;不提交/推送/PR。原5175/PID3484预览保持,本轮没有新服务、数据库/Redis/worker或浏览器实例。
|
||||||
|
|
||||||
|
清单覆盖目标只读预检、InnoDB/版本/索引及保留策略状态、权限实际增量/根角色/模板漂移、私密备份、停写/空闲worker、逐文件before核对、缓存/资源版本、授权内容维护/账号绑定、零模型烟测及保留新增业务数据的恢复。真实重试可能由生产worker消费并收费,不作为零调用烟测;默认策略缺行不为发布而创建/删除/调整。生产权限增量仍未知,不能照搬测试63项/根37,不自动换绑或扩大生产维护授权。
|
||||||
|
|
||||||
|
下一入口:从宝塔Playwright做当次生产只读文件/数据库预检,补当前哈希、真实模板缺项、内容ID/版本及服务状态,再将具体范围/备份/恢复形成发布操作回执;若文件漂移先审阅并重建包。实际停写/部署/权限apply、内容更新及账号分配须取得该具体范围的明确授权,本轮未执行;供应商能力/账单余额/外部告警、积分规则、真实worker/运营/真机仍待。63任务/27页面与开发/正式验收状态保持,不能将发布准备算RELEASE-003恢复演练或RELEASE-004正式完成。
|
||||||
|
|
||||||
|
### 0.85 2026-10-07 ADMIN-001 正式角色模板、菜单与跨模块权限组合检查
|
||||||
|
|
||||||
|
完成运营v1、客服v2、技术v5完整正式模板的隔离组合开发检查,补默认首页、无PHP后缀菜单、跨模块动作及打开后撤权;未发现新的业务源码缺陷。后端仅修改 `tests/admin_access.php`:接共享显式隔离bootstrap、移除固定3309/8097依赖,接受显式本机随机HTTP端口及当前无PHP入口(兼容指定旧入口),匿名测试日志按实际base路径清理;反馈处理会新增站内通知,finally按本轮合成会员精确清理,避免遗留通知。无业务接口、权限定义、数据库结构或小程序源码变更。
|
||||||
|
|
||||||
|
97项权限纯检查、227项真实HTTP/数据库检查(158请求)、237项Chrome实际页面及接口组合检查通过,共561项。HTTP最终在页面夹具清理后复跑仍保持原13表完整记录,不重复累计。正式三模板菜单集合与默认产品/反馈/模型登记首页、旧技术v4不自动获得配置权限、客服与技术多角色权限并集均通过;三角色均拒绝仪表盘、权限管理和系统配置。身份/证件/手机掩码、附件及会员秘密隐藏、客服融资字段可读而技术无该字段、排障不回显资料/报告/模型正文;客服无重试/审计表单、技术有,环境关闭时实际重试拒绝且评估/日志和队列不变。
|
||||||
|
|
||||||
|
运营实际编辑发布资讯、客服实际回复反馈并生成唯一通知与正确处理人,打开后撤权拒写且原结果保持;技术实际保存Pro/每日42次/评估尝试2次,与服务用量会员额度一致,策略不能绕过关闭的环境总开关。技术打开后撤权配置拒写、服务/排障拒读,用量刷新拒绝并清空旧额度/汇总;权限finally恢复,会员/资料/评估/调用日志完整基线保持。各模块0.82/0.83/0.84全量单层专项不重复执行。
|
||||||
|
|
||||||
|
Chrome桌面1280×900、手机390×844检查三角色菜单/默认页及实际切换资讯、评估排障、服务页,手机菜单折叠/展开、当前页签、身份/非空/无遮罩/控件边界及十张截图通过;pageerror=0、console错误/警告0、外网请求0。框架布局行有15px透明负边距且body横向裁切,面板与操作控件均在视口内,宽表在自身容器横向滚动;不把框架布局边距计业务横溢。Browser plugin not available,使用缓存Playwright CLI,无新增依赖。隔离脚本正文字段、通知类型、实际策略JSON结构、响应式隐藏姓名、iframe加载/空标题及动画等待等适配中断已排除,不计最终通过项或业务源码缺陷。前端业务源码未改,沿用0.81平台编译,不宣称真机或正式运营验收。
|
||||||
|
|
||||||
|
ROOT `C:/Users/JUN/AppData/Local/Temp/airz-permissions-combo-20261007-1791361600000/`,独立MySQL5.7.26仅127.0.0.1:3330、Redis127.0.0.1:6410/DB15、PHP HTTP49586,26表新schema、独立ENV/Token/session,初始及HTTP模型关闭且地址127.0.0.1:1,无worker/正式.env/生产或收费模型调用。仅在新库备份应用60节点/3模板共63项,以合成根角色37为父,复检0项、不自动绑定;再明确绑定五个合成管理员用于组合检查,ID不适用于生产。
|
||||||
|
|
||||||
|
先核对原业务完整基线与恢复权限,精确清五管理员/绑定、两个自建角色、一个会员/资料/反馈/通知/资讯/评估及两日志、一个策略行和41条本轮管理员日志。最终HTTP227项回归后按备份哈希及新增ID/字段核对,精确清60节点/3模板,原权限/根角色保持;再清owned根角色、26表行数0、Redis16库0、故障触发器0,核对schema8触发器后DROP独立库。浏览器清存储/cookies/routes并关闭,三个服务/端口停止,原5175/PID3484预览保留;私密夹具/config/session/runtime/MySQL临时数据清理356文件/15目录。PowerShell批量清理被策略拦截,核对路径后改用逐文件/逐空目录清理完成。
|
||||||
|
|
||||||
|
安全证据在ROOT内 `verification.json`、`access-final.out`/`access-final.err`、`cleanup-fixtures.json`、`cleanup-permissions.json`、`cleanup.json`、`cleanup-files.json`、`services.json`、`checks.json`及十张 `roles-*` 截图;权限备份含内部权限信息,保持受限且不整体分享临时目录。私密bootstrap和环境已删,脚本不可直接复用。PHP语法、缺bootstrap/非本机base拒绝、四个本轮变更文本UTF-8无BOM/LF、两仓库diff及链接检查通过。ADMIN-001仍开发中,63任务/27页面保持;用户已自行修改线上管理员密码,不再使用临时密码或重置账号;本轮未发布、迁移正式库、提交、推送或正式验收,小程序既有发布状态保持。
|
||||||
|
|
||||||
|
下一开发入口:整理尚未上线增量的配套发布准备,按当前线上基线核对内容类型隔离/换行兼容、评估排障、服务用量和正式权限模板的源码、资源、预检/备份/账号绑定/缓存/恢复依赖,形成具体发布与回退清单;实际生产发布、正式迁移和角色分配需另行明确授权。供应商接口/账单余额/外部告警与积分业务规则仍待决定,不虚构接入、不做ADMIN-004正式运营或真机验收,课程继续整篇连续阅读、一次已读。
|
||||||
|
|
||||||
|
### 0.84 2026-10-07 ADMIN-003 服务状态、调用用量与现行策略隔离组合联调
|
||||||
|
|
||||||
|
完成实际后台服务检查、调用用量与受控策略的组合开发检查,修复会员额度摘要未展示接口已有 `maxAttempts` 的页面缺口:`public/assets/js/backend/servicestatus.js` 增加“评估尝试上限”,有效策略显示当前值,损坏策略显示未知。两个数据库测试 `service_diagnostics_db.php`、`ai_usage_diagnostics_db.php` 接共享显式隔离bootstrap、移除固定3309依赖并保持模型禁用守卫;服务测试完整设置隔离队列/心跳配置,回滚后核对原表完整摘要才输出成功。无API、数据库结构、权限模板或小程序业务源码变更。
|
||||||
|
|
||||||
|
纯逻辑345项(服务53、用量76、心跳133、策略83)、数据库41项(服务15、用量26)、Chrome实际页面及接口组合234项通过,共620项。覆盖25条当前记录真实20条分页、五种状态、评估/产品解释/助手分类、NULL/零/超大Token十进制精度、历史筛选不改今日共享额度、软删除/坏请求键/未来预留、会员隔离/停用/空态。真实策略页面保存Pro/40次/2次尝试后,服务页和会员摘要立即一致;降低额度与暂停保留旧预留,恢复和坏策略降级/恢复不显示旧限制。
|
||||||
|
|
||||||
|
真实隔离Redis队列/登录/心跳断连及恢复通过,心跳合成记录覆盖starting/working/idle/stale/degraded/stopped/invalid/missing和配置关闭;不执行真实消费者或故障演练。服务/用量请求失败清旧结果、额度、时间及分页,慢查询禁控与tab往返、日期31天/非法参数/越末尾分页/POST拒绝、敏感参数与正文不回显通过。四组合成管理员真实登录验证只读策略控件/伪造写拒绝、仅服务权限隐藏用量、无关角色/匿名拒绝、页面打开后撤权清旧指标与恢复重新读取。
|
||||||
|
|
||||||
|
Chrome桌面1280×900、手机390×844/360×844六张截图、身份/非空/无遮罩/控件边界检查通过;宽表只在自身容器滚动,无文档横溢或文字重叠。pageerror=0、外网请求0,console仅两条刻意中断请求的 `net::ERR_FAILED`。Browser plugin not available,沿用缓存Playwright CLI,无新依赖;临时脚本传参和main角色选择器适配已修正,早期中断不计最终通过或业务缺陷。前端业务源码未改,沿用0.81微信/Android编译,不重复编译或宣称真机验收。
|
||||||
|
|
||||||
|
全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-services-admin-20261007-1791357448842/`,MySQL5.7.26仅127.0.0.1:3329、Redis127.0.0.1:6409/DB15、随机PHP HTTP54031;26表新schema、独立ENV_PREFIX/Token/session。bootstrap模型关闭,HTTP仅合成配置启用127.0.0.1:1不可连来源以观察配置元数据,无worker/真实模型短信/正式.env/生产。仅构造四个测试角色的四条最小动作规则,无权限模板迁移或正式绑定。
|
||||||
|
|
||||||
|
精确清4管理员/组/绑定/规则、4会员、12会话、36调用日志、1策略行和17条本轮管理员日志,三队列键/一个合成心跳键;业务完整摘要保持,26表与Redis16库清零、故障触发器0,核对schema8触发器后DROP测试库。清页面夹具后最终数据库41项回归仍通过且摘要保持,不重复累计。浏览器清存储/cookies/routes并关闭、三服务及端口停,合成凭据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不整体分享或直接复用,环境和夹具已删。PHP/JS语法、缺bootstrap拒绝、六个本轮变更文本UTF-8无BOM/LF、两仓库diff及链接检查通过。ADMIN-003保持开发中,63任务/27页面不变;未正式验收、发布、提交或推送,用户小程序既有发布状态保持。本轮展示修复尚未上线,供应商余额/费用对账、外部告警、真实worker/运营/真机仍待。
|
||||||
|
|
||||||
|
下一开发入口:ADMIN-001后台菜单、角色模板与跨模块权限组合检查。0.41已有最小权限模板,0.82/0.83/0.84已补各模块最小动作;另建显式隔离ROOT,按迁移守卫仅在新测试库备份应用模板并绑定合成管理员,核对运营/客服/技术的菜单与默认页、内容/反馈/排障/服务/策略动作边界、敏感字段和打开后撤权。旧权限脚本先核对固定入口,不直接重跑;不接供应商、不做ADMIN-004正式运营验收或自行发布。
|
||||||
|
|
||||||
|
### 0.83 2026-10-07 ADMIN-002 评估排障、失败重试与运行策略组合联调
|
||||||
|
|
||||||
|
完成实际后台“历史定位/当前版本 → 运行策略调整 → 失败重试 → 原键确认 → 操作审计”的隔离组合开发检查,未发现新的业务源码缺陷。后端仅修改 `tests/assessment_diagnostics_db.php`、`tests/assessment_retry_service_db.php`:接入共享显式隔离bootstrap,去除固定3309依赖,保留初始模型关闭守卫;回滚后核对相关原表完整记录摘要,再输出成功。未改变业务接口、前端业务源码、数据库结构或权限模板。
|
||||||
|
|
||||||
|
Chrome `http://127.0.0.1:61702/ZYurKboadX.php` 桌面1280×900、手机390×844/360×844最终155项实际页面检查通过;诊断48/重试参数39/审计90共177项纯逻辑检查、诊断数据库48/重试数据库46共94项回归通过,合计426项。覆盖10评估、23版本/调用的独立分页、当前失败仍保留旧结果版本、历史任务/提交键/人工重试键检索与高亮、未知/零Token及耗时区分、产品解释调用排除、跨会话指针标注且禁重试、诊断零业务写入。
|
||||||
|
|
||||||
|
实际策略页面保存Pro/共享额度/尝试上限/暂停后,已打开的重试页面仍按最新策略拒绝且零预留;恢复后保留原请求/任务条件继续,跨页CSRF更新保持原意图。成功重试一次预留/一次审计/一次队列投递,采用现行模型、两分页回到首页,冻结表单/报告/匹配/上下文与旧结果指针保持。故意丢弃已接受响应验证在途禁双击/取消、未知结果取消与页内刷新保留原键;后续版本已变且策略暂停仍确认原任务/审计,不覆盖新版本或重投旧任务。不可达队列先接受、恢复后同键补投且不增次数;明确版本冲突刷新后建立新意图。合成SQL触发器使成功审计写入失败时完整回滚,恢复后原键仅成功一次。
|
||||||
|
|
||||||
|
五组合成管理员真实密码登录,按排障/重试/策略/审计所需动作构造最小隔离权限;只读客服与旧技术动作子集无写表单/审计入口且伪造POST拒绝,无关运营/匿名无任务读取,打开后撤权拒写/恢复可继续。本人真实审计及页面日志链接可查,相邻独立权限组即使有日志详情权限也不能读取他人审计,输入/模型/报告正文不回显。页面身份/非空/无遮罩/无文档横溢、五张有效截图通过,pageerror=0、外网0;console仅三次刻意中断响应的 `net::ERR_FAILED`(含一次已排除的旧队列夹具中断)。Browser plugin not available,沿用缓存Playwright CLI,无新增依赖。早期账号长度/名称、三级队列配置覆盖、DDL连接和弹窗动画等待的隔离脚本适配已修正,不计为业务缺陷或最终通过场景;不改框架通用协议。
|
||||||
|
|
||||||
|
新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-assessment-admin-20261007-1791346885227/`,MySQL5.7.26仅127.0.0.1:3328、Redis127.0.0.1:6408/DB15、随机PHP HTTP61702,26表全新schema,独立ENV_PREFIX/Token/session。bootstrap初始模型禁用;HTTP只在测试进程启用合成不可连接模型配置 `127.0.0.1:1` 以检查元数据预留/派发,心跳关闭,无worker、模型执行、真实短信、正式.env或生产连接。精确清5管理员/组、7规则/绑定、10会员/评估及其版本/调用/审计、单独运行策略行、10条owned队列消息;26表、Redis全部16库、故障触发器清零,schema8触发器核对后随测试库DROP。数据库最终回归完成且摘要保持;浏览器存储/cookies/routes清空并关闭,HTTP/MySQL/Redis和三个端口停止,合成凭据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日志不能整体共享或直接复用。PHP/JS语法、五个本轮变更文本UTF-8无BOM/LF、两仓库diff及链接检查通过。ADMIN-002保持开发中,63任务/27页面不变;未发布、提交、推送或正式验收,现有小程序发布状态保持;供应商查询/对账与真实worker/运营/真机验收仍待。
|
||||||
|
|
||||||
|
下一开发入口:ADMIN-003服务状态与调用用量的实际隔离组合联调。0.44/0.46已有只读服务/用量、心跳和受控策略基础,补当前策略、pending/失败/历史调用、共享额度与队列故障恢复之间的页面一致性;另建显式ROOT/库/Redis,使用业务替身检查心跳,禁止真实worker/供应商接口/发布,不重复已有全量单层专项。
|
||||||
|
|
||||||
|
### 0.82 2026-10-07 CONTENT-001 后台内容编辑与发布页面专项
|
||||||
|
|
||||||
|
本轮完成资讯、课程与FAQ实际后台页面的隔离开发检查。课程编辑文案改为“阅读时长”“正文段落”“小标题”,按钮补操作名称、首尾排序禁用、最后一段删除禁用及30段上限;课程前台继续整篇连续阅读、一次“我已读完”。内部chapters字段和稳定段落ID保留,只供既有存储与已读兼容,不增加用户章节流程。
|
||||||
|
|
||||||
|
复现并修复两类业务缺陷:资讯与FAQ共用fa_acticle而模型未限定type,两列表均出现12条且可跨入口修改;Acticle全局查询排除type=6、Faq限定type=6,列表恢复4资讯/8FAQ,跨类型GET/POST/批量更新拒绝。旧协议1–4仍可从原入口维护,type表单只读且控制器排除伪type字段。另一问题是浏览器表单把LF序列化成CRLF,直接保存未修改课程也使正文哈希及版本变化;ContentPublication仅编辑保存路径统一新换行,按课程稳定ID/资讯位置与旧文本比对,等价时保留旧换行。修复前正文变化true、修复后false,已有LF和CRLF正文均保持版本、已读及首次完成时间;不修改全局decode/text或迁移旧正文。
|
||||||
|
|
||||||
|
Chrome实际后台 `http://127.0.0.1:63075` 桌面1280×900、手机390×844/360×844最终124项页面检查通过,另56项真实数据库服务回归通过,共180项。页面覆盖标题/全文/多场景/推荐/封面回填、添加/排序/删除及数据库稳定ID、纯文本多行、新课程草稿/发布/下架/再次发布与公开API/首页推荐同步、资讯和FAQ保存/slug保持/发布状态、两页面旧版本拒绝且不覆盖/刷新恢复/缺版本拒绝、旧课程明确确认重整、旧协议正文与类型保持。三组合成管理员真实密码登录验证运营最小权限、只读列表无写按钮、无关角色拒绝,以及页面打开后撤权的保存拒绝且数据库保持;跨类型读写和批量入口均验证拒绝。
|
||||||
|
|
||||||
|
身份/非空/无遮罩/无横溢及三截图通过,pageerror=0、console错误/警告0、外网0、额外会员/评估/反馈/附件/进度写入0;公开接口no-store。Browser plugin not available,复用缓存Playwright CLI,无新增依赖。早期隔离router语言路径、真实会员路由与三张本地封面挂载,以及登录/旧正文夹具等待适配已修正,中断结果不计最终数;未改框架或通用错误协议。前端业务源码本轮未改,微信/Android沿用0.81编译证据,不重复编译或宣称真机验收。
|
||||||
|
|
||||||
|
全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-admin-20261007-1791344309503/`,MySQL5.7.26仅127.0.0.1:3327、Redis仅127.0.0.1:6407/DB15、随机PHP HTTP63075;26表schema初始化,独立ENV_PREFIX/Token前缀/session目录,模型禁用且地址127.0.0.1:1、心跳关闭,无worker/正式.env/生产或真实短信模型调用。仅12初始资讯/FAQ、3课程及3管理员/3组/12规则;页面finally恢复原内容和权限,逐ID完整比对后清15条内容,再运行事务回滚服务测试。最后精确清3管理员/绑定/组/规则及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/脚本含本机合成账户,不整体分享或直接复用。PHP/JS语法、11个本轮变更文本UTF-8无BOM/LF、两仓库diff及文档链接检查通过,保留全部既有未提交工作。CONTENT-001保持开发中,63任务/27页面不变;未正式验收、发布、提交或推送,用户既有小程序发布状态保持,本轮修复尚未上线。
|
||||||
|
|
||||||
|
下一开发入口:ADMIN-002后台评估排障与当前版本生命周期的实际隔离页面联调。0.42/0.43已有只读定位、人工重试及审计,0.46已有服务状态与受控策略页面基础;补最新评估/历史版本、失败重试、原键重放、权限和审计的组合缺口,必要时结合现行额度策略。另建显式本机ROOT/库/Redis和合成管理员,模型仍禁用,不运行真实worker,不重复内容专项、不接供应商对账、不自行发布或正式验收。
|
||||||
|
|
||||||
|
### 0.81 2026-10-07 CONTENT-002/003 资讯、课程与搜索实际后端H5隔离联调
|
||||||
|
|
||||||
|
完成0.76/0.77受控前端与0.78真实后端之间的页面组合检查,课程继续整篇连续阅读、一次“我已读完”,不恢复章节交互。复现搜索结果进入资讯详情再返回时,H5滚动组件activated钩子因重建读取空main引用,console报 `Cannot set properties of null (setting 'scrollTop')`。`packages/content/search/search.uvue` 移除滚动组件动态key,用scroll-top属性配合nextTick回到顶部,保留返回重新搜索;独立同路径修复前空引用/activated警告均true,修复后均false。真实搜索分页、滚动后刷新回顶、资讯和课程两类结果返回均通过。
|
||||||
|
|
||||||
|
后端 `database/content_initial.json` 个人信用申请准备课简介去掉“完成每一节阅读后,可手动记录学习进度”,与整篇阅读一致;仅此一条简介改变,正文/顺序/稳定ID保持,既有段落已读仍有效。`database/content-publication.md` 补重复导入不覆盖及后续授权维护只编辑该简介、保留推荐/发布状态的边界。简介变化会更新课程版本,旧版保存按既有409协议刷新重试。前后端既有业务接口、数据库结构和课程正文未改。
|
||||||
|
|
||||||
|
Chrome H5 `http://localhost:5175` 手机390×844/360×740、桌面1280×900最终126项/86次真实本机业务请求通过:78次H5转发、8次直接HTTP,其中15次课程进度PUT,另38次测试控制操作。4初始资讯/3初始课程真实导入,加各18条合成内容验证资讯22条和课程21条分页;首页推荐仅直接真实HTTP核对3资讯/3推荐课程,不记作首页页面联调。覆盖资讯列表/分类/唯一追加/完整正文/详情ID、后台Acticle模型真实下架/发布/编辑正文后搜索/草稿隐藏/全下架空态,以及数据库断连500与页面重新加载。搜索真实全文更新、类型筛选/课程阅读时长摘要/两类详情跳转/分页/返回重读/刷新回顶,Redis实际故障503及重新搜索恢复通过。
|
||||||
|
|
||||||
|
课程覆盖课堂分页/场景查询与实际详情、全部连续正文/单一已读、匿名零私有进度请求/真实密码登录同课程回跳、一次操作保存/重复零写/刷新和另一真实会话恢复。真实SQL触发器令第二段写入失败500,第一段保留,页面不误显示已读;重新加载后仅补余下两条,首次保存行与时间保持。后台Finance模型重排保持整课已读、正文变化只失效对应段落/一次补齐、旧版409停止余下提交/刷新重试、两个真实合成账户可见切换与各自记录、进度读故障仍可阅读且禁止写入、下架详情无已读按钮/重新发布恢复、课堂全下架空态通过。仅开发检查,不宣称真机或跨设备验收。
|
||||||
|
|
||||||
|
身份/非空/无遮罩/无横溢/正文无重叠/封面实际加载/小屏按钮及六截图通过,pageerror=0、零外网,业务响应均no-store;console仅刻意404/409/500/503,无修复前滚动错误或Vue警告。Browser plugin not available,复用缓存Playwright CLI,无依赖安装。初轮临时控制脚本DDL查询连接未释放与推荐标记整数/字符串转换问题已修正,早期中断不计最终通过;故障注入使用独立PDO,不修改框架或通用错误协议。HBuilderX5.26最终Android11:27:20、微信11:27:52,27页面编译成功。
|
||||||
|
|
||||||
|
全新ROOT `C:/Users/JUN/AppData/Local/Temp/airz-content-live-20261007-1791343150236/`,MySQL5.7.26仅127.0.0.1:3326、Redis仅127.0.0.1:6406/DB15,PHP随机HTTP61451;26表由schema初始化,独立ENV_PREFIX/Token前缀、模型禁用且地址127.0.0.1:1、心跳关闭,无worker/正式.env/生产连接/真实短信模型。精确恢复22资讯/21课程的正文和推荐状态、清本次进度及两个账户Token,按ID/内容核对删除;11业务表/故障触发器/Redis键0,搜索来源计数键精确清除,schema自带8个触发器随测试库DROP。专用HTTP/MySQL/Redis停止,三个端口无监听;浏览器存储/cookies/routes清空、content-live会话关闭,既有5175/PID3484预览保留并核对归属。
|
||||||
|
|
||||||
|
安全证据为ROOT内 `verification.json`、`repro-before.json`/`repro-after.json`、`cleanup.json`、`services.json`、`checks.json`、六张 `content-*` 截图及 `android-final.log`/`weixin-final.log`。临时bootstrap/runtime/脚本含本机合成账户,不整体分享或直接复用。PHP/JS语法、种子JSON与段落完全一致、五变更文本UTF-8无BOM/LF/无尾空白、两仓库diff及文档链接检查通过,保留两仓库所有既有未提交改动。
|
||||||
|
|
||||||
|
台账1.71/0.81,63任务/27页面与CONTENT-002/003待验收、CONTENT-004开发中状态保持;本轮未正式验收、发布、提交或推送,用户既有小程序发布状态保持。新增搜索修复、简介及前轮源码未配套上线,已导入简介仍需后续授权维护,真机/微信内H5/Safari及实际多设备待补。下一开发入口为CONTENT-001后台内容编辑与发布页面专项:先核对资讯/课程/FAQ共享编辑器,将课程编辑表述与整篇阅读对齐、保留内部稳定段落ID;另建显式本机ROOT/库/Redis和合成管理员,检查新建/编辑/排序/草稿/发布/下架/旧版拒绝与最小权限。模型层在0.80/0.81已有证据,补实际后台页面缺口,不恢复用户章节流程,不读取正式.env、接供应商、自行发布或正式验收。
|
||||||
|
|
||||||
|
### 0.80 2026-10-07 CONTENT-004 FAQ实际后端与H5隔离联调
|
||||||
|
|
||||||
|
本轮把0.79帮助FAQ页面与真实隔离后端组合检查,不重复受控坏包全量专项。核对短信接口返回 `SMS_NOT_CONFIGURED`、无手机号换绑路由,修正后端 `database/faq_initial.json` 的password/phone两条:明确短信登录和验证码重设密码暂未开放、忘记密码暂不能自行重设、已有密码可登录并改密后重新登录、手机号换绑暂未开放;去掉尚未接入的客服核验承诺。`database/content-publication.md` 补首次新增与重复导入边界:按slug重复导入不会覆盖旧FAQ,已导入内容须后续授权维护时后台逐条编辑。前端业务源码、API、数据库结构未改。
|
||||||
|
|
||||||
|
Chrome H5 `http://localhost:5175` 手机390×844/360×740、桌面1280×900最终83项/30次真实本机业务请求通过:21次H5转发、9次直接HTTP,另16次测试控制操作。覆盖8条实际正文/ID顺序/3-3-2分类分组/展开收起、分类查询及非法分类422、修正文案,后台Faq模型真实下架/发布/编辑/保留slug/旧版本与空白正文拒绝/草稿隐藏/全下架空态/恢复,以及数据库实际断连后的错误提示与恢复重新加载。FAQ非空时切标签不主动刷新,发布变化经离页返回onShow重读核对,保持现行页面行为。
|
||||||
|
|
||||||
|
真实密码登录回跳、两个合成账户切换、换账户清反馈草稿、公开FAQ零私有反馈读取、撤销Token后的反馈门禁/公开恢复及真实退出通过,无反馈写入、无外部网络请求,业务响应均no-store。身份/非空/无遮罩/无横溢/正文与底部按钮、三截图通过,pageerror=0;console仅刻意数据库故障500和Token撤销401。数据库断连当前由后端通用处理返回500,页面可重试恢复,本轮不扩展通用错误协议。早期Windows路径比较、反馈表名、422业务码、标签刷新与500预期造成的测试中断已修正,不计最终通过数。
|
||||||
|
|
||||||
|
全新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 HTTP随机65196,26表由schema初始化,仅导入8FAQ与两个本机合成账户。独立ENV_PREFIX与Token前缀,模型关闭且地址127.0.0.1:1,无worker/新增依赖/正式.env/生产连接/真实短信或模型。收尾精确恢复8FAQ再核对删除,11业务表/Redis键/故障触发器清零,schema自带8个约束触发器核对后随测试库DROP;专用HTTP/MySQL/Redis均停止,三个端口无监听。停止脚本首次在进程退出短暂窗口过早检查,补同时等待进程与端口退出后最终确认。浏览器存储/cookies/routes清空,专用faq-live会话关闭;既有5175/PID3484预览保留并核对归属。
|
||||||
|
|
||||||
|
安全证据为ROOT内 `verification.json`、`cleanup.json`、`services.json`、`checks.json`、`faq-live-mobile.png`/`faq-live-error.png`/`faq-live-desktop.png`;临时bootstrap/runtime/脚本含本机合成会话,不整体分享或直接复用。Browser plugin not available,复用缓存Playwright CLI;一次裸php因PATH未配置失败后使用显式PHP路径完成lint。FAQ导入/发布类及临时router PHP lint、临时JS语法、两仓库diff、四变更文本UTF-8无BOM/LF/无尾空白检查通过。前端源码未变,沿用0.79微信/Android编译证据,不重复平台编译。
|
||||||
|
|
||||||
|
台账1.70/0.80,63任务/27页面与CONTENT-004开发中状态保持;两仓库全部既有未提交改动保留。本轮未发布、提交、推送或正式验收,用户既有小程序发布状态保持;前轮新增源码及本轮两FAQ尚未配套上线。FAQ真实隔离后端页面联调已补,正式内容更新、真机/微信内H5/Safari及业务验收仍待。下一开发入口为CONTENT-002/003资讯与课程的真实后端H5页面联调:另建显式本机ROOT/库/Redis,只写合成环境内容,补资讯列表/详情/搜索与发布变化、课程整篇一次已读/刷新恢复/两个真实合成账户隔离/部分保存失败及版本更新。0.76/0.77前端与0.78后端单层专项不全量重复,不恢复章节交互、不接供应商或自行发布。
|
||||||
|
|
||||||
|
### 0.79 2026-10-07 CONTENT-004 帮助FAQ页面专项
|
||||||
|
|
||||||
|
复现并修复五类问题:FAQ接受非法编号、接受空白问题/答案、坏条目全部过滤后误显示空态、重复ID静默丢弃,以及停留页面期间登录/换账户仍使用旧状态。修改 `packages/content/services/help.uts`、`packages/content/help/help.uvue` 两个前端文件。解析要求items数组、对象条目、正INT字符串ID、合法分类、非空字符串问题/答案与唯一ID;任一异常拒绝整个响应,页面显示可重试错误,真正空items继续显示空态。按固定分类顺序展示,回答保留换行,不增加分类操作或新交互。
|
||||||
|
|
||||||
|
帮助页可见期每秒核对账户,切换标签/FAQ请求及回包也核对账户与页面代次;登录、退出或换账户时使旧FAQ请求失效,清旧反馈草稿/记录并刷新公开FAQ,只在反馈标签读取本人记录。旧401不清新会话,离页停止计时器及回填;重新加载收起旧展开状态,加载期重复切标签不重复发送。反馈提交协议和既有原键恢复保持,仅补账户守卫的针对性页面检查,不重复反馈/消息全量专项。
|
||||||
|
|
||||||
|
Chrome H5 `http://localhost:5175` 手机390×844/360×740、桌面1280×900最终88项/62次受控业务请求通过,其中57次FAQ GET、4次合成反馈GET、1次合成密码登录POST,无反馈写入。覆盖29类坏响应、真实空数组/最大合法ID/多行正文、分类分组与唯一展开/收起、坏包错误及重试、503/断网恢复、慢响应/双击、匿名反馈门禁/登录回跳、立即登录/闲置换账户/退出、公开FAQ零私有请求、旧401/离页/返回刷新、客服未开放回退。身份/非空/无遮罩/无横溢/问题箭头分离/底部按钮及三截图通过,pageerror=0、未定义API=0,console仅刻意503/401及net::ERR_FAILED。五类原问题复测全部消失。早期同页hash导航、同名提交文本定位造成的测试中断已修正,不计最终通过数。
|
||||||
|
|
||||||
|
HBuilderX5.26 Android10:41:45、微信10:42:15,27页面编译成功。Browser plugin not available,复用缓存Playwright CLI,无新增依赖;首次预览连接拒绝来自初编译等待49秒,随后正常。共享layout既有H5类型警告保留。本轮后端只读,保留0.78全部改动;未读取正式.env、启动数据库/Redis/worker、连接正式数据库或调用短信/模型。首次打开预览发生一次未拦截的匿名线上FAQ GET,未携带凭据且未写入;最终检查全部外部API拦截,不把初次读取算作隔离测试证据。
|
||||||
|
|
||||||
|
ROOT `C:/Users/JUN/AppData/Local/Temp/airz-faq-20261007/`:安全证据 `verification.json`、`repro-before.json`/`repro-after.json`、`checks.json`、`faq-mobile.png`/`faq-error.png`/`faq-desktop.png`及两平台日志;临时脚本/CLI日志含无服务器权限合成会话,不整体分享。浏览器存储/cookies/routes清空,专用faq浏览器关闭;本轮新H5预览5175/PID3484保留供查看,开始5173/5174/5175无监听。两源码/两台账UTF-8无BOM/LF、临时JS语法、两仓库diff通过,既有未提交保持。
|
||||||
|
|
||||||
|
63任务/27页面及CONTENT-004开发中保持,未提交/推送/发布或正式验收,用户既有小程序发布状态保持,新增前端仍未发行。下一开发入口为FAQ与隔离后端实际H5联调:另建显式本机ROOT/数据库/Redis,核对8条初始FAQ与严格解析、后台发布/下架/更新及页面重新读取、匿名/登录只读恢复;导入仅新合成库,保护正式数据。0.52导入基础及本轮坏包/账户受控专项不重复,不接真实客服供应商或自行部署;真机/微信内H5/Safari和正式验收仍待补。
|
||||||
|
|
||||||
|
### 0.78 2026-10-07 CONTENT-002/003/004 内容、课程已读与搜索后端隔离HTTP开发检查
|
||||||
|
|
||||||
|
后端 `tests/content_catalog.php` 复用显式 `report_test_bootstrap.php`,移除固定3309限制,要求模型关闭及四内容表为空,事务回滚和清零成功后才输出结果。新增 `tests/api_content.php`、`tests/content_http_router.php`:两座随机本机PHP HTTP服务及独立竞争进程继承同一隔离ROOT,故障模式只读取本次runtime文件,按合成账户、内容ID、Token、触发器、搜索计数键及作业文件精确清理,清理失败非零。唯一业务源码变更为 `ContentCatalog.php` 搜索课程摘要从节数改为“6分钟阅读”,与整篇阅读一致;不改API结构或数据库,不恢复章节交互。
|
||||||
|
|
||||||
|
服务层45项、真实本机HTTP362项/90次请求最终通过,合计407项。覆盖资讯/课程分页顺序及摘要/详情/首页、分类/场景、草稿/下架/坏JSON形状/旧协议排除,鉴权及JSON/字段边界、课程已读重复时间保持、另一会话恢复与跨账户隔离。真实SQL故障验证失败记录回滚、保留部分完成且可补齐;重排保持已读、正文改变失效、删除/新增段落及409旧版拒绝通过。两独立PHP进程重复完成仅一行、首次时间保持,课程行锁内发布更新后旧完成拒绝。全文多词AND、字面%/_、类型/空结果/非法输入、无章节数摘要、双HTTP共享来源原子限流60/61、TTL、429恢复及Redis不可用503/重试通过。内容操作无模型任务或消息。
|
||||||
|
|
||||||
|
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,26表由schema初始化,模型关闭且地址127.0.0.1:1,无worker/新增依赖/正式.env/生产连接/真实短信或模型。初轮空数组HTTP预期及TP5两级Redis配置故障注入已修正;收尾区分schema自带8个约束触发器与测试故障触发器,中断结果不计最终数。十业务表/测试故障触发器/Redis键均0,测试库已DROP,本轮HTTP/竞争进程/MySQL/Redis停止,3324/6404无监听。
|
||||||
|
|
||||||
|
安全证据为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无监听,历史预览记录不视为当前服务。
|
||||||
|
|
||||||
|
63任务/27页面及CONTENT-002/003待验收、CONTENT-004开发中状态保持;本轮为开发检查,H5与真实后端页面组合、真机/跨设备及正式验收仍待补。新增课程搜索文案需后端发布才在线生效,本轮未发布、提交或推送。下一开发入口:CONTENT-004帮助FAQ页面级组合检查,入口 `packages/content/services/help.uts`、`packages/content/help/help.uvue`。补合法/损坏/重复条目解析、空态/错误重试/迟到回包、分类与展开、匿名/登录/账户变化及客服未开放回退;先受控响应,必要时另建隔离HTTP,不重复反馈/消息专项、接真实客服或自行发布。
|
||||||
|
|
||||||
### 0.77 2026-10-07 课程整篇阅读与单一已读操作
|
### 0.77 2026-10-07 课程整篇阅读与单一已读操作
|
||||||
|
|
||||||
@@ -1094,17 +1530,17 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
|||||||
|
|
||||||
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
||||||
| --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- |
|
||||||
| CONTENT-001 | 内容模型与发布后台 | 补齐文章/课程结构、稳定章节ID、分类、封面/摘要、发布状态、FAQ类型及协议入口。 | P1 | BASE-001 | 1–1.5 | 开发中 |
|
| CONTENT-001 | 内容模型与发布后台 | 补齐文章/课程结构、稳定段落ID、分类、封面/摘要、发布状态、FAQ类型及协议入口。 | P1 | BASE-001 | 1–1.5 | 开发中 |
|
||||||
| CONTENT-002 | 列表详情与首页推荐 | 新闻/文章/课堂/详情真实API、分页、富文本清洗、缺失内容与首页推荐接入。 | P1 | CONTENT-001、BASE-004 | 1–1.5 | 待验收 |
|
| CONTENT-002 | 列表详情与首页推荐 | 新闻/文章/课堂/详情真实API、分页、富文本清洗、缺失内容与首页推荐接入。 | P1 | CONTENT-001、BASE-004 | 1–1.5 | 待验收 |
|
||||||
| CONTENT-003 | 云端课程已读 | 整篇连续阅读、一次标记课程已读,兼容历史记录与内容版本,跨设备恢复。 | P1 | CONTENT-002、AUTH-002 | 1–1.5 | 待验收 |
|
| CONTENT-003 | 云端课程已读 | 整篇连续阅读、一次标记课程已读,兼容历史记录与内容版本,跨设备恢复。 | P1 | CONTENT-002、AUTH-002 | 1–1.5 | 待验收 |
|
||||||
| CONTENT-004 | 搜索与FAQ联调 | 真实全文字段检索、分类/分页、请求竞态、FAQ读取、无结果和断网恢复。 | P1 | CONTENT-002 | 1–1.5 | 开发中 |
|
| CONTENT-004 | 搜索与FAQ联调 | 真实全文字段检索、分类/分页、请求竞态、FAQ读取、无结果和断网恢复。 | P1 | CONTENT-002 | 1–1.5 | 开发中 |
|
||||||
|
|
||||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| CONTENT-001 | 全栈开发(待指定) | 后台可发布/下架;章节重排不换ID;草稿不可公开;FAQ可维护。 | 40项数据库/13项后台检查、服务器验收通过;FAQ服务端与后台源码完成,尚未导入/部署,见0.39 | 2026-10-01 |
|
| CONTENT-001 | 全栈开发(待指定) | 后台可发布/下架;段落重排不换ID;草稿不可公开;FAQ可维护。 | 0.82后台124/服务56及r2维护历史保持;1.06新增发布/下架组合518、相关1163通过,修复超管批量越界(未发布);1.07内容CSRF627/本批1794及后台浏览器63通过,8运行文件未部署;正式运营/真机验收待补 | 2026-10-08 |
|
||||||
| CONTENT-002 | 全栈开发(待指定) | 首页/列表/详情ID一致;无模拟兜底内容;下架详情有明确不可用状态。 | 0.76受控H5组合123项及微信/Android编译通过,详情归属/分页/下架重试已补;真实后端组合/真机待检查,未正式验收 | 2026-10-06 |
|
| CONTENT-002 | 全栈开发(待指定) | 首页/列表/详情ID一致;无模拟兜底内容;下架详情有明确不可用状态。 | 原0.76/0.78/0.81页面与HTTP证据保持;1.06后台发布/下架→首页/列表/详情同步组合通过;本轮无浏览器/真机复测,正式验收待补 | 2026-10-08 |
|
||||||
| CONTENT-003 | 全栈开发(待指定) | 整篇直接阅读;单一课程已读操作;账户隔离、失败可重试及跨设备一致。 | 0.77连续阅读/已读57项及微信Android编译通过;历史存储兼容,真实后端组合/真机/多设备待补 | 2026-10-07 |
|
| CONTENT-003 | 全栈开发(待指定) | 整篇直接阅读;单一课程已读操作;账户隔离、失败可重试及跨设备一致。 | 整篇一次已读保持;1.06双账户/本人多会话、重排/简介/正文/新增与移除、409及部分故障补齐后端组合通过;真实前端/真机/多设备正式验收待补 | 2026-10-08 |
|
||||||
| CONTENT-004 | 全栈开发(待指定) | 旧搜索响应不覆盖新关键词;返回ID可开详情;FAQ与实际业务行为一致。 | 0.76补关键词/分类竞争、分页错包/重复/429/断网恢复;搜索此前已部署,本轮修复未发布,FAQ接入源码仍未导入/部署 | 2026-10-06 |
|
| CONTENT-004 | 全栈开发(待指定) | 旧搜索响应不覆盖新关键词;返回ID可开详情;FAQ与实际业务行为一致。 | 原搜索/FAQ与H5证据保持;1.06正文搜索更新、两类内容详情、FAQ发布/下架及类型隔离组合通过;本轮未重跑前端旧响应竞态,正式内容/真机验收待补 | 2026-10-08 |
|
||||||
|
|
||||||
直接外部/业务阻塞:无;仍须满足前置任务。
|
直接外部/业务阻塞:无;仍须满足前置任务。
|
||||||
|
|
||||||
@@ -1124,7 +1560,7 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
|||||||
| MSG-001 | 全栈开发(待指定) | 重复任务不会重复通知;成功/失败通知关联正确assessmentId及revisionId。 | 同事务/并发去重及旧版本通过,正式索引/PHP已部署,见0.38 | 2026-10-01 |
|
| MSG-001 | 全栈开发(待指定) | 重复任务不会重复通知;成功/失败通知关联正确assessmentId及revisionId。 | 同事务/并发去重及旧版本通过,正式索引/PHP已部署,见0.38 | 2026-10-01 |
|
||||||
| MSG-002 | 全栈开发(待指定) | 跨用户读写拒绝;已读重复操作幂等;列表/计数一致。 | 50项数据库/HTTP及正式FPM检查通过;前端待发行 | 2026-10-01 |
|
| MSG-002 | 全栈开发(待指定) | 跨用户读写拒绝;已读重复操作幂等;列表/计数一致。 | 50项数据库/HTTP及正式FPM检查通过;前端待发行 | 2026-10-01 |
|
||||||
| MSG-003 | 全栈开发(待指定) | 换设备状态一致;打开通知到对应历史;关联记录不可用有提示。 | 57项手机/桌面和微信/Android编译通过;真实多设备/真机待验收 | 2026-10-01 |
|
| MSG-003 | 全栈开发(待指定) | 换设备状态一致;打开通知到对应历史;关联记录不可用有提示。 | 57项手机/桌面和微信/Android编译通过;真实多设备/真机待验收 | 2026-10-01 |
|
||||||
| MSG-004 | 全栈开发(待指定) | 全部已读不误吞操作后新增消息;通知去重和未读数通过数据库核对。 | 水位/并发/索引恢复及正式维护通过,原数据保持,前端待发行 | 2026-10-01 |
|
| MSG-004 | 全栈开发(待指定) | 全部已读不误吞操作后新增消息;通知去重和未读数通过数据库核对。 | 水位/并发/索引恢复及正式维护历史证据保持;1.03会话组合和1.05反馈通知/已读/跨账户组合通过;前端最终发行、多设备/真机正式验收待补 | 2026-10-08 |
|
||||||
|
|
||||||
直接外部/业务阻塞:无;仍须满足前置任务。
|
直接外部/业务阻塞:无;仍须满足前置任务。
|
||||||
|
|
||||||
@@ -1162,7 +1598,7 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
|||||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| SUPPORT-001 | 全栈开发(待指定) | 具有可测试坐席和离线处理渠道;确认SDK/隐私及首发支持范围。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| SUPPORT-001 | 全栈开发(待指定) | 具有可测试坐席和离线处理渠道;确认SDK/隐私及首发支持范围。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
| SUPPORT-002 | 全栈开发(待指定) | 反馈可提交到后台并回复;仅当前用户可查;附件无越权。 | 文字闭环、0.57事务审计、0.58原键恢复和0.59通知/本人回复跳转开发检查通过;新增源码未配套发布,私有附件与正式验收待后续 | 2026-10-04 |
|
| SUPPORT-002 | 全栈开发(待指定) | 反馈可提交到后台并回复;仅当前用户可查;附件无越权。 | 文字闭环/原键恢复/回复通知历史证据保持,既有后端发布见0.62;1.05新增组合344/相关1018本机检查通过;私有附件、前端最终发行及正式验收待补 | 2026-10-08 |
|
||||||
| SUPPORT-003 | 全栈开发(待指定) | 真实到达人工坐席;不由前端伪造用户身份;离线可留言并有处理路径。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| SUPPORT-003 | 全栈开发(待指定) | 真实到达人工坐席;不由前端伪造用户身份;离线可留言并有处理路径。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
| SUPPORT-004 | 全栈开发(待指定) | 会话无跨账户泄漏;客户可获回复;供应商不支持项准确提示。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| SUPPORT-004 | 全栈开发(待指定) | 会话无跨账户泄漏;客户可获回复;供应商不支持项准确提示。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
|
|
||||||
@@ -1181,9 +1617,9 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
|||||||
|
|
||||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| ADMIN-001 | 全栈开发(待指定) | 管理员权限最小化;无需恢复已删除会员组/规则;敏感字段继续掩码。 | 源码及隔离权限开发检查完成,见0.41;未部署,未做运营验收 | 2026-10-01 |
|
| ADMIN-001 | 全栈开发(待指定) | 管理员权限最小化;无需恢复已删除会员组/规则;敏感字段继续掩码。 | 0.85正式模板/菜单/权限组合237项、权限纯97项、HTTP/数据库227项通过;修正隔离测试入口与通知清理,配套增量未部署/正式运营未验收 | 2026-10-07 |
|
||||||
| ADMIN-002 | 全栈开发(待指定) | 可定位失败原因;重试仍走生命周期和幂等;不允许后台手改正式结果。 | 已有评估排障、受控人工重试及审计源码完成,见0.43;完整外部查询/对账待开发,未部署/验收 | 2026-10-01 |
|
| ADMIN-002 | 全栈开发(待指定) | 可定位失败原因;重试仍走生命周期和幂等;不允许后台手改正式结果。 | 0.83实际页面155项/纯逻辑177项/数据库94项通过,补版本、策略、原键恢复和权限审计组合;完整外部查询/对账待开发,未部署/验收 | 2026-10-07 |
|
||||||
| ADMIN-003 | 全栈开发(待指定) | 密钥不回显;配置失败可定位;本地消耗与渠道对账有入口。 | 只读服务/用量/今日额度、进程心跳及四字段受控运行策略源码完成,见0.46;供应商对账/外部告警待能力确认,未部署/验收 | 2026-10-01 |
|
| ADMIN-003 | 全栈开发(待指定) | 密钥不回显;配置失败可定位;本地消耗与渠道对账有入口。 | 0.84页面/接口234项、纯逻辑345项、数据库41项通过,补服务/用量/当前策略/故障与权限组合,修复尝试上限摘要遗漏;供应商对账/外部告警待确认,未部署/验收 | 2026-10-07 |
|
||||||
| ADMIN-004 | 全栈开发(待指定) | 运营可独立发布/下架/处理反馈及定位异常;业务字段无占位数据。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| ADMIN-004 | 全栈开发(待指定) | 运营可独立发布/下架/处理反馈及定位异常;业务字段无占位数据。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
|
|
||||||
直接外部/业务阻塞:无;仍须满足前置任务。
|
直接外部/业务阻塞:无;仍须满足前置任务。
|
||||||
@@ -1194,16 +1630,16 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
|||||||
|
|
||||||
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
||||||
| --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- |
|
||||||
| RELEASE-001 | 核心与权限回归 | 完整个人/企业流程、跨用户攻击、金额边界、幂等、产品变更及并发用例。 | P0 | REPORT-004、LOGIN-004、AUTH-004、ADMIN-004 | 2–3 | 未开始 |
|
| RELEASE-001 | 核心与权限回归 | 完整个人/企业流程、跨用户攻击、金额边界、幂等、产品变更及并发用例。 | P0 | REPORT-004、LOGIN-004、AUTH-004、ADMIN-004 | 2–3 | 开发中 |
|
||||||
| RELEASE-002 | H5与第三方真实验收 | 普通手机/桌面/微信内浏览器,键盘/上传/回跳/断网/弱网及全部渠道成功失败验证。 | P0 | RELEASE-001 | 2–3 | 未开始 |
|
| RELEASE-002 | H5与第三方真实验收 | 普通手机/桌面/微信内浏览器,键盘/上传/回跳/断网/弱网及全部渠道成功失败验证。 | P0 | RELEASE-001 | 2–3 | 未开始 |
|
||||||
| RELEASE-003 | 部署与恢复演练 | 分环境配置、增量迁移预检、HTTPS、队列守护/告警、备份恢复、发布回滚手册。 | P0 | RELEASE-001、ADMIN-003、EXT-DEPLOY | 1.5–2.5 | 阻塞 |
|
| RELEASE-003 | 部署与恢复演练 | 分环境配置、增量迁移预检、HTTPS、队列守护/告警、备份恢复、发布回滚手册。 | P0 | RELEASE-001、ADMIN-003、EXT-DEPLOY | 1.5–2.5 | 阻塞 |
|
||||||
| RELEASE-004 | 首发验收与发布记录 | 核对范围/外部依赖/验收证据,正式发布检查,发布后冒烟及回退条件。 | P0 | RELEASE-002、RELEASE-003 | 1.5–2.5 | 未开始 |
|
| RELEASE-004 | 首发验收与发布记录 | 核对范围/外部依赖/验收证据,正式发布检查,发布后冒烟及回退条件。 | P0 | RELEASE-002、RELEASE-003 | 1.5–2.5 | 未开始 |
|
||||||
|
|
||||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| RELEASE-001 | 全栈开发(待指定) | 关键用例通过且有证据;无阻断或高危未解决缺陷;所有一期模块进入验收。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| RELEASE-001 | 全栈开发(待指定) | 关键用例通过且有证据;无阻断或高危未解决缺陷;所有一期模块进入验收。 | 未验收;1.02主流程280/相关1666、1.03会话375/相关1369、1.04后台167/相关1249、1.05反馈344/相关1018、1.06内容518/相关1163均有本地证据,不跨轮累计;1.07内容CSRF627/本批1794与浏览器63通过,批量越界与CSRF配套未发布;候选清单/全模块/渠道/真机及正式签收待办 | 2026-10-08 |
|
||||||
| RELEASE-002 | 全栈开发(待指定) | 真实渠道与目标浏览器矩阵通过;不是仅编译通过或mock成功。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| RELEASE-002 | 全栈开发(待指定) | 真实渠道与目标浏览器矩阵通过;不是仅编译通过或mock成功。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
| RELEASE-003 | 全栈开发(待指定) | 干净测试环境可部署;有数据环境升级可恢复;不重跑旧空表限定迁移。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| RELEASE-003 | 全栈开发(待指定) | 干净测试环境可部署;有数据环境升级可恢复;不重跑旧空表限定迁移。 | 未验收;r2恢复157项见0.90,库/密钥53项见0.91,队列76项见0.92,合成导入中断/耗时92项及共享入口回归53项见0.93;手册/14回执核验与42项文件测试见0.94;Linux/systemd与告警离线准备49项/心跳10类见0.95,真实执行未做;告警状态56项/24样本7事件见0.96,原子存储51项/10进程见0.97,outbox调度63项/12进程见0.98,dead对账43项/9进程见0.99,合成链统一预检52项/3进程见1.00;Linux执行条件历史准备见1.01;用户取消独立机路线见1.02,未执行Linux/systemd,无实际采样/投递;生产守护/告警、规模耗时/密钥托管和正式签收待补 | 2026-10-08 |
|
||||||
| RELEASE-004 | 全栈开发(待指定) | 所有一期必做项已验收;生产无demo数据/占位协议/模拟Token;记录实际版本和时间。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
| RELEASE-004 | 全栈开发(待指定) | 所有一期必做项已验收;生产无demo数据/占位协议/模拟Token;记录实际版本和时间。 | 未验收;无真实业务验收证据 | 2026-09-22 |
|
||||||
|
|
||||||
直接阻塞:RELEASE-003 → EXT-DEPLOY。
|
直接阻塞:RELEASE-003 → EXT-DEPLOY。
|
||||||
@@ -1276,6 +1712,8 @@ EXT-AI已具备真实调用证据,尚不代表商业预算与生产容量验
|
|||||||
|
|
||||||
### 6.2 一期验收矩阵
|
### 6.2 一期验收矩阵
|
||||||
|
|
||||||
|
2026-10-08最新可复核子集与完整缺口见[核心与权限验收矩阵](核心与权限验收矩阵.md)及1.02—1.07。下表保留完整验收条件;局部通过不升级整行或任务状态。
|
||||||
|
|
||||||
前轮(草稿取消前)的浏览器证据与复核范围:使用Playwright CLI(`Browser plugin not available`),目标为真实密码登录→首页→底栏“我的”→确认退出→登录页,另验证A/B草稿隔离及短信未接入提示。页面标题“AI融资”与路由正确、非空、无框架错误遮罩;桌面及手机视口无本轮新增遮挡。正常登录/退出控制台无错误或警告;短信场景唯一错误为预期的HTTP 503资源日志。早期脚本直接改hash使弹框检查失效,改用实际底栏导航后完整退出流程通过,未修改框架。
|
前轮(草稿取消前)的浏览器证据与复核范围:使用Playwright CLI(`Browser plugin not available`),目标为真实密码登录→首页→底栏“我的”→确认退出→登录页,另验证A/B草稿隔离及短信未接入提示。页面标题“AI融资”与路由正确、非空、无框架错误遮罩;桌面及手机视口无本轮新增遮挡。正常登录/退出控制台无错误或警告;短信场景唯一错误为预期的HTTP 503资源日志。早期脚本直接改hash使弹框检查失效,改用实际底栏导航后完整退出流程通过,未修改框架。
|
||||||
|
|
||||||
截图:[登录后个人中心](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/profile-mobile.png>)、[切换账户后的空白草稿](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/account-isolation-mobile.png>)、[短信未配置手机提示](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/sms-unavailable-mobile.png>)、[桌面提示](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/sms-unavailable-desktop.png>)。位于本机临时目录,清理后可能失效,正式验收应另行归档。两条临时合成账户及其Redis会话已清理;复核数据库25表、Token表不存在。未覆盖微信内置浏览器、Safari、真机、正式发行、真实短信/AI或产品链路。接口复核命令为`php tests/api_session.php`,驱动为`php tests/token_redis.php`;前端编译命令见开发文档8.2。
|
截图:[登录后个人中心](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/profile-mobile.png>)、[切换账户后的空白草稿](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/account-isolation-mobile.png>)、[短信未配置手机提示](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/sms-unavailable-mobile.png>)、[桌面提示](<C:/Users/JUN/AppData/Local/Temp/airz-redis-qa/sms-unavailable-desktop.png>)。位于本机临时目录,清理后可能失效,正式验收应另行归档。两条临时合成账户及其Redis会话已清理;复核数据库25表、Token表不存在。未覆盖微信内置浏览器、Safari、真机、正式发行、真实短信/AI或产品链路。接口复核命令为`php tests/api_session.php`,驱动为`php tests/token_redis.php`;前端编译命令见开发文档8.2。
|
||||||
|
|||||||
+406
-1
@@ -1,6 +1,411 @@
|
|||||||
# AI融资项目新会话交接
|
# 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<leaseUntil才确认/失败,到期可接管换令牌,迟到成功/失败均拒绝。
|
||||||
|
- 接收端独立提交后才确认调度,不持调度写锁模拟发送。eventId主键+完整规范载荷去重,同ID不同内容/数值类型拒绝;回执必须匹配且本接收账本真实存在,重复接收/重复确认/重复失败幂等。CLI只accepted/retryable/permanent/timeout-after-accept四种进程内场景,无实际渠道/URL/外部消息;delivered仅模拟确认,externalDeliveryVerified=false。
|
||||||
|
- 63项涵盖边界/顺序/限次/退避/回执/坏存储/IO回滚/安全输出,9项进程测试12个owned Python子进程,6个在claim/receive/confirm提交前后终止,全部退出。测试内强制脏页写回/验证热日志:领取回滚不耗attempt,接收/确认中断重投同ID只一次效果,双领取/双接收并发去重。连同原存储回归10进程,共22个测试进程全部退出;不记Linux/systemd/机器断电耐久验收。
|
||||||
|
- 公开24样本7事件,首轮2条模拟接收成功但超时,退避前无领取,5秒后2条重投均duplicate;随后全部7个模拟delivered/7唯一效果、pending/leased/dead=0,来源顺序和源库原字节保持。原51/56/49/42回归、14回执/21不同源码核验、28份此前安全材料/12固定输入及上一项合成库摘要保持。
|
||||||
|
- 新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-dispatch/airz-alert-store-1791436020494/verification.json)及tests/receipt-baseline/red-tests/final-source-validation、三个合成SQLite现场,ACL仅当前用户/SYSTEM。formalAcceptance/liveSystemdVerified/externalDeliveryVerified/hostPowerFailureVerified均false;无生产/项目MySQL/Redis/网络/实际采样/服务启停/worker/模型/外部消息、系统安装或提交/推送/PR。Python-B/旧保留缓存和两仓库既有业务改动保持。
|
||||||
|
|
||||||
|
**下一开发入口:** RELEASE-003 dead事件与模拟接收回执对账、带审计的人工恢复门禁;在新合成账本区分“效果已存在但未确认”与“确未接收”,避免直接清空次数/跳过事件或自动外部补发。可信实际采样、真实Linux信号/守护/开机、授权渠道/收件目标仍待条件;Nginx/FPM/TLS恢复、实际密钥托管/生产规模RTO/RPO及正式运营/真机签收待办。小程序用户发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/规则待确认与供应商约定保持。
|
||||||
|
|
||||||
|
## 前轮接续:2026-10-08 告警state/outbox原子保存与崩溃恢复
|
||||||
|
|
||||||
|
最新进度 **1.87 / 0.97**,开发文档 **v1.55 / 0.68**。本轮完成RELEASE-003标准库SQLite本地合成持久化,51项测试/10个owned子进程通过,原56/49/42项回归及五组历史核验保持。说明见[原子存储契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-store.md)、[进度0.97](开发进度.md)。RELEASE-003阻塞/正式未验收、63任务/27页面保持。
|
||||||
|
|
||||||
|
- 后端新增tests/worker_alert_store.py、worker_alert_store_test.py与database/worker-supervision/alert-store.md;仅新airz-alert-store-数字目录/固定SQLite文件,DELETE日志/FULL同步/BEGIN IMMEDIATE,先锁再读最新state,state/样本摘要/新outbox同事务。只用Python标准库,不连接项目MySQL/Redis,旧纯状态/预检/spec/unit/catalog/业务源码不改。
|
||||||
|
- samples按时间主键保存摘要,支持整批/交叠/最新边界重试;已记录同时间同内容跳过,同时间冲突/未记录旧样本/过快仍拒绝,输入整批预检、中途SQL失败全部回滚。outbox eventId唯一,冲突不静默忽略;模拟确认只同事务置标记且幂等,不删除事件,不代表收件成功。
|
||||||
|
- 版本/schema/quick_check、严格JSON、policy/state/样本/事件关系与检查点摘要验证;损坏/陌生schema/WAL、作用域政策变化、缺库/孤立日志拒绝,不自动重建。根/库/sidecar检查链接/reparse/普通文件/硬链接元数据/64MiB上限;目录必须可信,本项不认证来源或抵抗同权限路径替换,不支持网络盘。
|
||||||
|
- 7项进程测试创建10个本轮owned Python进程,4个在apply/ack commit前后终止;全部退出。测试连接cache_size=1强制脏页写回,提交前确证DB变化和有效热日志,重开回滚state/samples/outbox;提交后但回执未输出可整批重试,确认中断也幂等。故障注入仅测试工具;不记真实Linux/systemd、断电或磁盘耐久验收。
|
||||||
|
- 公开24样本实际CLI得到7事件/4维护重置,整批重试0新样本/24重放/0新事件,最终无活动故障;模拟确认1条后仍7条事件/6条待确认,再次确认不变。原56/49/42回归、14回执/21不同源码核验及23份此前安全材料摘要保持,旧执行摘要不刷新。
|
||||||
|
- 新私密[verification.json](D:/AAdesk/202609/airz-backups/worker-alert-store/airz-alert-store-1791434240512/verification.json)及tests/receipt-baseline/red-tests/final-source-validation、合成SQLite现场,ACL当前用户/SYSTEM。formalAcceptance/liveSystemdVerified/externalDeliveryVerified/hostPowerFailureVerified均false;零实际采样/生产或项目DB/Redis/网络/外部通知/服务启停/worker/模型、系统安装或提交/推送/PR。Python-B/旧保留缓存和两仓库既有业务改动保持。
|
||||||
|
|
||||||
|
**下一开发入口:** RELEASE-003告警outbox有界调度、领取租约、失败退避、迟到确认与模拟接收端eventId幂等;仅新合成存储/进程内模拟渠道,不接外部通知。真实Linux信号/重启/开机、可信实际采样和渠道/收件目标仍需条件;Nginx/FPM/TLS恢复、实际密钥托管/生产规模RTO/RPO及正式运营/真机签收待办。小程序用户发行、课程整篇一次已读、身份证明文/后台脱敏、积分默认关闭/规则待确认和供应商约定保持。
|
||||||
|
|
||||||
|
## 前轮接续:2026-10-08 告警连续门槛、去重、恢复与维护
|
||||||
|
|
||||||
|
最新进度 **1.86 / 0.96**,开发文档 **v1.54 / 0.67**。本轮完成RELEASE-003告警纯状态处理和安全序列只读重放,56项测试通过;24个公开合成样本得到7个事件/4次维护连续性重置,分段恢复和边界重放与整段事件/state一致。说明见[告警状态契约](D:/AAdesk/202609/airz/database/worker-supervision/alert-state.md)、[进度0.96](开发进度.md)。RELEASE-003阻塞/正式未验收、63任务/27页面保持。
|
||||||
|
|
||||||
|
- 后端新增`tests/worker_alert_state.py`、`tests/worker_alert_state_test.py`、`database/worker-supervision/alert-state.md`与`alert-sequence.json`。纯advance/replay复用原安全DTO预览/标准库文件读取;不改worker/模型/任务业务、旧preflight/spec/unit/catalog或历史摘要。CLI只读绝对路径固定名alert-sequence.json和可选alert-state.json,stdout安全JSON/固定错误码,不写输入或状态文件。
|
||||||
|
- 默认failure3/recovery2/minInterval15秒/maxGap90秒/heartbeat阈值180秒,仅合成开发默认非生产告警时效。同码连续3次firing,持续同故障不重复;换码连续3次changed且incidentId保持,不把异常变化当恢复。两个来源明确active/success+近期心跳且非维护连续2次才恢复;新一轮故障新incidentId,eventId确定性。
|
||||||
|
- 双来源独立,短暂健康/不同故障码打断待确认;重复最新同时间/同内容不计数/不发事件,同时间冲突、乱序、过快拒绝。长空档与维护进出清零待确认故障/恢复计数但保留打开事件;维护预期stop/missing不恢复,真实degraded/限速等仍开事件。unknown/缺失/旧近期心跳不证明健康;累计NRestarts仍不当近期风暴。
|
||||||
|
- 状态schema/作用域/policy摘要、计数/时间/事件ID关系严格验证,坏state不自动重置;纯函数不修改输入,JSON序列化可恢复。replay1–1000样本完整验证后输出,中途失败不吐部分事件。SHA与结构不认证来源,state/采样/代码仍需可信流程;当前没有跨进程锁、原子state+outbox或投递回执,不能保证发送不丢/不重复,不能先存状态再发送。
|
||||||
|
- 56项测试涵盖门槛/去重/码变/恢复/双来源、采样边界/空档/重放/冲突/乱序、维护与真实异常、政策/作用域/坏状态、确定ID/输入不变/JSON恢复、CLI只读/安全错误/分段与部分失败。原守护49项、证据42项回归和五组14回执/21不同源码核验保持;另记录上一项5份安全回执,19历史材料摘要不改。
|
||||||
|
- 新私密安全证据`D:/AAdesk/202609/airz-backups/worker-alert-state/airz-alert-state-1791432337110/`,ACL仅当前用户/SYSTEM,含verification/tests/receipt-baseline/final-source-validation。formalAcceptance/liveSystemdVerified/externalDeliveryVerified均false;无实际采样/DB/Redis/网络/服务启停/worker/模型/外部通知、系统安装、提交/推送/PR。Python-B/旧拒绝删除缓存及两仓库既有业务改动保持。
|
||||||
|
|
||||||
|
**下一开发入口:** RELEASE-003告警state与事件outbox原子保存、跨进程互斥、eventId去重及崩溃/重复输入恢复;先临时合成文件/序列和模拟确认,不采生产或接外部投递。真实Linux信号/重启/限速/开机、可信实际采样与渠道/收件目标仍需具体条件和范围;Nginx/FPM/TLS恢复、实际密钥托管/生产规模RTO/RPO及正式运营/真机签收保持待办。小程序用户发行、课程整篇一次已读、积分默认关闭/规则待确认与供应商约定保持。
|
||||||
|
|
||||||
|
## 前轮接续:2026-10-08 Linux/systemd守护与告警隔离准备
|
||||||
|
|
||||||
|
最新进度 **1.85 / 0.95**,开发文档 **v1.53 / 0.66**。本轮完成RELEASE-003合成unit样例、标准库离线预检和安全快照告警预览;49项文件测试及10类现有PHP心跳纯回调/Python兼容检查通过。说明见[守护隔离准备](D:/AAdesk/202609/airz/database/worker-supervision/README.md)、[进度0.95](开发进度.md)。RELEASE-003整体阻塞/正式未验收和63任务/27页面保持。
|
||||||
|
|
||||||
|
- 后端新增`tests/worker_supervision_preflight.py`、`tests/worker_supervision_preflight_test.py`、`database/worker-supervision/`中的README/公开rehearsal-spec.json/airz-analysis-rehearsal.service/合成supervision-observation.json。unit独立airz-rehearsal用户和合成srv目录,直接运行原queue_lifecycle_probe persistent/real策略,模型和网络函数禁用,读写仅runtime/events。没有私密运行config或Linux目录/账号/服务安装;样例不能直接部署生产。
|
||||||
|
- 离线入口复用release_evidence的标准库安全读文件/严格JSON,核8份依赖源码hash;拒绝生产路径、默认/远程存储、共享队列、凭据/未知字段、模型开启、root用户、生产think/fake策略、重复指令/续行、EnvironmentFile及过宽写目录/无限时间/无启动限速。只stdout,不写文件、运行子进程或连DB/Redis/网络/启动worker/模型。
|
||||||
|
- unit计划Restart=always/5秒、StartLimit60秒3次、Stop240秒、SIGTERM/control-group/最终强杀及沙箱。源码没有应用级SIGTERM排空;官方语义确认Stop240秒不保证任务完成,显式stop不自动重启、命中限速不保证窗口后自动复活。worker存储异常继续degraded/active,OnFailure不足以覆盖;累计NRestarts不能当近期风暴。
|
||||||
|
- 预览只接受规范化supervisor四字段和原心跳安全DTO/作用域/采样时间/maintenance,校验年龄/阈值/状态一致性;识别限速、失败、非计划停止/转换及所有异常观测。维护只抑制预期inactive/deactivating的stopped/missing,不隐藏失败/存储异常;无定时采集、连续失败门槛/去重/恢复状态/持久outbox或投递。公开样本是固定历史合成时刻/PID且active但degraded,不代表当前服务。
|
||||||
|
- 49项测试覆盖门禁、源码漂移、时间/维护/严格类型、CLI只读和固定错误码;PHP7.4.3只加载AnalysisWorkerHeartbeat纯类,用回调生成ready/边界/stale/degraded/stopped/missing/invalid/unavailable/disabled/misconfigured十类DTO,Python兼容核对通过,无框架/env或DB/Redis。原证据入口42项回归、五组14回执/21不同源码核验保持,旧回执/业务源码不改。
|
||||||
|
- 本机无systemctl/systemd-analyze,未做原生unit解析或真实信号/守护/开机恢复,不尝试生产替代。新私密证据`D:/AAdesk/202609/airz-backups/worker-supervision-preflight/airz-supervision-preflight-1791431462713/`,ACL仅当前用户/SYSTEM,含verification/native-heartbeat-compatibility/tests/final-source-validation。输出formalAcceptance/liveSystemdVerified/externalDeliveryVerified均false;服务启停、生产/模型/外部通知均0。Python-B/旧缓存保留,两仓库既有改动保持,未提交/推送/PR或系统安装。
|
||||||
|
|
||||||
|
**下一开发入口:** RELEASE-003告警安全快照的连续失败门槛、同故障去重、恢复事件与维护窗口边界;先做纯状态/合成序列及离线检查,不实际采集生产或投递消息。真实Linux信号/重启/限速/开机仍需明确新隔离环境和具体范围;外部投递需渠道/收件目标与授权。Nginx/FPM/TLS恢复、真实密钥托管/生产规模RTO/RPO和正式运营/真机签收保持待条件;小程序用户发行、课程整篇一次已读、积分默认关闭/规则待确认及供应商约定保持。
|
||||||
|
|
||||||
|
## 前轮接续:2026-10-08 部署恢复手册与只读证据校验
|
||||||
|
|
||||||
|
最新进度 **1.84 / 0.94**,开发文档 **v1.52 / 0.65**。本轮完成RELEASE-003统一恢复手册与标准库只读证据入口,42项合成文件测试通过,五组14份历史回执/21个不同源码文件核验通过。说明见[部署恢复手册](D:/AAdesk/202609/airz/database/deployment-recovery-runbook.md)、[进度0.94](开发进度.md)。RELEASE-003整体阻塞、正式未验收、63任务/27页面保持。
|
||||||
|
|
||||||
|
- 后端新增`tests/release_evidence.py`、`tests/release_evidence_test.py`、`database/release-evidence.json`及`database/deployment-recovery-runbook.md`。固定catalog记录三类安全JSON回执路径、SHA256、逐组检查数及源码/纯类映射;校验器只用标准库,不导入演练脚本/框架、运行子进程、连DB/Redis/网络或启动worker/模型,默认仅输出安全JSON。
|
||||||
|
- 逐组核验r2发布/定向恢复157、密钥恢复53、队列76、导入中断92及共享密钥新回归53的历史证据,不合并累计成新验收数。14份回执摘要、关键断言、cleanup和63任务/27页面一致;134条队列模型禁用审计、三导入故障与恢复阶段耗时/回归关联核对。历史清理回执不代表当前服务/端口/ACL状态。
|
||||||
|
- 唯一历史源码差异是key_recovery_rehearsal.py:旧5913a69c…、当前a49ac108…,只由catalog明确记录且restore-import/key-regression两组通过、相同文件执行摘要匹配当前时覆盖。旧回执原字节保持,不刷新历史hash或要求正常更新的文档继续匹配历史fileSha256。新的源码再漂移或替代回归失败均拒绝。
|
||||||
|
- 42项测试包括缺失/篡改/失败、组/计数、严格布尔与零调用类型、未释放端口/cleanup errors、目录越界/秘密文件/源码白名单、符号链接/Windows reparse元数据拒绝、JSON重复键/非有限数/指数溢出、文件大小、三故障/耗时和新回归关联、CLI成功/失败只读不回显正文。仅临时合成文件,无服务或外部系统验证;链接/junction测试为元数据注入,不记真实创建系统链接。
|
||||||
|
- 新安全证据目录`D:/AAdesk/202609/airz-backups/release-evidence-reviews/airz-evidence-review-1791430386861/`,ACL仅当前用户/SYSTEM;verification、receipt-baseline、测试及final-source-validation独立保存。校验器自身不写文件。Python-B,旧拒绝清理的缓存保持;本轮没有启停服务或安装依赖。
|
||||||
|
- 仓库SHA256是已审阅快照而非数字签名,catalog/校验器/回执须来自可信来源,不能独立识别三者同时被篡改。输出始终formalAcceptance=false并列正式条件;不读取默认/生产.env、dump、实际密钥或私密config/log,不连接生产,不操作账号/策略/积分或代发小程序;既有业务改动全部保留,无提交/推送/PR。
|
||||||
|
|
||||||
|
**下一开发入口:** RELEASE-003 Linux/systemd队列守护与告警的隔离验证准备。先审阅现有部署单元、任务/租约/心跳/重启边界,形成可离线核验的方案与检查入口;实际信号/守护/开机恢复需要明确的新Linux隔离环境,告警投递需要通道和收件目标。不能直接停止生产worker、发送外部通知或沿用历史发布授权。Nginx/FPM/TLS恢复、真实密钥托管/生产规模RTO/RPO及正式运营/真机签收仍待条件;小程序用户发行、课程整篇一次已读、积分默认关闭和供应商约定保持。
|
||||||
|
|
||||||
|
## 前轮接续:2026-10-08 合成全库恢复导入中断与耗时
|
||||||
|
|
||||||
|
最新进度 **1.83 / 0.93**,开发文档 **v1.51 / 0.64**。本轮完成RELEASE-003全库导入中断/部分目标保留/另建空目标恢复及耗时记录,92项通过;共享密钥恢复入口在另一新环境完整53项回归通过,不合并累计。说明见[导入中断演练](D:/AAdesk/202609/airz/database/restore-interruption-rehearsal.md)、[进度0.93](开发进度.md)。RELEASE-003整体阻塞/正式验收及63任务/27页面保持。
|
||||||
|
|
||||||
|
- 新后端`tests/restore_interruption_rehearsal.py`、`database/restore-interruption-rehearsal.md`。共享`tests/key_recovery_rehearsal.py`提取原有verified_backup预检并记录restore各阶段耗时,原门禁顺序/错误码保持;PHP探针/Secret/Env/schema/业务源码不改。检查父/就近指令无项目AGENTS,保留两仓库所有已有未提交工作,未提交/推送/PR。
|
||||||
|
- 新MySQL5.7.26/3320、Redis5.0.14.1/6400、PHP7.4.3、6座合成库/私密ROOT/随机key,目录沿用共享PHP精确门禁airz-key-recovery-<数字>,位于本轮专属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(课程简化)
|
## 新会话接续检查点:2026-10-07(课程简化)
|
||||||
|
|
||||||
|
|||||||
@@ -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页面通过。
|
||||||
@@ -82,7 +82,8 @@
|
|||||||
const targetId = ref(''); const targetItem = ref<FeedbackItem | null>(null); const targetLoading = ref(false); const targetError = ref('')
|
const targetId = ref(''); const targetItem = ref<FeedbackItem | null>(null); const targetLoading = ref(false); const targetError = ref('')
|
||||||
let detailRequest = 0
|
let detailRequest = 0
|
||||||
let visible = false; let generation = 0; let faqRequest = 0; let listRequest = 0; let page = 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 groups = computed((): HelpGroup[] => {
|
||||||
const results: HelpGroup[] = []
|
const results: HelpGroup[] = []
|
||||||
helpCategories.forEach((category: string) => {
|
helpCategories.forEach((category: string) => {
|
||||||
@@ -122,8 +123,10 @@
|
|||||||
if (!visible || ticket != generation) return false
|
if (!visible || ticket != generation) return false
|
||||||
const sessionToken = getSession()?.getString('token') ?? ''
|
const sessionToken = getSession()?.getString('token') ?? ''
|
||||||
if (sessionToken == token) return true
|
if (sessionToken == token) return true
|
||||||
generation++; clearFeedback(); targetId.value = ''; owner = sessionToken; loggedIn.value = owner.length > 0
|
generation++; faqRequest++; loading.value = false; errorMessage.value = ''; expanded.value = ''
|
||||||
if (loggedIn.value) { restorePending(); reloadAfterAccountChange() }
|
clearFeedback(); targetId.value = ''; owner = sessionToken; loggedIn.value = owner.length > 0
|
||||||
|
if (loggedIn.value) restorePending()
|
||||||
|
reloadAfterAccountChange()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
reconcileAccount = () => { current(generation, owner) }
|
reconcileAccount = () => { current(generation, owner) }
|
||||||
@@ -143,10 +146,12 @@
|
|||||||
}
|
}
|
||||||
const load = async () => {
|
const load = async () => {
|
||||||
if (!visible || loading.value) return
|
if (!visible || loading.value) return
|
||||||
|
const account = generation; const token = owner
|
||||||
|
if (!current(account, token)) return
|
||||||
const ticket = ++faqRequest
|
const ticket = ++faqRequest
|
||||||
loading.value = true; errorMessage.value = ''
|
loading.value = true; errorMessage.value = ''; questions.value = []; expanded.value = ''
|
||||||
try { const items = await fetchHelpQuestions(); if (visible && ticket == faqRequest) questions.value = items }
|
try { const items = await fetchHelpQuestions(); if (current(account, token) && ticket == faqRequest) questions.value = items }
|
||||||
catch (_error) { if (visible && ticket == faqRequest) errorMessage.value = '暂时无法加载帮助内容,请稍后重试' }
|
catch (_error) { if (current(account, token) && ticket == faqRequest) errorMessage.value = '暂时无法加载帮助内容,请稍后重试' }
|
||||||
finally { if (ticket == faqRequest) loading.value = false }
|
finally { if (ticket == faqRequest) loading.value = false }
|
||||||
}
|
}
|
||||||
async function loadFeedback(append: boolean) {
|
async function loadFeedback(append: boolean) {
|
||||||
@@ -170,9 +175,11 @@
|
|||||||
} finally { if (ticket == generation && request == listRequest) { feedbackLoading.value = false; loadingMore.value = false } }
|
} finally { if (ticket == generation && request == listRequest) { feedbackLoading.value = false; loadingMore.value = false } }
|
||||||
}
|
}
|
||||||
function reloadFeedback() { loadFeedback(false) }
|
function reloadFeedback() { loadFeedback(false) }
|
||||||
reloadAfterAccountChange = () => { reloadTarget(); reloadFeedback() }
|
reloadAfterAccountChange = () => { load(); if (tab.value == 'feedback') { reloadTarget(); reloadFeedback() } }
|
||||||
const loadMore = () => { loadFeedback(true) }
|
const loadMore = () => { loadFeedback(true) }
|
||||||
const changeTab = (value: string) => {
|
const changeTab = (value: string) => {
|
||||||
|
if (!visible) return
|
||||||
|
reconcileAccount()
|
||||||
tab.value = value
|
tab.value = value
|
||||||
if (value == 'feedback') { reloadTarget(); reloadFeedback() } else if (questions.value.length == 0) load()
|
if (value == 'feedback') { reloadTarget(); reloadFeedback() } else if (questions.value.length == 0) load()
|
||||||
}
|
}
|
||||||
@@ -226,9 +233,10 @@
|
|||||||
visible = true; generation++; const token = getSession()?.getString('token') ?? ''
|
visible = true; generation++; const token = getSession()?.getString('token') ?? ''
|
||||||
if (token != owner) { if (owner.length > 0) targetId.value = ''; clearFeedback() }
|
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() }
|
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 = [] })
|
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; generation++; faqRequest++; clearFeedback() })
|
onUnload(() => { visible = false; stopAccountTimer(); generation++; faqRequest++; clearFeedback() })
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.help-body { overflow: hidden; }
|
.help-body { overflow: hidden; }
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<view class="search-tabs">
|
<view class="search-tabs">
|
||||||
<view v-for="item in tabs" :key="item.id" :class="activeType == item.id ? 'search-tab selected-tab' : 'search-tab'" @click="selectType(item.id)"><text :class="activeType == item.id ? 'tab-label selected-label' : 'tab-label'">{{ item.label }}</text></view>
|
<view v-for="item in tabs" :key="item.id" :class="activeType == item.id ? 'search-tab selected-tab' : 'search-tab'" @click="selectType(item.id)"><text :class="activeType == item.id ? 'tab-label selected-label' : 'tab-label'">{{ item.label }}</text></view>
|
||||||
</view>
|
</view>
|
||||||
<scroll-view scroll-y :key="listVersion" :style="contentStyle(296, false)">
|
<scroll-view scroll-y :scroll-top="scrollTop" :style="contentStyle(296, false)">
|
||||||
<view class="search-content" :style="bottomStyle(40)">
|
<view class="search-content" :style="bottomStyle(40)">
|
||||||
<view v-if="!searched" class="search-guide">
|
<view v-if="!searched" class="search-guide">
|
||||||
<text class="guide-title">想了解什么?</text><text class="guide-copy">查找融资资讯,学习实用知识</text>
|
<text class="guide-title">想了解什么?</text><text class="guide-copy">查找融资资讯,学习实用知识</text>
|
||||||
@@ -50,12 +50,17 @@
|
|||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const errorMessage = ref('')
|
const errorMessage = ref('')
|
||||||
const results = ref<ContentSearchResult[]>([])
|
const results = ref<ContentSearchResult[]>([])
|
||||||
const listVersion = ref(0)
|
const scrollTop = ref(0)
|
||||||
const total = ref(0); const hasMore = ref(false); const loadingMore = ref(false); const moreError = ref('')
|
const total = ref(0); const hasMore = ref(false); const loadingMore = ref(false); const moreError = ref('')
|
||||||
let page = 1
|
let page = 1
|
||||||
let requestVersion = 0
|
let requestVersion = 0
|
||||||
let visible = false
|
let visible = false
|
||||||
const resetResults = () => { requestVersion++; results.value = []; total.value = 0; hasMore.value = false; loadingMore.value = false; moreError.value = ''; searched.value = false; loading.value = false; errorMessage.value = ''; listVersion.value++ }
|
const resetScroll = () => {
|
||||||
|
// 保留滚动组件,避免H5返回页激活时重建导致框架读取空引用。
|
||||||
|
scrollTop.value = 1
|
||||||
|
nextTick(() => { scrollTop.value = 0 })
|
||||||
|
}
|
||||||
|
const resetResults = () => { requestVersion++; results.value = []; total.value = 0; hasMore.value = false; loadingMore.value = false; moreError.value = ''; searched.value = false; loading.value = false; errorMessage.value = ''; resetScroll() }
|
||||||
const clearSearch = () => { keyword.value = ''; resetResults() }
|
const clearSearch = () => { keyword.value = ''; resetResults() }
|
||||||
async function load(append: boolean) {
|
async function load(append: boolean) {
|
||||||
if (!visible) return
|
if (!visible) return
|
||||||
@@ -65,7 +70,7 @@
|
|||||||
uni.hideKeyboard()
|
uni.hideKeyboard()
|
||||||
const currentRequest = append ? requestVersion : ++requestVersion
|
const currentRequest = append ? requestVersion : ++requestVersion
|
||||||
if (append) { loadingMore.value = true; moreError.value = '' }
|
if (append) { loadingMore.value = true; moreError.value = '' }
|
||||||
else { searched.value = true; loading.value = true; loadingMore.value = false; errorMessage.value = ''; moreError.value = ''; results.value = []; total.value = 0; hasMore.value = false; page = 1; listVersion.value++ }
|
else { searched.value = true; loading.value = true; loadingMore.value = false; errorMessage.value = ''; moreError.value = ''; results.value = []; total.value = 0; hasMore.value = false; page = 1; resetScroll() }
|
||||||
try {
|
try {
|
||||||
const result = await searchContent(keyword.value, activeType.value, append ? page + 1 : 1)
|
const result = await searchContent(keyword.value, activeType.value, append ? page + 1 : 1)
|
||||||
// 输入、切换分类或退出页面后,忽略旧请求,避免结果被覆盖。
|
// 输入、切换分类或退出页面后,忽略旧请求,避免结果被覆盖。
|
||||||
|
|||||||
@@ -4,15 +4,19 @@ export type HelpQuestion = { id: string, category: string, question: string, ans
|
|||||||
export const helpCategories: string[] = ['账户使用', '融资评估', '资料与隐私']
|
export const helpCategories: string[] = ['账户使用', '融资评估', '资料与隐私']
|
||||||
export async function fetchHelpQuestions(): Promise<HelpQuestion[]> {
|
export async function fetchHelpQuestions(): Promise<HelpQuestion[]> {
|
||||||
const response = await requestJson('/help/faqs', 'GET', {})
|
const response = await requestJson('/help/faqs', 'GET', {})
|
||||||
const items = response['items'] as UTSJSONObject[] | null
|
const items = response['items']
|
||||||
if (items == null) throw new Error('帮助内容加载失败')
|
if (items == null || !Array.isArray(items)) throw new Error('帮助内容响应不完整,请重试')
|
||||||
const results: HelpQuestion[] = []
|
const results: HelpQuestion[] = []
|
||||||
items.forEach((item) => {
|
;(items as any[]).forEach((value: any) => {
|
||||||
const id = item['id'] as string ?? ''; const category = item['category'] as string ?? ''
|
if (value == null || typeof value != 'object' || Array.isArray(value)) throw new Error('帮助内容响应不完整,请重试')
|
||||||
const question = item['question'] as string ?? ''; const answer = item['answer'] as string ?? ''
|
const item = value as UTSJSONObject
|
||||||
if (id.length > 0 && helpCategories.includes(category) && question.length > 0 && answer.length > 0 && !results.some((entry: HelpQuestion): boolean => entry.id == id)) {
|
const id = item.getString('id'); const category = item.getString('category')
|
||||||
|
const question = item.getString('question'); const answer = item.getString('answer')
|
||||||
|
if (id == null || !/^[1-9][0-9]{0,9}$/.test(id) || parseFloat(id) > 2147483647
|
||||||
|
|| category == null || !helpCategories.includes(category) || question == null || question.trim().length == 0
|
||||||
|
|| answer == null || answer.trim().length == 0 || results.some((entry: HelpQuestion): boolean => entry.id == id))
|
||||||
|
throw new Error('帮助内容响应不完整,请重试')
|
||||||
const result: HelpQuestion = { id, category, question, answer }; results.push(result)
|
const result: HelpQuestion = { id, category, question, answer }; results.push(result)
|
||||||
}
|
|
||||||
})
|
})
|
||||||
return results
|
return results
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user