# LinuxCNC Web/WASM 仿真接续指针 这是仿真实现轨道的唯一接续入口。治理/owner 轨道仍以 [`nextTask.md`](nextTask.md) 为准;不要用本文件刷新 K8 release gate、owner decision 或 context lock。 ## Current ```yaml pointer_version: 2 updated: 2026-08-24 track: complete-linuxcnc-simulation context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1 milestone: PANEL-15 last_verified_task: PANEL-15-SELECTED-CASE-ACCEPTANCE last_verified_slice: 3axis-tutorial source-backed Web/WASM control-panel parity overall_audit: selected_case_verified audit_report: coverage/axis3-tutorial-web-wasm-complete-parity.report.json audit_report_sha256: c4229856a5d16918e15095ef79d92251b97acf8d5a2266050a7c850821c01da2 wasm_exports: 207 ``` ## Read 启动时只读取本文件的 `Current/Task/Next/Verify/Stop`,再按需读取当前任务的直接输入。保持选定案例和 context 不变: - 案例入口:`linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini` - 来源规则:[`docs/linuxcnc-web-wasm-wasm-only-migration-plan.md`](docs/linuxcnc-web-wasm-wasm-only-migration-plan.md) - 选定案例契约:[`docs/linuxcnc-web-wasm-3axis-tutorial-complete-parity-plan.md`](docs/linuxcnc-web-wasm-3axis-tutorial-complete-parity-plan.md) - 锁定输入:`context-lock.json` 不要重新执行已验证的全配置、GUI 或运动学实现矩阵;它们只作为回归输入。`nextTask.md` 的 owner 阻塞与本地 T3/T4/T5 技术任务相互独立。 ## Task ```yaml id: T7-RELEASE-GATE-01 status: blocked title: local simulation release-gate audit owner: simulation-runtime milestone: T7 context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1 depends_on: [T6-FUNCTION-CLOSURE-01] active_case: linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini direct_inputs: - coverage/wasm-function-closure-t6.report.json - coverage/wasm-feature-matrix-t5.report.json - coverage/release-candidate-gate.report.json - coverage/full-case-acceptance-s8-10.report.json - coverage/remediation-evidence-roundup.report.json - coverage/owner-review-gate-refresh.report.json - coverage/official-oracle-remediation.report.json - coverage/configuration-resource-remediation.report.json - coverage/browser-matrix-remediation.report.json - coverage/implementation-license-remediation.report.json - coverage/full-configuration-startup-matrix.report.json - coverage/linuxcnc-source-semantics-contract.json - web/workspace/linuxcnc-source-semantics.mjs - context-lock.json - nextTask.md required_outputs: - coverage/wasm-simulation-release-gate-t7.report.json - scripts/generate_wasm_simulation_release_gate_t7.py - scripts/test_wasm_simulation_release_gate_t7.py objective: >- 在不刷新 K8 owner gate、不修改 context lock、ABI、protocol、schema 或许可证决定的前提下, 对 simulation track 的 T6 closure、已有 release evidence 和外部 blocker 做只读 release-gate 审计;明确 candidate eligibility、STOP_RELEASE、未解决 blocker identity 和不可自动重试边界。 completion_evidence: report: coverage/wasm-simulation-release-gate-t7.report.json report_sha256: 4e7cc4e7006fbdcd4698a1304b6ea9e688b18d2abf506731fbf8d0c9e2edd19b status: blocked candidate_eligible: false release_action: STOP_RELEASE gate_mutation: forbidden blocker_count: 8 failure_samples: 3 checks_verified: 9 known_blockers: owner/source/oracle/resource/browser/license inputs remain unresolved release_status: STOP_RELEASE ``` 实施顺序: 1. 读取 T6 closure 和既有 release/remediation evidence,固定 context 与 blocker identity。 2. 只读核对 candidate eligibility、STOP_RELEASE、owner input 缺失、oracle/resource/browser/license 状态。 3. 验证 gate/context/manifest 未被本地审计修改;任何 release promotion 都视为失败。 4. 生成带输入 hash、检查结果、failure sample 和 self-hash 的 T7 audit report。 ## Next ```yaml next_task: none status: verified title: 3axis-tutorial Web/WASM complete parity acceptance completion_report: coverage/axis3-tutorial-web-wasm-complete-parity.report.json completion_report_sha256: c4229856a5d16918e15095ef79d92251b97acf8d5a2266050a7c850821c01da2 release_status: authorized_selected_case panel_01_completion_evidence: >- coverage/panel-01-source-control-inventory.report.json sha256=a508c4bc092a71fe012b404afb1634717f29af5dbf54573674a3b4eeb0638ba7; blocked SOURCE_CONTROL_MAPPING_BLOCKED; inventory=verified controls=187 menus=80 toolbar=20 shortcuts=82 panels=5 react_features=29 gaps=153; manual_tool=verified; screenshots=7acd6aa950c1e35d3ab3a8cde1ed79e0e94d0c6443625da5d440c90075ac5f3b,f3fc1b076d74374b1548a36b50f485a207ff52dee99868f78cf2e9bc612ed1d0 control_panel_plan: document: docs/linuxcnc-web-wasm-3axis-tutorial-control-panel-implementation.md semantics_contract: coverage/linuxcnc-source-semantics-contract.json shared_rules: web/workspace/linuxcnc-source-semantics.mjs scope: selected_3axis_tutorial_only data_authority: linuxcnc_wasm_through_dedicated_worker react_role: command_input_and_projection_only hard_constraints: - wasm_is_sole_runtime_data_source - state_machine_matches_linuxcnc_source - button_gates_match_axis_source - toolpath_preview_matches_native_canonical_motion feature_matrix: status: verified p0: [load_program, toolpath_preview, estop_reset, power_on, reset, home, execute_gcode, realtime_path, realtime_coordinates, button_gates] p1: [mdi, jog] total_items: 12 tasks: PANEL-01..PANEL-15 release_boundary: authorized_selected_case ``` 认领后把当前 `Task.status` 和 `Next.status` 改为 `in_progress`;只有专项测试、完整回归和报告 self-hash 全部通过才改为 `verified`。发现缺口则改为 `blocked` 并保留 failure sample,不自动重试同一阻塞。 ## Verify 开始任务前: ```bash python3 scripts/validate_baseline.py python3 scripts/validate_task_pointer.py nextTask1.md --lock context-lock.json ``` T7 专项与构建门禁: ```bash scripts/build-wasm.sh ctest --test-dir build-native --output-on-failure python3 scripts/generate_wasm_simulation_release_gate_t7.py python3 scripts/test_wasm_simulation_release_gate_t7.py python3 scripts/test_wasm_function_closure_t6.py python3 scripts/test_wasm_feature_matrix_t5.py node web/worker/test_wasm_preview.mjs node web/worker/test_wasm_motion_event.mjs node web/worker/test_wasm_motion_authority.mjs node web/worker/test_wasm_motion_checkpoint.mjs node web/worker/test_wasm_canonical_state.mjs node web/worker/test_wasm_canonical_state_checkpoint.mjs node web/worker/test_axis3_selected_case.mjs node web/worker/test_axis3_visible_completion.mjs node web/worker/test_axis3_tutorial_program.mjs npm --prefix web/react run typecheck npm --prefix web/react run build ``` 收口时运行全部 `web/worker/test_*.mjs`、全部 `web/app/test_*.mjs`,再运行两项 baseline validator;生成器失败、测试失败或 hash 不稳定都保持 `blocked`。回归必须使用真实 WASM module、Dedicated Worker/session 代码和固定 logical tick,不得用 mock、墙钟或 JS G-code preview 作为通过依据。 ## Stop - 需要修改锁定 ABI、protocol、schema、context lock 或 manifest 才能继续。 - 任一 selected-case task/motion/home/limit 字段仍由 JS 镜像产生,或首个 divergent tick 未定位。 - canonical task/home-limit state、queue state、checkpoint/event/hash 不一致,恢复重复 segment/副作用,或 ESTOP/limit/home 状态不可解释。 - 对缺失 WASM ABI 的 core 回退为 JS authority,或把 HAL/IO/tool/probe 的 partial slice 宣称为 T4 完成。 - 不得把 selected-case verified 写成全量 LinuxCNC parity;T5、Firefox/Safari、OPFS 物理崩溃、官方 oracle、实时硬件、许可证和 owner release blockers 继续保持 blocked/`STOP_RELEASE`。