Files
cnc_wams/完善wasm/working/11-缺口风险与边界锁定.md
2026-07-10 21:26:42 -04:00

59 lines
6.3 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.
# 11-缺口风险与边界锁定
## 一票否决风险
| 风险 | 触发条件 | 处理规则 |
| --- | --- | --- |
| 自研 CNC 语义 | JS/TS 或项目自有 C/C++ 实现 G-code、刀补、固定循环、remap、tooldata、TP、运动学、HAL 数控逻辑,且不能证明是 LinuxCNC thin wrapper | 立即判定不通过,必须迁回 LinuxCNC 源码或明确为非对标扩展 |
| vendor drift | vendored 文件与 LinuxCNC 基线不一致且无上游来源说明 | `verify_vendor_sync.sh` 必须失败,不能人工标绿 |
| UI 第二真相 | Web UI 坐标、模态、刀具、程序状态与底层 WASM/task/HAL snapshot 不一致 | UI 相关功能不得标 L5 |
| 未知失败 | expected_fail 无固定原因,或 unexpected_fail 被计入通过率 | 整体不得宣称完全通过 |
| 降级 full-process | 将 task/HAL/motion/full-process 测试降级为普通解释器通过 | Web/WASM simulation runtime 可按 `22` 晋级;宿主 native process topology 仍条件通过或 Blocked |
## 当前已锁定边界
| 边界 | 当前口径 | 解除条件 |
| --- | --- | --- |
| Python remap Web/WASM | 已解除 | Pyodide CPython/WASM、Native/WASM/Browser 成对 proof、53 行源码覆盖和目标 Web 接线已闭合 |
| User-M Web/WASM | 已解除 | M128/M129 预编译 handler、HAL 状态、Node/Web proof 和 release 接线已闭合 |
| 任意宿主 User-M/Python 外部进程 | Blocked | 仍需明确 host opt-in、安全策略和人工批准不由 Web promotion 继承 |
| 硬件驱动 | Blocked | 有虚拟边界或真实硬件实验环境,且不影响浏览器沙箱安全 |
| 实时内核 | 条件通过或 Blocked | `22` 已定义 Web/WASM runtime proof`hostRealtimeKernel=false` 必须保留,不能宣称 Linux realtime |
| full native process topology | 条件通过 | NML/task/motion/HAL/io 进程拓扑和状态机有 native/WASM/browser 可比证据 |
| Vismach/Tk/AXIS 原生 GUI | Web 等效实现 | 继续以 LinuxCNC GUI 为行为参考,不迁移 Tk/Python GUI 作为浏览器实现 |
| `04基于Web...txt` 声称通过但无逐项 evidence | 不得自动继承通过 | 按 `13-04验收文档任务对标矩阵.md` 逐项绑定源码、测试和 gate |
| HAL Scope/Meter 原生工具 | 条件通过或待实现 gate | `halmeter` 需结构化当前值 JSON`halscope` 需结构化 waveform JSON、采样/触发/通道字段和 Node/Browser gate截图、`halGraph``halNets` 或 gmoccapy HAL model 不能替代 |
| HAL Scope/Meter JSON gate | L3 条件通过 | 两个 JSON、schema/sample/trigger、Web 和 compare gate 已由 `28` 闭合;原生 RT/GTK process 和 L5 交互 UI 不继承通过 |
| 五轴 profile 范围 | 条件通过或按 profile 完成 | 默认 `xyzbc-trt``xyzac-trt``xyzab-tdr`、gmoccapy 和 TRSRN/max5 等必须分别绑定 INI、kins、G-code 和 evidence gate不能跨 profile 继承通过 |
| `loadrt` 运行时动态加载 | Blocked 或预编译 allowlist 条件通过 | 五组件 allowlist 已真实实例化和执行;未知组件及任意 LinuxCNC realtime module 动态链接继续 blocked |
| HAL `.comp` 基础组件 | L3 条件通过 | `and2``or2``not``mux2``scale` 的 source、halcompile 派生、manifest、truth-table/formula、thread/net 和 Web 代表配置 gate 已通过;仅限 Web/WASM simulation |
| HAL component manifest | 已有证据 | manifest、generation report、source/generated hash 和三个 component gate 已闭合;任何 source/generator/generated drift 必须失败 |
| HAL component P1 源码同步 | 已有证据 | 五个 `.comp` 的 commit/双清单/字节/hash gate 已通过1 个非上游 `xyzac-trt_cmds.hal` 由独立 overlay manifest 锁定且全量 gate 通过overlay 仍不得描述为上游文件 |
| HAL component 伪执行 | 已解除并防回退 | `hal_export_funct` callback、servo step、pin/signal 输出变化和 session reset 已由 `27` 验证;若退回只登记 eventcomponent gate 必须失败 |
| 自定义/并联运动学运行时加载 | 条件通过或 Blocked | `verify_kinematics_wasm.sh` 只覆盖已预编译 kinematics任意用户自定义 `.so`/动态链接继续阻塞 |
| Project release ready 与 host promotion 混淆 | 一票否决 | `project-release-readiness.json ready=true` 只表示已声明发布范围通过;只要 blocked family/manual lock/host false 存在,就不得宣称宿主能力完成,详见 `25` |
| Opt-in 状态跳级 | 一票否决 | host ready、dispatch allowed、默认禁用、native pass、evidence accepted、manual unlock、promotion 必须分层;`ready_disabled_by_default`/skip/block 不能算 pass |
| 单 fixture 批量继承 | 禁止晋级 | Python stop-lookahead native pass 只能绑定该 fixture不能自动晋级全部 Python remap rows |
| Process probe 权限扩散到 realtime/hardware | 禁止 | 三个 process opt-in probe 不授权 realtime kernel 或硬件驱动;二者必须另建专用安全任务和人工授权 |
## 已知文档漂移
| 位置 | 问题 | 后续处理 |
| --- | --- | --- |
| `完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt` | 已补齐但包含“100%/通过/超越”等结论性表述 | 作为任务输入和目标声明;完成结论必须由 working evidence 复核 |
| `web-rtcp-5axis-xyzbc-trt-sim-plan/README.md` | native evidence 示例命令仍包含 `/home/mes123456/linuxcnc-master` | 应统一为 `/home/mes123456/cnc_wams/linuxcnc` |
| `linuxcnc` 工作树 | 存在未跟踪本地文件 | 不能自动视为上游变更source/vendor 校验仍以 commit 和 manifest 为准 |
## 风险处理流程
1.`09-联合任务矩阵.md` 新增或更新任务。
2. 在本文件登记边界、风险和解除条件。
3. 修改底层项目代码或证据。
4.`10-联合验证命令清单.md` 复验。
5. 更新 `05-验收证据.md` 和相关底层项目 working 文档。
## ACC-039 后 HAL Component 边界更新
- 已解除:五个基础 `.comp` 缺少 LinuxCNC 派生生成、precompile manifest、WASM factory、truth-table/formula、thread/net 和 Web 代表配置执行证据的风险。
- 仍锁定:`dynamicLoadrtSupported=false`;未知组件、任意动态模块、宿主 RTAPI realtime、内核模块和硬件驱动不得继承 `ACC-039` 的 Web/WASM 仿真结论。
- 防回退:组件 gate 必须同时校验 source/generated hash、unknown blocked 和第二 HAL session reset只出现 `loadrt` 文本或 `call:` event 不足以通过。