← 资料库

阶段原始记录;当前产品流程以在线体验为准。

M5 内部工程复核

日期:2026-10-13 · 版本:v001 · 类型:自动化与代码工程复核,真人样本数为0。

本轮发现并修复2项P2:跨标签页旧快照覆盖新订单、跨日期恢复时取货日漂移。修复后12项核心测试、原有22组浏览器检查和新增5组边界回归通过。该结论绑定三款菜单的P2修复快照;用户后续U01菜单扩充与背景重设计另行验收。

范围与隔离

- 项目:[本机路径已隐藏]

- 审核源码:src/m3-prototype;检查六页预订、香气卡、券、异常恢复、本机数据和实际下载。

- 环境:Node v24.19.0,Edge 155.0.4283.45,独立临时无头配置,390×844为主,原测试另覆盖320/390/1440宽度。

- 自有服务仅127.0.0.1:8738;未操作用户8727页面、数据或服务,未访问真实交易服务。

- 真人试用、U01意见不由自动化结果代替;没有虚构访谈、满意度或转化。

可重现发现与修复

M5-A01 · P2 · 旧标签页写入造成订单丢失 · 已修复

定位:修复前app.mjs第4–5、11行(启动读取与整份快照保存)。原始快照(阶段资料未公开)。

复现:同源A/B两页从空数据打开;A添加P01并创建订单;B从旧状态添加P02;A刷新后显示“还没有演示预订”。B把自己的order:null写回本机数据,覆盖了A的新订单。实际影响是演示数据丢失与状态回退,不涉及真实交易。

修复采用原生浏览器同源锁,覆盖“读取最新快照→按本次意图更新→保存”整个共享写入过程。storage事件同步其他页面,重置同样传播;敏感提交若发现外页更新则先要求核对。缺少Web Locks时保留本页演示并明确不写共享数据。

验证:原始失效截图及JSON位于边界证据(阶段资料未公开)。新增回归先失败,修复后通过旧页写入、延迟storage通知、并发增量、重置同步与无锁降级。

M5-A02 · P2 · 取货日期跨日漂移 · 已修复

定位:修复前core.mjs第12行创建订单、app.mjs第28行显示订单。原始核心快照(阶段资料未公开)。

复现:测试时钟设为10月13日,选“明天”提交;推进到10月14日刷新,同一订单仍显示“明天”。只有today/tomorrow字符串,无法保持原定日历日期。

修复:创建时保存本地日历pickupDate,订单页显示YYYY-MM-DD。使用本地年/月/日运算,跨月跨年有效,避免UTC转换偏一天。恢复时验证日历合法性。旧订单没有日期锚点,不猜创建日,显示“旧演示订单 · 取货日期待确认”,原金额与状态保留。

验证:本地凌晨日期、跨年、幂等原金额/原日期、跨日刷新、旧记录提示及非法日期恢复均覆盖。修复后5组回归(阶段资料未公开);新订单跨日截图(阶段资料未公开);旧订单截图(阶段资料未公开)。

验证结果

| 项目 | 结果 | 证据 |

|---|---|---|

| 原核心单测 | 修复前9/9通过 | core-test-v001.txt |

| 全部核心单测 | 修复后12/12通过 | unit-green-v002.txt |

| 新增日期单测红灯 | 3/3按预期失败 | m5-unit-red-v001.txt |

| 新增浏览器红灯 | 4组原缺陷失败;额外无锁降级失败 | red-v001、red-v002 |

| 新增边界回归 | 5/5通过 | green-v003/results.json |

| 原主流程 | 10组通过 | browser-run06/browser-results-v001.json |

| 原异常状态 | 8组通过 | states-run06/state-results-v001.json |

| 原评审回归 | 4组通过 | review-browser-run06/review-results-v001.json |

以上相对路径均位于本轮audit证据目录(阶段资料未公开)。最终浏览器验收未捕获应用异常。旧测试引入异步锁后的一处立即断言已改为等待实际状态;正式browser/states测试已同步,旧版本保留在before目录。

实际下载的分享图为1080×1440 PNG,壁纸为1080×1920 PNG;打印PDF一页,MediaBox/BleedBox为106×154 mm,TrimBox为100×148 mm。检查的是run06真实下载文件,不只是HTTP成功。已目视查看代表分享图及修复前后订单截图。合成个人留言未出现在事件JSON或localStorage中。

10次代表下载观察

修复前工程基线中,同一台电脑、同一Edge会话、A08分享图和12字合成留言,顺序下载10次,全部成功,每份2,381,760字节。没有去掉首轮。

| 观测区间 | 最小 | 中位数 | 最大 |

|---|---:|---:|---:|

| Playwright开始点击至download事件 | 366.135 ms | 391.796 ms | 411.301 ms |

| 开始点击至文件保存结束 | 450.389 ms | 478.663 ms | 564.415 ms |

逐次原始数据v002(阶段资料未公开)。这包含浏览器自动化开销,仅描述当前本机样本,不是模型耗时、广泛性能基准、提速或降本结论。v001方法描述误写14字,v002改为12字,数据与下载文件未变。

文件、环境记录与未覆盖事项

- 正式修改:public/app.mjs、public/core.mjs、新增tests/m5.test.mjs;正式browser.cjs、states.cjs只调整异步等待。

- 源码修复前后快照在work/20261013-M5试用与工程复盘/audit/before与after-p2;修复后哈希(阶段资料未公开)。

- 自有Edge最初遇到沙箱命名管道限制;host Edge随后无法访问沙箱内端口。切换到host自有8738服务后验收。两次启动记录留存,不计产品缺陷。

- 合成时钟第一次回归在about:blank读取sessionStorage报错;测试加空白页保护后通过,记录保留。没有修改产品去迎合此测试错误。

- 未验证:微信/iOS/Android真机、在线模型、真实支付/库存/核销、生产并发、外部发布、实物印刷。无Web Locks浏览器只能本页暂存本轮改动。

- U01后续六款菜单与产品背景设计改版不在本次快照验收范围;主代理须完成改版后的回归。

- 主代理统一追加WORK_LOG/LESSONS/HANDBOOK及适用的全局经验,避免并行写同一文档。