完善 xyzbc-trt OPFS 与 AXIS 首屏等效

This commit is contained in:
mes123456
2026-07-02 10:10:54 -04:00
parent 1c8908e3ab
commit 52e54f8089
16 changed files with 925 additions and 28 deletions

View File

@@ -10852,3 +10852,30 @@ nginx: configuration file /etc/nginx/nginx.conf test is successful
17. 执行 `git status --short`,确认提交推送后仅剩未跟踪生成目录 `app/dist/``tools/__pycache__/`
18. 执行 `git log -1 --oneline``git ls-remote origin refs/heads/master`,确认本地最新提交和远端 `master` 均为 `8fd9952`
19. 本轮结论T-034 tool-offset 闭环相关源码、测试、证据和工作文档已提交并推送到云仓库;构建产物和 Python 缓存未提交。
## 2026-07-02 执行日志xyzbc-trt Web OPFS 与 AXIS 首屏等效
本轮接续 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working` 开发用户明确要求“Web 的文件使用 OPFS 系统”。执行过程如下:
1. 读取并确认当前项目状态:`working/03-推进台账.md``working/04-任务矩阵.md``app/src/runtime/linuxcnc-machine-file-staging.js``app/src/runtime/five-axis-session.js``app/src/state/store.js``tests/browser/xyzbc_trt_browser_smoke.html` 等文件。
2. 发现现有浏览器环境具备 OPFS 时会使用 `navigator.storage.getDirectory()`,但仍允许 memory fallbackNode evidence 与 Node smoke 显式使用 `createMemorySessionStorage()`,不能代表真实浏览器 OPFS。
3. 修改 `app/src/runtime/linuxcnc-machine-file-staging.js`,为 machine file staging 增加 `requireOpfs` 选项:当要求 OPFS 而浏览器 OPFS 不可用时直接报错,不再静默回退到 memory。
4. 修改 `app/src/runtime/five-axis-session.js`,为 session snapshot 保存/恢复增加 `requireOpfs` 选项。
5. 修改 `app/src/runtime/tool-db-simulation.js`,为 tool table 保存增加 `requireOpfs` 选项。
6. 修改 `app/src/state/store.js`,增加 `withDefaultWebOpfsRequirement()`:浏览器 UI 默认要求 OPFS显式传入 storage 或 Node 环境保持原测试能力。
7. 修改 `app/src/main.js`,默认启动的 machine file seed 调用 `store.stageMachineFiles({ requireOpfs: true })`
8. 扩展 `tests/browser/xyzbc_trt_browser_smoke.html`:断言 machine file seed 和 store staging 的 `storageMode=opfs`,并从 OPFS 读回 `xyzbc_switchkins.ngc`,确认包含 `M428/M429`;调用 `api.saveSession()` 并从 OPFS 读回 session JSON确认 `machineProfile=xyzbc-trt`;调用 `api.saveToolDb()` 并从 OPFS 读回 tool table确认包含 `T2``Z10`
9. 同步完成 T-026 AXIS 首屏等效:修改 `app/src/ui/gmoccapy-shell.js``app/src/styles/gmoccapy.css`,增加首屏状态带和 `data-axis-ui-*` 验收标记覆盖程序、坐标、状态、MDI、switchkins、override、tool、preview、execution、axis-buttons。
10. 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`,新增 `axisMainUi` evidence 与 `coverage.axisMainUiEquivalent`。说明:该 Node evidence 仍为内存采集,真实浏览器 OPFS 由 browser smoke 验证。
11. 修改 `tools/compare-xyzbc-trt-evidence.mjs`,新增 AXIS 首屏等效检查。
12. 运行验证:`npm --prefix app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
13. 运行验证:`npm --prefix app run build` 通过,输出 `gmoccapy_static_build=ok`
14. 运行验证:`npm --prefix app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`;此验证包含真实浏览器 OPFS 写入和读回。
15. 运行验证:`npm --prefix app run evidence:web` 通过,生成 `working/evidence/web-xyzbc-trt-evidence.json`
16. 运行验证:`npm --prefix app run evidence:compare` 生成真实失败报告,输出 `compare_xyzbc_trt_status=fail fail_count=5`;当前为 20/25 通过,剩余 5 项仍来自 native preview/execution path 样本缺失。
17. 更新 `working/03-推进台账.md`,记录本轮 OPFS 强制与 AXIS 首屏等效实现。
18. 更新 `working/04-任务矩阵.md`T-006/T-014/T-016 增加真实 OPFS 验收描述T-017 更新为 20/25T-026 标记完成。
19. 更新 `working/05-验收证据.md`新增“Web OPFS 与 AXIS 首屏等效验收”章节。
20. 保留既有未跟踪输出 `app/dist/``tools/__pycache__/`,未清理或回退用户/构建产物。
本轮结论:目标 Web app 的浏览器文件链路已经默认强制使用 OPFSbrowser smoke 已证明 machine files、session snapshot、tool table 均写入 OPFS 并可读回。Node evidence 仍使用内存存储,仅作为非浏览器数据采集,不作为真实 Web 文件系统证明。