Files
linuxcncWebWASM/nextTask1.md

143 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LinuxCNC Web/WASM 完整仿真移植接续指针
这是 LinuxCNC 仿真实现的唯一接续入口;本文件只管理仿真源码、native/WASM/Worker 行为和回归测试。
## Current
```yaml
pointer_version: 1
updated: 2026-08-22
track: complete-linuxcnc-simulation
context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1
milestone: S8
last_verified_task: FE-M1-REACT
last_verified_slice: React/Tailwind/Radix/Three.js FE-M1 build and minimal_xyz Worker case verified
```
## Read
启动时只读取本文件的 `Current`、`Task`、`Verify`、`Stop`,然后按需读取:
- [`docs/linuxcnc-web-wasm-simulation-gap-plan-v2.md`](docs/linuxcnc-web-wasm-simulation-gap-plan-v2.md)
- [`docs/linuxcnc-web-wasm-autonomous-execution-prompt.md`](docs/linuxcnc-web-wasm-autonomous-execution-prompt.md)
- [`docs/linuxcnc-web-wasm-case-parity-plan.md`](docs/linuxcnc-web-wasm-case-parity-plan.md)
- [`docs/linuxcnc-axis-complete-parity-spec.md`](docs/linuxcnc-axis-complete-parity-spec.md)
- [`context-lock.json`](context-lock.json)
- 当前任务列出的直接输入和上一个任务的完成报告
启动只读取仿真实现直接输入和当前测试要求。
## Task
```yaml
id: FE-M4-GUI-06
status: blocked
title: GUI browser visual/performance/recovery matrix
milestone: S8
context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1
depends_on: [FE-M4-GUI-05, FE-M4-GUI-04, FE-M4-GUI-03, FE-M1-REACT, S8-09]
direct_inputs:
- coverage/react-frontend-m1.report.json
- coverage/gui-source-inventory-fe-m4.report.json
- coverage/react-gui-domain-fe-m4.report.json
- coverage/axis-web-workflow-fe-m4.report.json
- coverage/gui-family-adapter-fe-m4.report.json
- coverage/gui-visual-workflow-fe-m4.report.json
- coverage/axis-source-inventory.report.json
- docs/linuxcnc-axis-complete-parity-spec.md
- coverage/browser-matrix-remediation.report.json
- docs/linuxcnc-web-wasm-frontend-communication-design.md
- docs/linuxcnc-web-wasm-source-map.md
- linuxcnc/src/emc/usr_intf
- linuxcnc/lib/python
- linuxcnc/configs/sim
required_outputs:
- Chromium GUI screenshot/DOM/canvas visual evidence
- browser performance and recovery boundary report
- explicit Firefox/Safari/OPFS blockers without promotion
objective: >-
在真实 Chromium production preview 中验证 GUI DOM、Three.js 非空像素、
exact-path 三轴案例加载、控件布局和移动视口;浏览器版本矩阵、OPFS
crash/recovery 和 Safari/Firefox 不可用条件保持独立 blocked。
non_goals:
- 不复制桌面 GTK/Qt/Tk 窗口,不把宿主 Python/动态 loader/真实硬件变成 Web 能力
- 不修改 ABI、protocol、schema、context lock;manifest 归属缺口保留为可定位审计项
completion_evidence:
status: blocked
report: coverage/gui-browser-visual-fe-m4.report.json
report_sha256: 6386db199317ae95cd5ce03ccb0d525a056f3a9736eb3a28263869b00a33be05
implementation_status: verified
chromium_visual: verified
chromium_authorized_slice: verified
chromium_version: Google Chrome 151.0.7922.169
browser_matrix: blocked
opfs_recovery: blocked
prior_completion_evidence:
task_id: FE-M4-GUI-05
report: coverage/gui-visual-workflow-fe-m4.report.json
report_sha256: 4082c673e2bccbf250cfe23683d2732021a3a22f5302da8e12cc80397685c788
worker_test: scripts/test_gui_visual_workflow_report.py
```
## Next
```yaml
next_task: none
status: blocked
depends_on: [FE-M4-GUI-06]
plan: docs/linuxcnc-web-wasm-simulation-gap-plan-v2.md
continuation_file: nextTask1.md
continuation_status: simulation-only-case-closure
case_parity_plan: docs/linuxcnc-web-wasm-case-parity-plan.md
queued_after_unblock: []
evidence:
prior_implementation_reports: coverage/*.report.json
title: no automatic follow-up while browser/recovery matrix is incomplete
direct_inputs:
- coverage/runtime-extensions-s8-09.report.json
- coverage/sim-case-matrix-s8-06.report.json
- docs/linuxcnc-web-wasm-case-parity-plan.md
reason: Chromium visual slice is verified; full browser minimums, Safari/Firefox and OPFS recovery remain external blockers
```
认领后状态改为 `in_progress`,完成后只能在专属测试、完整技术回归和报告 self-hash 都通过时改为 `verified`;发现输入或契约缺口则改为 `blocked` 并保留失败样本。
## Verify
开始修改前:
```bash
python3 scripts/validate_baseline.py
python3 scripts/validate_task_pointer.py
```
技术轨道收口验证:
```bash
scripts/build-wasm.sh
ctest --test-dir build-native --output-on-failure
for f in web/worker/test_*.mjs; do node "$f" || exit 1; done
for f in web/app/test_*.mjs; do node "$f" || exit 1; done
```
完成任务后还必须运行:
```bash
for f in web/worker/test_*.mjs; do node "$f" || exit 1; done
for f in web/app/test_*.mjs; do node "$f" || exit 1; done
python3 scripts/validate_baseline.py
python3 scripts/validate_task_pointer.py
```
## Stop
遇到以下任一情况立即保持 `blocked`:
- 需要修改锁定 ABI、protocol、schema 或 manifest。
- native/WASM/Worker 的首个 divergent tick 未定位。
- 只能依赖墙钟、随机数、mock Worker、宿主路径或真实设备才能通过。
- checkpoint/event/hash 不可验证,或恢复会重复已提交副作用。
- 直接输入缺失、生成器不确定性、索引/资源无法定位,或测试只能通过降低检查。
S8-10 原有 235-case acceptance 仍保持 `blocked/STOP_RELEASE`,不宣称 LinuxCNC 全功能 release。用户已授权继续全 GUI 技术移植;FE-M4-GUI-01..05 已完成 source/domain/AXIS/family/Three.js 映射,FE-M4-GUI-06 Chromium desktop/mobile visual smoke 已 verified,但三浏览器 minimum matrix、Safari/Firefox、OPFS recovery 仍 blocked;许可证审批不阻塞实现,最终交付阶段再汇总 license/NOTICE。