Files
linuxcncWebWASM/nextTask1.md

167 lines
7.7 KiB
Markdown
Raw Permalink 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 仿真接续指针
这是仿真实现轨道的唯一接续入口。治理/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`。