129 lines
6.8 KiB
Markdown
129 lines
6.8 KiB
Markdown
# XYZAC TRT Web/WASM 指针
|
||
|
||
这是 `xyzac-trt.ini` Web/WASM 对标轨道的独立入口;不替代 `nextTask.md` 或 `nextTask1.md`。
|
||
|
||
## Current
|
||
|
||
```yaml
|
||
pointer_version: 3
|
||
updated: 2026-08-27
|
||
track: xyzac-trt-web-wasm-source-parity
|
||
context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1
|
||
active_case: linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
|
||
milestone: M6-RELEASE-PARITY
|
||
overall_status: verified
|
||
release_status: STOP_RELEASE
|
||
context_policy: task-packet.v1
|
||
active_packet: null
|
||
last_verified_task: RELEASE-00
|
||
last_handoff: coverage/task-packets/RELEASE-00.handoff.json
|
||
```
|
||
|
||
## Read
|
||
|
||
启动只读本文件的 `Current/Task/Next/Verify/Stop/Context`,再按任务包读取:
|
||
|
||
- `doc-rtcp/xyzac-trt-control-panel-web-wasm-design.md`
|
||
- `doc-rtcp/xyzac-trt-web-wasm-implementation-plan.md`
|
||
- `doc-rtcp/xyzac-trt-web-wasm-source-parity-contract.md`
|
||
- `context-lock.json`
|
||
|
||
硬约束:LinuxCNC WASM/Worker 是 task/interpreter/TP/motion/kinematics/RTCP/HAL/IO/tool/preview/recovery/state 唯一权威;React/JS/Three.js 仅输入、投影、显示。
|
||
|
||
## Context
|
||
|
||
`task-packet.v1` 是唯一工作上下文:`coverage/task-packets/<task-id>.json`。
|
||
|
||
- 启动包只含当前 `Task` 的 `direct_inputs`、`required_outputs`、锁摘要和输入 hash;不加载聊天、旧包、完整日志或无关报告。
|
||
- 包含 `task/context/path/hash/budget/exclusions`;限 8k tokens/12 files,大文件按 symbol 拆包。
|
||
- 收口先写 `coverage/task-packets/<task-id>.handoff.json`(结果、测试、失败样本、报告哈希、下一个任务 ID),再把 `active_packet` 置空。
|
||
- 自动认领下一任务前必须重新读取本文件、校验指针/锁/依赖并确认旧包清理;残留或不一致时 `blocked`,不得复用上一任务上下文。
|
||
|
||
## Task
|
||
|
||
```yaml
|
||
id: RELEASE-00
|
||
status: verified
|
||
title: WASM-only Release Gate
|
||
owner: xyzac-trt-web-wasm
|
||
milestone: M6-RELEASE-PARITY
|
||
context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1
|
||
depends_on: [RTCP-12]
|
||
active_case: linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
|
||
direct_inputs:
|
||
- doc-rtcp/xyzac-trt-web-wasm-source-parity-contract.md
|
||
- coverage/xyzac-trt-web-wasm-parity.report.json
|
||
- context-lock.json
|
||
required_outputs:
|
||
- coverage/xyzac-trt-wasm-only-release-gate.report.json
|
||
objective: >-
|
||
对 xyzac-trt.ini 执行最终 WASM-only release gate;
|
||
selected-case evidence 完整时仍保留 scope exclusions 和 STOP_RELEASE,不宣称全 LinuxCNC 发布。
|
||
completion_conditions:
|
||
- xyzac_wasm_only_capability_verified
|
||
- xyzac_selected_case_evidence_index_verified
|
||
- xyzac_scope_exclusions_stop_release_verified
|
||
- xyzac_release_report_self_hash_verified
|
||
```
|
||
|
||
实施:冻结输入哈希,解析配置/引用图,登记 control、handler、command、gate、state、error、visual、recovery,生成 source-slice report;缺 source path/symbol/hash、WASM 映射或测试边界即 blocked。
|
||
|
||
## Next
|
||
|
||
```yaml
|
||
next_task: null
|
||
status: complete
|
||
title: completed selected-case track
|
||
depends_on: [RELEASE-00]
|
||
required_outputs:
|
||
- none
|
||
scope_note: xyzac-trt.ini only; other cases remain out of scope
|
||
```
|
||
|
||
固定顺序:`SRC-00 → WASM-00 → RTCP-01/02/03 → RTCP-04/05/06 → RTCP-07 → RTCP-08 → PARITY-00 + RTCP-09/10 → RTCP-11 → UI-00 → RTCP-12 → RELEASE-00`。
|
||
|
||
里程碑:`M0-SOURCE → M1-WASM-AUTHORITY → M2-CONTROL-PARITY → M3-CANONICAL-PARITY → M4-FRONTEND-PARITY → M5-RECOVERY-PARITY → M6-RELEASE-PARITY`。
|
||
|
||
## Verify
|
||
|
||
```bash
|
||
python3 scripts/validate_baseline.py
|
||
python3 scripts/validate_download_index.py
|
||
python3 scripts/validate_task_pointer.py nextTask-rtcp.md --lock context-lock.json
|
||
bash -n run-5axis-rtcp.sh
|
||
./run-5axis-rtcp.sh
|
||
./run-5axis-rtcp.sh xyzbc-trt.ini
|
||
```
|
||
|
||
收口必须运行专项 generator/test、真实 WASM Worker/session、native 对照、React typecheck/build 和报告 self-hash;不得用 mock、JS preview、墙钟或静态截图代替 authority 证据。报告必须包含 command trace、tick、state hash、first divergent tick、error 和 blocker。
|
||
|
||
## Execute
|
||
|
||
完整提示词:`doc-rtcp/xyzac-trt-autonomous-execution-prompt.md`。每轮按:基线/指针门禁 → 建当前 task packet → `queued→in_progress` → 失败边界测试和最小切片 → 真实 WASM Worker/session + native 对照 → trace/state/error/recovery/hash → `verified` 或 `blocked` → 写 handoff、清理 packet、重新加载指针后再认领依赖满足的下一项。不得停在 `verified+queued`。
|
||
|
||
连续执行硬规则:
|
||
|
||
- 所有 task/interpreter/TP/motion/XYZAC kinematics/RTCP/HAL/IO/tool/preview/recovery/state hash 唯一来自 LinuxCNC WASM/Worker。
|
||
- React/JS/Three.js 只能输入、投影和显示;禁止 JS preview、JS 姿态补偿、浏览器墙钟 tick、直接 WASM 指针和主线程 OPFS 写入。
|
||
- 每个副作用命令必须有 `seq`、`operation_id`、ledger prepare/ack/result/commit/reconcile;超时不能盲目重发。
|
||
- 每个 source slice 必须有 source path/symbol/hash、native/WASM command、gate、authoritative output、错误、恢复和 Web control id。
|
||
- 五轴必须验证 `M428/M429/M430`、`motion.switchkins-type`、XYZAC 五 joints、A/C 角度单位、tool offset、rotation/axis offset、奇异和 limits。
|
||
- 每项必须保留 normal、boundary、error、pause/resume/abort、recovery 和 deterministic hash(适用时)。
|
||
- 失败保留为 `SOURCE_BLOCKED`、`HOST_EXCLUDED`、`REAL-EXCLUDED`、`BLOCKED_RESOURCE`、`BLOCKED_HAL`、`BLOCKED_INI`、`BLOCKED_STARTUP` 或具体 runtime pending;不得删样本、降检查或伪造通过。
|
||
- 不得修改 `nextTask.md`、`nextTask1.md`、ABI、protocol、schema、context lock、许可证决定或 release gate。
|
||
- 每隔约 30 秒报告 task、检查、测试和 blocker;勿粘贴长日志。
|
||
|
||
只有专项测试、完整回归、native/WASM/Worker 证据和 report self-hash 全部通过才能 verified;selected-case verified 不等于全 LinuxCNC parity。
|
||
|
||
## Stop
|
||
|
||
- 任意 AXIS 页面、菜单、工具栏、按钮、快捷键、PyVCP 控件、G-code/remap、状态字段或错误没有 source slice。
|
||
- 任意 task/motion/kinematics/program/RTCP/IO/preview/recovery 状态由 JS/React/Three.js 生成。
|
||
- M428/M429/M430 没有 WASM remap、HAL pin、`motion.switchkins-type` 和结果 snapshot 确认。
|
||
- native/WASM trace 只比较最终坐标,未保存首个差异 tick。
|
||
- gate 与 LinuxCNC 源码不一致,或 ESTOP/OFF/ON/HOME/IDLE/RUNNING/PAUSED/limit/fault 约束不可解释。
|
||
- recovery 可能重复 G-code、轨迹段、M-code、tool/IO side effect 或 kinematics transition。
|
||
- exact resource、官方 oracle、浏览器、OPFS、实时硬件或 owner 输入缺失。
|
||
- 需要修改 ABI/protocol/schema/context lock/release gate,但没有批准任务和兼容测试。
|
||
- 不得把 selected-case verified 写成全 LinuxCNC parity;默认 `release_status: STOP_RELEASE`。
|