57 KiB
任务证据索引
本文件是按需读取的历史索引,不是启动上下文。完整日志和大型 JSONL 产物只通过路径、大小和 SHA-256 追溯;不要把它们复制回 nextTask.md 或新的 context packet。
当前指针:nextTask.md;当前 context:linuxcnc-2.10.0-pre0-wasm-m1-py-c1(与 context-lock.json 一致)。
已验证节点
| 节点 | 结果摘要 | 主要产物 |
|---|---|---|
BOOTSTRAP-M0-01 |
基线、下载索引、ABI bootstrap 和上下文包测试通过 | coverage/source-index.jsonl, coverage/manifest.jsonl |
INV-01a..d |
文档能力、源码符号、配置资源、测试入口索引确定性生成 | coverage/document-capabilities.jsonl, coverage/source-symbols.jsonl, coverage/config-resources.jsonl, coverage/test-entries.jsonl |
INV-02a..b |
规范化 source ID、依赖闭包和 unresolved/orphan 报告生成 | coverage/normalized-sources.jsonl, coverage/dependency-closure.jsonl |
INV-03a |
native runner、golden schema 和严格 oracle 通过 | scripts/native_runner.py, coverage/golden-schema.json |
M1-CORE-01 |
最小 protocol、Worker session 和真实 WASM smoke 通过 | wasm-core/src/sim_protocol.c, web/worker/sim-session.mjs |
M1-CORE-02 |
事件容量、回放、快照完整性和序列约束通过 | wasm-core/src/sim_event.c, web/worker/replay.mjs |
M1-FS-01 |
workspace journal/recovery prepare/commit/abort 和损坏记录阻断通过 | web/workspace/journal.mjs, web/workspace/recovery.mjs |
M1-RT-01 |
runtime error/capability mapping fail-closed 通过 | web/worker/error-map.mjs, web/worker/capabilities.mjs |
M1-RT-02 |
当前最近验证点;报告和脚本单测通过 | coverage/runtime-mapping.report.json |
M2-CORE-01 |
posemath/TP adapter、固定浮点、segment error boundary 和 state hash 通过 | coverage/posemath-runtime.report.json |
M2-CORE-02 |
固定 ASCII 数值解析、G/M 模态、canonical 输出和失败边界通过 | coverage/interpreter-runtime.report.json |
M2-CORE-03 |
固定容量 motion queue、连续性、fixed tick 和 canonical state 通过 | coverage/motion-runtime.report.json |
M2-CORE-04 |
blocked:锁定任务声明的 linuxcnc/unit_tests/kinematics/** 不存在 |
nextTask.md |
K0-INV-01 |
35 个实现/头文件、262 个去重 KINEMATICS 入口、111 个 HAL/切换入口和 11 个实现族已登记;所有族因官方 unit-test 根缺失显式 blocked | coverage/kinematics-source-closure.report.json |
K0-INV-02 |
262 个去重后的 KINEMATICS 条目与 111 个 HAL/切换条目闭合为 373 个入口节点、2,774 条边;11 个固定 FK/IK 样本定义全部保留 blocked | coverage/kinematics-config-graph.report.json, coverage/kinematics-oracle-samples.jsonl |
K0-ORACLE-01 |
native kinematics smoke 通过;11 个样本严格按 golden schema 输出并因缺失官方 oracle 全部 blocked,无伪造 golden | coverage/kinematics-oracle.report.json, coverage/kinematics-golden-schema.json |
K1-CONTRACT-01 |
sim_kinematics ABI、错误码、结构体、导出集合和数值策略生成 contract 并验证;native/WASM/CTest 通过 | coverage/kinematics-abi-contract.json |
K1-CONTRACT-02 |
flags、pose、duplicate-axis、home、limits、axis-to-joint mapping 和 state hash 行为已登记并由 native CTest 覆盖 | coverage/kinematics-mapping-contract.json |
K1-NUM-01 |
浮点编译、角度单位、迭代上限、容差、exact 字段和六类边界错误已固定 | coverage/kinematics-numeric-policy.json |
K2-TRIV-01 |
trivkins 四种 mode、coordinates case-fold、XYZ/XYZABCUVW、重复轴和 extra-joint 行为已接入现有 slice;245 个真实配置候选已映射,官方 oracle 仍 blocked | coverage/trivkins-integration.report.json |
K2-TRIV-02 |
明确并实现 kinematics joint 前缀与 extra-joint 分离;重复轴 first-wins、joint_count mismatch、home、limit、state hash native/WASM 回归通过 | coverage/kinematics-mapping-contract.json, wasm-core/tests/sim_kinematics_test.c |
K2-COUPLED-01 |
CoreXY、Rose、MaxKins、RotateKins 统一接入;三项 shipped 配置加一个明确标注的 rotatekins 工作区派生候选、FK/IK round-trip、CoreXY HAL/kins 入口区分、Rose quadrant/revolution continuity、Max pivot 和 Rotate 90°边界、native/WASM JSON 与 state hash 对照通过;官方 oracle 继续显式 blocked | coverage/coupled-kinematics.report.json, wasm-core/src/sim_kinematics.c |
K2-HAL-01 |
静态 corexy_by_hal 注册到 SimHAL;命令/反馈 8-pin 矩阵、servo tick 调度、alpha/beta 方向、Cartesian home 信号与 corexykins 入口区别由 native/WASM 对照通过;官方 oracle 继续显式 blocked |
coverage/corexy-hal.report.json, coverage/hal-runtime.report.json, wasm-core/src/sim_hal.c |
K3-5AXIS-01 |
5axiskins 接入统一 XYZBCW spherical pivot 变换;bridgemill 真实配置、xyzbcwy 重复 Y 映射、pivot length、FK/IK round-trip、缺必需坐标边界和 native/WASM state hash 对照通过;官方 oracle 继续显式 blocked |
coverage/fiveaxis-kinematics.report.json, wasm-core/src/sim_kinematics.c |
K3-TRT-01 |
XYZAC/XYZBC TRT 统一接入;table-rotary-tilting 两个真实 identityfirst 配置、旋转顺序和 offset 参数、FK/IK round-trip、B=90 奇异边界、native/WASM state hash 对照通过;switchkins 动态切换和官方 oracle 保持后续/blocked |
coverage/trt-kinematics.report.json, wasm-core/src/sim_kinematics.c |
K3-ROBOT-01 |
SCARA、PUMA、Scorbot 统一接入;scara/puma shipped 配置加 scorbot 工作区派生候选、几何参数、FK/IK 分支 round-trip、不可达/奇异边界和 native/WASM 对照通过;state hash 使用 1e-9 浮点规范化,官方 oracle 继续显式 blocked | coverage/robot-kinematics.report.json, wasm-core/src/sim_kinematics.c |
K3-GENSER-01 |
Genser DH 六链 forward 与固定零初值阻尼 Jacobian inverse 接入;melfa/puma560 真实 DH 配置、迭代 residual/iteration、固定上限不收敛、非有限 DH 边界和 native/WASM 对照通过;官方 oracle 继续显式 blocked | coverage/genser-kinematics.report.json, wasm-core/src/sim_kinematics.c |
K4-DELTA-01 |
Linear/rotary Delta 统一 forward/inverse/mapping;四个真实配置候选、默认/alternate root、工作空间无解、关节限位、rotary z=0 奇异、固定零迭代和 native/WASM state hash 对照通过;缺失 HAL 资源与官方 oracle 均显式 blocked | coverage/delta-kinematics.report.json, wasm-core/src/sim_kinematics.c, scripts/generate_delta_kinematics_report.py |
K4-TRIPOD-01 |
Point-vertex tripod 统一 forward/inverse/mapping;真实 tripod.ini/tripodsim.hal、XYZ/AD-BD-CD 映射、above/below 根分支、无解/基面奇异/限位/退化几何边界、固定零迭代和 native/WASM state hash 对照通过;官方 oracle 因锁定来源缺少 linuxcnc/unit_tests/kinematics/** 继续 blocked |
coverage/tripod-kinematics.report.json, wasm-core/src/sim_kinematics.c, scripts/generate_tripod_kinematics_report.py |
K4-HEX-01 |
Genhex 六腿 Stewart 平台统一 forward/inverse/mapping;真实 hexapod.ini/kinematics.hal、六腿闭式逆解、Newton 6x6 正解、alternate seed、非正 strut、迭代上限、最大误差、奇异 Jacobian、限位、HAL GUI/迭代 pin 和 native/WASM state hash 对照通过;官方 oracle 因锁定来源缺少 linuxcnc/unit_tests/kinematics/** 继续 blocked |
coverage/genhex-kinematics.report.json, wasm-core/src/sim_kinematics.c, scripts/generate_genhex_kinematics_report.py |
K4-PENTA-01 |
Pentakins 五腿并联统一 forward/inverse/mapping;真实 pentapod.ini/kinematics.hal 与派生非零姿态 seed、XYZAB 映射、roll/pitch 约束、tool-offset 双端几何、Newton 5x5 收敛/迭代上限/最大误差/奇异/非正杆长/限位、native/WASM JSON 和 state hash 对照通过;官方 oracle 因锁定来源缺少 linuxcnc/unit_tests/kinematics/** 继续 blocked |
coverage/pentapod-kinematics.report.json, wasm-core/src/sim_kinematics.c, scripts/generate_pentapod_kinematics_report.py |
K5-SWITCH-01 |
switchkins 三槽位动态切换;真实 xyzac-trt.ini/identityfirst 配置、identity/xyzac-trt/userk 注册、pose 连续、状态保持、非法模式/缺模块/切换中断/abort 边界、native/WASM runner 与 state hash 对照通过;官方 oracle 因锁定来源缺少 linuxcnc/unit_tests/kinematics/** 继续显式 blocked |
coverage/switchkins-kinematics.report.json, wasm-core/src/sim_switchkins.c, wasm-core/tests/sim_switchkins_test.c |
K5-USER-01 |
userk identity 模板与 ugenser/genser 构建期静态描述符;ABI v1、forward/inverse/static capability、switchkins type 2 绑定、FK/IK 调用状态、路径/.so 禁止、版本/能力/缺模块边界和 native/WASM state hash 对照通过;旧 ugenser CLI 明确排除,官方 oracle 继续 blocked |
coverage/userkins-kinematics.report.json, wasm-core/src/sim_userkins.c, wasm-core/tests/sim_userkins_test.c |
K5-CFG-01 |
18 个内建运动学类型的 ABI v1 构建期注册表;稳定名称/type、必需坐标、关节范围、7 类能力位、8 类参数掩码、18/18 实际 init、能力/参数/type/坐标/关节/未知/路径错误和 native/WASM registry hash 对照通过;官方 oracle 继续 blocked | coverage/kinematics-registry.report.json, wasm-core/src/sim_kinematics_registry.c, wasm-core/tests/sim_kinematics_registry_test.c |
K6-MOTION-01 |
固定 tick TP→IK→motion adapter;复用 sim_tp 和 sim_kinematics_inverse_ex,64 槽关节样本队列、pause/resume、IK 奇异、非有限、容量满、planner/kinematics 事务回滚、native/WASM JSON 和 state hash 对照通过;官方 oracle 继续 blocked |
coverage/kinematics-motion.report.json, wasm-core/src/sim_kinematics_motion.c, wasm-core/tests/sim_kinematics_motion_test.c |
K6-MOTION-02 |
actual-joint→FK feedback adapter;pose/joint/flags/tick/valid/error 状态、stale/nonfinite/joint-count/unsupported-forward 边界、错误时不覆盖有效 pose、native/WASM JSON 和 state hash 对照通过;官方 oracle 继续 blocked | coverage/kinematics-feedback.report.json, wasm-core/src/sim_kinematics_feedback.c, wasm-core/tests/sim_kinematics_feedback_test.c |
K6-HOME-01 |
fixed home sequence、sim_kinematics_home、joint limit/FK check;未 home、非法 sequence、越界、非有限、joint-count、失败保持有效 pose/joints、native/WASM JSON 和 state hash 对照通过;官方 oracle 继续 blocked |
coverage/kinematics-home-limit.report.json, wasm-core/src/sim_kinematics_home_limit.c, wasm-core/tests/sim_kinematics_home_limit_test.c |
K6-IO-01 |
固定 tick spindle/tool/probe IO;motion/iocontrol pins、主轴限速/到速/定向、prepare/change/abort/fault、probe pose latch、停主轴互锁、非法 pin/超限/未 ready/急停/恢复边界和 native/WASM JSON/hash 对照通过;官方 IO/kinematics oracle 继续 blocked | coverage/io-runtime.report.json, wasm-core/include/sim_io.h, wasm-core/src/sim_io.c, wasm-core/tests/sim_io_test.c |
| K7-RECOVERY-01 | 固定 tick checkpoint/replay 与 workspace recovery 已接入;checkpoint 携带 context、cursor、snapshot/state hash 和 operation ledger;损坏 checkpoint、未知 schema、缺号/重复事件、未确认操作、abort 和恢复边界均 fail-closed;恢复终点与连续运行状态 hash 一致;native sim_event_import 与 Worker 对照通过,官方 recovery oracle 继续显式 blocked | coverage/workspace-recovery.report.json, web/worker/replay.mjs, web/worker/sim-session.mjs, web/workspace/recovery.mjs, wasm-core/src/sim_event.c |
| K8-REG-01 | 统一配置图确定性枚举 264 个运动学入口和 233 个 sim INI 入口;逐项资源/INI/注册表启动预检、缺失与未解析引用保留;图谱孤儿和未拥有模板为零;native/WASM kinematics/motion/feedback/home/IO 与 Worker replay/recovery 重复摘要稳定;官方 kinematics/recovery oracle 继续显式 blocked | coverage/configuration-regression.report.json, scripts/generate_configuration_regression.py, scripts/test_configuration_regression.py, coverage/manifest.jsonl, context-lock.json |
| K8-REL-01 | 兼容性、来源/许可证和发布闭合审计完成;ABI/protocol/schema/context lock 哈希一致;1,804 个已影响 manifest 条目在 evidence index 中保留 owner、输入、输出、测试、差异和 oracle 状态;6,249 个未分配种子、资源缺失、官方 oracle、浏览器矩阵、逐项许可证和迁移/回滚继续显式 blocked,不升级为发布候选 | coverage/release-closure.report.json, coverage/compatibility-matrix.report.json, coverage/license-closure.report.json, coverage/release-evidence-index.json, docs/linuxcnc-web-wasm-release-closure.md, scripts/generate_release_closure.py, scripts/test_release_closure.py |
| K8-REL-02 | workspace-package v1↔v2 封套迁移双向 hash 闭合;旧 event/snapshot/checkpoint/journal schema 保持不变且损坏、版本、上下文不兼容均 fail-closed;回滚包只生成新目标包,失败注入后恢复到最近已提交 seq=1;离线资源完整缓存 ready、缺件阻断、联网降级显式;迁移项在 release evidence index 标记 verified,K8-REL-01 的官方 oracle/资源/浏览器/许可证阻塞保留 | coverage/workspace-migration.report.json, coverage/workspace-rollback.package.json, coverage/offline-cache.package.json, web/workspace/migration.mjs, web/workspace/test_migration.mjs, coverage/release-evidence-index.json, coverage/compatibility-matrix.report.json |
| K8-REL-03 | 生成 8,053 条确定性 license/source index;全部来源 hash、审计责任人和证据状态完整;7,996 条 LinuxCNC 条目按最具体 Debian copyright scope 映射 SPDX,57 条 wasm-core/web 条目明确保持 blocked_unassigned;实现许可证决策写入独立文档,release 仍保留实现许可证阻塞,不升级为发布候选 | coverage/license-source-index.jsonl, coverage/license-closure.report.json, docs/linuxcnc-web-wasm-license-decision.md, coverage/release-evidence-index.json, scripts/test_license_source_closure.py |
| K8-REL-04 | 最终 release-candidate gate 独立汇总 closure 报告、context lock、schema contracts、license/source index、恢复和迁移证据;context/recovery hash、ABI/protocol/schema、license index、migration/rollback/offline checks verified;6 个硬阻塞保留,明确 candidate_eligible=false、release_action=STOP_RELEASE,不升级为发布候选 | coverage/release-candidate-gate.report.json, coverage/release-closure.report.json, scripts/generate_release_closure.py, scripts/test_release_candidate_gate.py |
| K8-REL-05 | post-release audit 逐项比较 gate 的 11 个输入哈希、closure 交叉引用和 context/schema/recovery/migration 检查;审计检查全部 verified,6 个 blocker 均有 owner、review owner、证据路径和 remediation;整体仍明确 blocked/STOP_RELEASE,未清除或重分类阻塞 | coverage/post-release-audit.report.json, scripts/generate_post_release_audit.py, scripts/test_post_release_audit.py |
| K8-REL-06 | K8 milestone closeout 冻结 post-release audit、release gate、closure、evidence index 和 context lock;输入哈希、审计自校验、context/schema、六项 blocker 保留和 STOP_RELEASE 均 verified;里程碑以 closed_with_release_blockers 结束,不升级为发布候选 | coverage/k8-milestone-closeout.report.json, scripts/generate_k8_milestone_closeout.py, scripts/test_k8_milestone_closeout.py, coverage/post-release-audit.report.json |
| K8-REL-07 | remediation intake 校验 closeout、audit、gate、closure、evidence index 和 context lock 的输入哈希与 context;六个 blocker identity、owner/evidence/review trigger 和 STOP_RELEASE 均 verified;生成 K8-REL-08..13 有序后续工作项,但全部保持 blocked,不升级为发布候选 | coverage/release-remediation-intake.report.json, scripts/generate_release_remediation_intake.py, scripts/test_release_remediation_intake.py, docs/linuxcnc-web-wasm-release-remediation-intake.md |
| K8-REL-08 | 为全部 6,249 个 needs_owner manifest seed 生成确定性 WS-0/WS-1/WS-2/WS-6 workstream owner 和 review owner;源哈希、唯一覆盖、context 与 STOP_RELEASE 均 verified;assignment 保持 proposed_blocked_review,不修改 manifest/context lock、不升级 accepted,下一步处理 acceptance evidence | coverage/manifest-ownership-remediation.report.json, scripts/generate_manifest_ownership_remediation.py, scripts/test_manifest_ownership_remediation.py, docs/linuxcnc-web-wasm-manifest-ownership-remediation.md |
| K8-REL-09 | acceptance readiness 审计覆盖全部 1,804 affected entry;owner/inputs/outputs/test 字段虽可追踪,但 oracle/context 阻塞导致 eligible=0,manifest accepted=0;6 项检查与 STOP_RELEASE verified,不 promotion 或重分类,下一步处理 official oracle | coverage/release-acceptance-remediation.report.json, scripts/generate_release_acceptance_remediation.py, scripts/test_release_acceptance_remediation.py, docs/linuxcnc-web-wasm-release-acceptance-remediation.md |
| K8-REL-10 | 锁定 source commit 与 context 匹配;linuxcnc/unit_tests/kinematics、recovery roots 缺失,6 个 matrixkins 文件明确非官方,11 个 kinematics samples/recovery scenarios 保持 blocked;未新增官方输入或 golden,STOP_RELEASE verified,下一步处理 configuration resources | coverage/official-oracle-remediation.report.json, scripts/generate_official_oracle_remediation.py, scripts/test_official_oracle_remediation.py, docs/linuxcnc-web-wasm-official-oracle-remediation.md |
| K8-REL-11 | 配置资源 remediation 保留 16,093 rows:997 missing、91 unresolved、59 unindexed、3 unregistered startup;956 basename candidates 仅作只读审查,实际 resolve=0,资源图 orphan=0,STOP_RELEASE verified,下一步处理 browser matrix | coverage/configuration-resource-remediation.report.json, scripts/generate_configuration_resource_remediation.py, scripts/test_configuration_resource_remediation.py, docs/linuxcnc-web-wasm-configuration-resource-remediation.md |
| K8-REL-12 | browser matrix remediation 读取锁定 TBD minimums;Chromium 151/Firefox 154 headless smoke passed,Safari 在 Linux 环境 unavailable,时间戳输出归一化且所有结果显式;STOP_RELEASE verified,不就地修改 context lock,下一步处理 implementation license | coverage/browser-matrix-remediation.report.json, scripts/generate_browser_matrix_remediation.py, scripts/test_browser_matrix_remediation.py, docs/linuxcnc-web-wasm-browser-matrix-remediation.md |
| K8-REL-13 | implementation license remediation 覆盖 57/57 wasm-core/web entries;源哈希与 audit evidence verified,blocked_unassigned=57、approved_spdx=0、未批准声明=0,上游 license 不继承,STOP_RELEASE verified,下一步汇总 remediation evidence | coverage/implementation-license-remediation.report.json, scripts/generate_implementation_license_remediation.py, scripts/test_implementation_license_remediation.py, docs/linuxcnc-web-wasm-implementation-license-remediation.md |
| K8-REL-14 | remediation evidence roundup 汇总 K8-REL-08..13;6 份报告 self-hash/context、六个 blocker identity、无 promotion/fabrication 和 gate/audit/closeout/intake 的 STOP_RELEASE 均 verified;状态为 blocked_pending_owner_actions,下一步 owner review 与新 context/gate refresh | coverage/remediation-evidence-roundup.report.json, scripts/generate_remediation_evidence_roundup.py, scripts/test_remediation_evidence_roundup.py, docs/linuxcnc-web-wasm-remediation-evidence-roundup.md |
| K8-REL-15 | owner-review gate refresh 定位六项 owner decision,但 workspace 没有批准输入或新 context;owner_inputs=0、gate_refresh=blocked,STOP_RELEASE verified,任务保持 blocked,后续仅在 owner 决策后创建新 context 并刷新 gate | coverage/owner-review-gate-refresh.report.json, scripts/generate_owner_review_gate_refresh.py, scripts/test_owner_review_gate_refresh.py, docs/linuxcnc-web-wasm-owner-review-gate-refresh.md |
| K8-REL-16 | 在没有 owner 决定或新锁定输入时重建 closure/audit/remediation/owner-review 证据;六项 blocker identity、context consistency 和 STOP_RELEASE 均 verified,owner_inputs=0、gate_refresh=blocked,context lock 未修改,任务保持 blocked | coverage/owner-review-gate-refresh.report.json, coverage/release-candidate-gate.report.json, coverage/post-release-audit.report.json, scripts/generate_owner_review_gate_refresh.py, scripts/test_owner_review_gate_refresh.py |
| PROJECT-AUDIT-01 | 整体审计确认 K0-K6 运动学实现和 15 项 native CTest 已通过;运动学 partial/blocked 仅因锁定来源缺少官方 oracle;当前开发瓶颈转为配置启动闭包,下一任务为 M3-CFG-01,K8 release 六项 blocker/STOP_RELEASE 独立保留 | docs/linuxcnc-web-wasm-next-work.md, coverage/kinematics-registry.report.json, coverage/kinematics-motion.report.json, coverage/kinematics-feedback.report.json, coverage/kinematics-home-limit.report.json, coverage/configuration-regression.report.json |
| PROJECT-AUDIT-02 | 重新梳理任务图确认 M3/FE/REG 实现证据均已 verified;K8-REL-17 owner_inputs=0、gate_refresh=blocked,发现旧 Next 自引用风险;生成 GOV-01 readiness 后进入不自动重试的 WAIT-OWNER-01,六项 blocker 和 STOP_RELEASE 保持 verified | docs/linuxcnc-web-wasm-task-map.md, coverage/project-task-readiness.report.json, nextTask.md |
| OWNER-INTAKE-01 | 建立六项 owner decision 输入模板、结构/identity/context/evidence hash 验证器和 blocked report;当前输入文件缺失,验证结果为 blocked,gate refresh 永远 blocked,不修改 context lock 或 release gate | coverage/owner-decision-intake.template.json, coverage/owner-decision-intake.report.json, docs/linuxcnc-web-wasm-owner-decision-intake.md, scripts/validate_owner_decision_intake.py, scripts/test_owner_decision_intake.py |
| GOV-INTAKE-01 | 强化 owner decision intake 的持续接续门禁;非 approve、缺少 decision_set_id、仓库外/缺失证据路径、非十六进制或实际 hash 不匹配均 fail-closed;当前 owner 输入仍缺失,release gate 和 context lock 未修改 | scripts/validate_owner_decision_intake.py, scripts/test_owner_decision_intake.py, docs/linuxcnc-web-wasm-continuation-plan.md |
| M3-CFG-01 | 确定性配置 resolver 和 Worker preflight 完成;16,093 条资源全部分类,15,112 resolved、981 blocked;显式 LIB:、参数尾缀、相对路径、仓库外路径和宿主路径均有明确策略;原始索引 hash、context lock、187 个脚本测试、15 个 native CTest 和 Worker/workspace 测试通过 | web/workspace/configuration.mjs, web/worker/sim-session.mjs, coverage/configuration-startup-closure.report.json, scripts/generate_configuration_startup_closure.py, scripts/test_configuration_startup_closure.py, web/workspace/test_configuration.mjs, web/worker/test_configuration_preflight.mjs |
| M3-RT-02 | 生成 145 个 .comp 组件 manifest、1,220 pins、140 params、530 functions 和 193 个 HAL 文件的 4,566 条配置图记录;manifest、容量、资源边和动态加载拒绝检查 verified,29 个 loadusr 与 124 个变量化/未声明 loadrt 保持 blocked;190 个脚本测试、15 个 native CTest 和 Worker/workspace 测试通过 | coverage/hal-component-manifest.report.json, scripts/generate_hal_component_manifest.py, scripts/test_hal_component_manifest.py, web/workspace/hal-configuration.mjs, web/worker/sim-session.mjs, web/worker/test_hal_preflight.mjs |
| M3-RT-03 | 虚拟设备故障矩阵完成;26 个 spindle/tool/probe/limit/estop/非有限/恢复场景进入 EventLog,连续执行与 replay state hash 一致,设备 checkpoint 增量恢复通过;192 个脚本测试、15 个 native CTest 和 Worker/workspace 测试通过 | coverage/virtual-device-fault-matrix.report.json, scripts/generate_virtual_device_fault_matrix.py, scripts/test_virtual_device_fault_matrix.py, web/worker/virtual-devices.mjs, web/worker/test_virtual_devices.mjs, web/worker/test_device_recovery.mjs |
| M3-FS-01 | 配置/HAL/虚拟设备/session 状态统一到 checkpoint;设备事件增量恢复后 session state hash 一致,workspace package v1↔v2 round-trip 通过;194 个脚本测试、15 个 native CTest 和 Worker/workspace 测试通过 | coverage/workspace-session-integration.report.json, scripts/generate_workspace_session_integration.py, scripts/test_workspace_session_integration.py, web/worker/test_workspace_session_integration.mjs, web/worker/sim-session.mjs |
| M3-PY-01 | Worker-only Python bridge 完成;固定 Pyodide manifest/artifact hash、虚拟模块 import、能力拒绝、Python API 调用、异常/资源限制和 Python session checkpoint/replay 均通过;196 个脚本测试、15 个 native CTest 和 Worker/workspace 测试通过 | coverage/python-worker-bridge.report.json, scripts/generate_python_worker_bridge.py, scripts/test_python_worker_bridge.py, web/worker/python-bridge.mjs, web/worker/test_python_bridge.mjs, web/worker/test_python_session.mjs |
| FE-M1 | 建立真实 WorkerClient/AppShell;capabilities、session attach、workspace load、step、snapshot、error 和 operation 去重 smoke 通过;198 个脚本测试、15 个 native CTest 和 Worker/workspace/Python 回归通过 | coverage/frontend-m1.report.json, scripts/generate_frontend_m1.py, scripts/test_frontend_m1.py, web/app/index.html, web/app/app.mjs, web/app/worker-client.mjs, web/app/test_frontend_m1.mjs |
| FE-M2 | 完成核心 operation controls 和权威 state panel;run/pause/resume/abort/home/estop/recover 控制、operation 去重、错误/报警状态和窄屏布局 smoke 通过;200 个脚本测试、15 个 native CTest 和 Worker/workspace/Python 回归通过 | coverage/frontend-m2.report.json, scripts/generate_frontend_m2.py, scripts/test_frontend_m2.py, web/app/controls.mjs, web/app/state-panel.mjs, web/app/test_frontend_m2.mjs |
| FE-M3 | 项目/恢复 workflow 完成;journal 导入导出、checkpoint/package、v1↔v2 migration、offline ready 和 half-commit 状态展示 smoke 通过;202 个脚本测试、15 个 native CTest 和 Worker/workspace/Python 回归通过 | coverage/frontend-m3.report.json, scripts/generate_frontend_m3.py, scripts/test_frontend_m3.py, web/app/project-workflow.mjs, web/app/recovery-panel.mjs, web/app/test_frontend_m3.mjs |
| FE-M4 | 完成 HAL/tool/IO/3D frontend workflows;设备命令、HAL diagnostics、稳定 canvas machine view 和故障状态展示 smoke 通过;204 个脚本测试、15 个 native CTest 和 Worker/workspace/Python 回归通过 | coverage/frontend-m4.report.json, scripts/generate_frontend_m4.py, scripts/test_frontend_m4.py, web/app/device-panel.mjs, web/app/hal-panel.mjs, web/app/machine-view.mjs, web/app/test_frontend_m4.mjs |
| S5-02 | 真实 LinuxCNC runtests 代表性纯仿真基线 12/12 native 通过;abort/G64 超时不伪造为回归通过,明确保留 Worker Task/motion 适配边界 | coverage/linuxcnc-source-test-execution-s5.report.json, scripts/test_linuxcnc_source_test_execution.py |
| S5-03 | unit_tests/interp 与 unit_tests/tp 的 9 个可移植源断言由同一 native/WASM adapter 执行,CTest 通过且 JSON golden 字节一致;上游 Meson oracle 缺失标记 SOURCE_BLOCKED,G64/abort 保持 WORKER_TASK_MOTION_PENDING | coverage/linuxcnc-source-unit-execution-s5.report.json, wasm-core/tests/source_unit_adapter_test.c, scripts/test_linuxcnc_source_unit_s5.py |
| S5-04 | tests/interp、tests/oword 与 tests/remap 的 8 个真实 fixture 由 WASM-backed Worker 执行;6 项 block/error/canonical/callback 适配通过,DO/G64 2 项明确保持 WORKER_TASK_MOTION_PENDING,26 个源/expected/checkresult/config 文件哈希闭合;源 canonical logger 继续 SOURCE_BLOCKED | coverage/linuxcnc-source-interp-s5.report.json, web/worker/test_source_interpreter_s5.mjs, scripts/test_linuxcnc_source_interpreter_s5.py |
| S5-05 | HAL abs/edge 与 starting-high 边界由 Worker 静态运行时执行通过;native/WASM sim_hal_test golden 字节一致;自定义 .comp、相对头文件和 userspace/RTAPI 路径分别保留 SOURCE_BLOCKED/HOST_EXCLUDED,8 个源案例和 23 个 fixture 文件均有哈希 | coverage/linuxcnc-source-hal-s5.report.json, web/worker/test_source_hal_s5.mjs, scripts/test_linuxcnc_source_hal_s5.py |
| S5-06 | IO/limit/tool ack Worker 适配 3 项通过;native/WASM sim_io 与 sim_device_io golden 字节一致;startup tool table 2 项 SOURCE_BLOCKED、ClassicLadder 1 项 HOST_EXCLUDED、motion-logger abort 1 项 WORKER_TASK_MOTION_PENDING,30 个 fixture 文件哈希闭合 | coverage/linuxcnc-source-io-s5.report.json, web/worker/test_source_io_s5.mjs, scripts/test_linuxcnc_source_io_s5.py |
| S5-07 | 批量读取并哈希全部 264 个配置矩阵条目(216 个 configs/sim、48 个 tests 配置);56 READY、208 BLOCKED,逐项保留资源/诊断状态;batch checkpoint/restore、native/WASM/Worker startup probes 通过,静态 preflight 不提升为官方 runtime oracle | coverage/linuxcnc-source-config-s5.report.json, web/worker/test_source_config_s5.mjs, scripts/test_linuxcnc_source_config_s5.py |
| S5-08 | 汇总 S5-01..S5-07 源证据;关键适配器重复运行稳定,native/WASM 静态 golden 全部一致,1x/fast/recovery/trace import 终点一致且 first_divergence=null;SOURCE_BLOCKED/HOST_EXCLUDED/WORKER_TASK_MOTION_PENDING 与官方 oracle 阻塞均保留 | coverage/linuxcnc-source-parity-s5.report.json, web/worker/test_source_parity_s5.mjs, scripts/test_linuxcnc_source_parity_s5.py |
| S6-01 | 对完整仿真计划 P0-P8 的 39 个任务逐项对齐证据;S5 源测试链全部 verified;识别 authoritative sim_task tick integration、官方 native oracle、配置资源、source adapter 和浏览器/OPFS 五类开放 gap;创建下一执行任务 S6-02 | coverage/full-linuxcnc-simulation-gap-audit.report.json, scripts/generate_full_linuxcnc_simulation_gap_audit.py, scripts/test_full_linuxcnc_simulation_gap_audit.py, nextTask1.md |
| S6-02 | 新增 authoritative runtime:程序行在 task phase 执行,XYZ/trivkins planner 在 tp/kinematics phase 更新,motion/HAL/IO 共用固定 tick;state 纳入 snapshot/checkpoint/trace/endpoint,1x/fast、recovery/trace import parity 通过;非 trivkins和完整 canonical oracle 保持后续/blocked | coverage/authoritative-sim-task-s6.report.json, web/worker/authoritative-runtime.mjs, web/worker/test_authoritative_sim_task_s6.mjs, scripts/test_authoritative_sim_task_s6.py |
| S6-03 | authoritative runtime 扩展 CoreXY:XYZ pose [4,2,3] 映射到 joints [6,2,3];native/WASM kinematics 与 kinematics-motion golden、1x/fast/recovery endpoint parity 通过;unsupported puma 稳定拒绝,其他 families 和官方 oracle 保留后续/blocked | coverage/authoritative-kinematics-s6.report.json, web/worker/test_authoritative_kinematics_s6.mjs, scripts/test_authoritative_kinematics_s6.py |
| S6-04 | authoritative runtime 接入一个可验证的并联 Tripod family:真实 tripodkins 配置/几何 [0,0],[10,0],[5,7.071],pose [2,3,4] 逆映射为三支杆 [5.385164807,9.433981132,6.447715952];native/WASM kinematics 与 kinematics-motion golden、1x/fast/recovery endpoint parity 和首差诊断通过;TRT、机器人、Delta/Hexapod/Pentapod、switch/user 与官方 oracle 明确保留 queued/blocked | coverage/authoritative-kinematics-s6-04.report.json, web/worker/test_authoritative_kinematics_s6_04.mjs, scripts/test_authoritative_kinematics_s6_04.py, web/worker/authoritative-runtime.mjs |
| S6-05 | 新增 OPFS Dedicated Worker 探针、逻辑 journal/offline integrity 测试和确定性报告;Playwright headed Chromium 140 两次完成 sync-access-handle 写入/读取/清理并稳定一致,headless timeout 作为边界保留;Safari/Firefox 明确 OUT_OF_SCOPE,物理 crash/restart oracle 和 release/oracle blocker 不被升级为闭合 | coverage/authoritative-browser-s6-05.report.json, web/workspace/opfs-runtime.mjs, scripts/test_browser_opfs_playwright_s6_05.mjs, web/app/test_opfs_runtime_s6_05.mjs, scripts/test_authoritative_browser_s6_05.py |
| S6-06 | 使用同一 headed Chromium 140 persistent profile:第一阶段提交 OPFS record 后关闭 browser context,第二阶段重开 profile 读取相同 content hash 并清理;两次运行稳定,profile restart slice verified;真实进程 crash/power-loss oracle 和 release blocker 保留,Safari/Firefox 明确 OUT_OF_SCOPE | coverage/authoritative-browser-restart-s6-06.report.json, scripts/test_browser_opfs_restart_s6_06.mjs, scripts/test_authoritative_browser_restart_s6_06.py, web/workspace/opfs-runtime.mjs |
| S6-07 | 使用 Playwright BrowserServer kill 真实终止 Chromium 进程,再以同一 profile 重开并读取 committed OPFS record;两次运行 process-kill、hash continuity 和 cleanup 均 verified;power-loss/filesystem-corruption 与 release/oracle blocker 保留,Safari/Firefox 明确 OUT_OF_SCOPE | coverage/authoritative-browser-crash-s6-07.report.json, scripts/test_browser_opfs_crash_s6_07.mjs, scripts/test_authoritative_browser_crash_s6_07.py, web/workspace/opfs-runtime.mjs |
| S7-AUDIT | 重新梳理 LinuxCNC 完整仿真计划、264 配置入口、S5 source parity、S6 authoritative/runtime/browser evidence;确认配置 56 READY/208 BLOCKED、DO/ENDDO 与 G64/G61 pending、剩余 kinematics queued、官方 oracle/release blocked;创建并认领 S7-01 | coverage/simulation-alignment-s7.report.json, scripts/generate_simulation_alignment_audit_s7.py, scripts/test_simulation_alignment_s7.py |
| S7-01 | 接入锁定 linuxcnc/tests/interp/do-while-break/test.ngc 的 DO/ENDDO/BREAK 后测循环 slice;嵌套 BREAK、named parameters、pause/resume、malformed ENDDO、depth budget 和 checkpoint recovery parity 通过;上游 canonical expected 保持 SOURCE_BLOCKED | coverage/source-do-s7-01.report.json, web/worker/test_source_do_s7_01.mjs, scripts/test_source_do_s7_01.py, web/worker/program-runner.mjs, web/worker/sim-session.mjs |
| S7-02 | 接入锁定 linuxcnc/tests/interp/g6164/test.ngc 的 G64 continuous/P/Q、G61 exact-path、G61.1 exact-stop modal state;负 tolerance/unsupported code、pause/recovery parity 通过;S5-04 pending 清零,canonical logger 与 TP numeric parity 仍保持明确边界 | coverage/source-g6164-s7-02.report.json, web/worker/test_source_g6164_s7_02.mjs, scripts/test_source_g6164_s7_02.py, web/worker/program-runner.mjs, web/worker/sim-session.mjs |
| S7-03 | 选择有真实配置/native-WASM 样本且保持 XYZ/3-joint 形状的 lineardeltakins,接入 authoritative fixed tick;pose [0,0,64.636584194] 映射三 carriage joints [300,300,300],1x/fast/recovery parity、无解 fail-closed 和 unsupported TRT boundary 通过 | coverage/authoritative-kinematics-s7-03.report.json, web/worker/test_authoritative_kinematics_s7_03.mjs, scripts/test_authoritative_kinematics_s7_03.py, web/worker/authoritative-runtime.mjs |
| S7-04 | 接入 rotarydeltakins authoritative fixed tick;pose [0,0,-3.793360169] 映射 rotary joints [10,10,10],1x/fast/recovery parity、z=0 singular fail-closed 和 unsupported TRT boundary 通过;缺失 rdelta HAL 与官方 oracle 保持边界 | coverage/authoritative-kinematics-s7-04.report.json, web/worker/test_authoritative_kinematics_s7_04.mjs, scripts/test_authoritative_kinematics_s7_04.py, web/worker/authoritative-runtime.mjs |
| S7-05 | 对齐真实 corexy_by_kins.ini 的 LinuxCNC #INCLUDE、HAL 变量和反斜杠续行;HAL 72 条 preflight records 全部 ready,但 runtime 正确 BLOCKED 在缺失 linuxcnc.var/tool.tbl,未提升 static READY | coverage/configuration-corexy-s7-05.report.json, web/worker/test_configuration_corexy_s7_05.mjs, scripts/test_configuration_corexy_s7_05.py, web/workspace/ini-parser.mjs, web/workspace/hal-configuration.mjs, web/workspace/configuration-startup.mjs |
| S7-06 | verified:依据 stepconf/build_INI.py 的精确 INTRO_GRAPHIC = linuxcnc.gif 约定,将 linuxcnc/linuxcnc.gif 作为 DISPLAY-only shared simulation asset;同 basename 的 tool/parameter/HAL/program 和非 DISPLAY 键保持 blocked;资源图 state hash、source fixture、self-hash 和 native/Worker/App 全量回归通过。S7 后续技术任务未定义,指针保持 next_task: none | coverage/resource-intro-graphic-s7-06.report.json, web/worker/test_resource_intro_graphic_s7_06.mjs, scripts/test_resource_intro_graphic_s7_06.py, web/workspace/resource-resolver.mjs, nextTask1.md |
| S8-01 | verified:从真实 linuxcnc/configs/sim 生成 235 个 INI 案例和 2,080 个精确文件索引;递归 INI/HAL/resource loader 保留缺失诊断并把 static READY 与 runtime READY 分开;AppShell 提供案例筛选、Worker startup、G-code、MDI、Run/Pause/Step、Home/Jog、倍率、主轴/刀具/探针/急停和 machine view。235 个案例中 4 个 loader-ready、其余保留实际资源/HAL blockers | coverage/sim-case-catalog.report.json, scripts/generate_sim_case_catalog.py, scripts/test_sim_case_catalog.py, web/workspace/sim-case-catalog.mjs, web/workspace/sim-case-loader.mjs, web/workspace/test_sim_case_loader.mjs, web/app/app.mjs, web/app/styles.css |
| S8-02 | verified:用户授权从真实 LinuxCNC 仿真执行复制 runtime fixtures;minimal_xyz 的 sim.var/生成 HAL 和 CoreXY 的 linuxcnc.var/tool.tbl 均 exact-path hash-lock;预加载 corexykins/motmod/pid/stepgen 与虚拟 hal_manualtoolchange 适配通过,两个案例 Worker startup 均达到 TASK_READY,未知 loadusr 仍 blocked | coverage/sim-case-startup-s8-02.report.json, web/worker/test_sim_case_startup_s8_02.mjs, scripts/generate_sim_case_startup_s8_02.py, scripts/test_sim_case_startup_s8_02.py, web/workspace/hal-configuration.mjs, web/workspace/sim-case-loader.mjs |
| S8-03 | verified:真实执行 xz.ini、xz_both.ini、xz_both_auto.ini 取得 xz.var 和三份生成 HAL fixture;同案例 xz.tbl 精确复用;三案 Worker startup 均 TASK_READY、HAL blocked_count=0,identity/BOTH/AUTO state hash 分别保留 | coverage/sim-case-batch-s8-03.report.json, web/worker/test_sim_case_batch_s8_03.mjs, scripts/generate_sim_case_batch_s8_03.py, scripts/test_sim_case_batch_s8_03.py |
| S8-04 | verified:minimal_xyz 真实 fixture 达到 TASK_READY;固定 tick 覆盖 Home/Jog/override、G-code Run/Pause/Resume/Abort/Restart、MDI、estop/recover 和 checkpoint recovery endpoint parity;前端 AppShell/state panel/machine view 继续消费 Worker 权威状态 | coverage/minimal-xyz-vertical-s8-04.report.json, web/worker/test_minimal_xyz_vertical_s8_04.mjs, scripts/generate_minimal_xyz_vertical_s8_04.py, scripts/test_minimal_xyz_vertical_s8_04.py |
| S8-05 | verified:corexy_by_kins.ini 与 corexy_by_hal.ini 均使用真实 fixtures 达到 TASK_READY;同一 pose [4,2,3] 映射 joints [6,2,3],HAL records 72/100,1x/fast/recovery parity 均通过;kins path 与 HAL-trivkins transform path 保持明确区分,未知 HAL 命令仍 fail-closed | coverage/corexy-dual-path-s8-05.report.json, web/worker/test_corexy_dual_path_s8_05.mjs, scripts/generate_corexy_dual_path_s8_05.py, scripts/test_corexy_dual_path_s8_05.py, web/workspace/hal-configuration.mjs |
| S8-06 | verified:235 个真实 configs/sim 案例全部执行 exact-path loader/startup 两次;按 LinuxCNC source 语义处理 optional DISPLAY/OPEN_FILE、缺失 HALFILE 分类和真实路径;分类为 TASK_READY=96、BLOCKED_RESOURCE=11、BLOCKED_HAL=106、BLOCKED_INI=19、BLOCKED_STARTUP=3;每案保留 fixture、missing、first diagnostic、resource/HAL counts 和 deterministic state hash | coverage/sim-case-matrix-s8-06.report.json, web/worker/test_sim_case_matrix_s8_06.mjs, scripts/generate_sim_case_matrix_s8_06.py, scripts/test_sim_case_matrix_s8_06.py, web/workspace/sim-case-loader.mjs |
| S8-07 | verified:从真实 INI/include declarations 生成 235-case display family catalog;Axis 85、QtVCP 61、Gscreen 14、VisMach 21、GladeVCP 6、Touchy 6、PyVCP 5、other 37;AppShell 按案例显示 family capabilities/host plugin boundaries,未改变 Worker 权威状态或 blocked 语义 | coverage/sim-display-families-s8-07.report.json, web/app/sim-display-families.mjs, web/app/display-family.mjs, web/app/test_display_family_s8_07.mjs, scripts/generate_sim_display_families_s8_07.py, scripts/test_sim_display_families_s8_07.py |
| S8-08 | verified:ldelta/rdelta 真实案例通过 HALLIB exact resolution、sim.var/sim.tbl fixtures、lineardelta/rotarydelta virtual adapters;nominal joints [300,300,300]/[10,10,10]、1x/fast/recovery parity 和 TASK_READY 通过,official oracle 与其它机床族边界保留 | coverage/machine-families-s8-08.report.json, web/worker/test_machine_families_s8_08.mjs, scripts/generate_machine_families_s8_08.py, scripts/test_machine_families_s8_08.py |
| S8-09 | verified:10 个真实 Worker runtime extension runners 全部通过,覆盖 remap/O-word/filter、Python callbacks、tool/probe/IO ack、virtual devices 和 PLC;固定 tick、能力拒绝和 recovery/ack 边界保留,host Python/dynamic loader 不被误报为浏览器 parity | coverage/runtime-extensions-s8-09.report.json, scripts/generate_runtime_extensions_s8_09.py, scripts/test_runtime_extensions_s8_09.py |
| S8-10 | blocked(正式停止条件):按修复后的 source-backed 235-case matrix 重新聚合;96 个案例 TASK_READY、139 个案例保留 HAL/INI/资源/STARTUP blockers,WASM/native/Worker/App 技术回归通过;official full LinuxCNC oracle 仍 source-gated,Chromium/Firefox/Safari minimums 仍 TBD/Safari unavailable,OPFS recovery 仍 blocked;implementation coverage=verified、acceptance=blocked、STOP_RELEASE,不宣称 LinuxCNC 全功能 release | coverage/full-case-acceptance-s8-10.report.json(b2230390241a9fb8fb723af3847baeec251e8b49526d264c8bd5ccef4e5d3133), scripts/generate_full_case_acceptance_s8_10.py, scripts/test_full_case_acceptance_s8_10.py, nextTask1.md |
| TUTORIAL-00 | verified:固定唯一案例 linuxcnc/configs/sim/axis/vismach/3axis-tutorial;隔离目录先运行官方 update_ini -f,再以真实 DISPLAY 启动 LinuxCNC;AXIS axis/Axis 窗口 1300x1293 可见;Web exact bundle/Worker TASK_READY 和功能操作序列通过,Vismach executable 作为唯一 WEB-EQUIV model adapter 资源加载 | coverage/axis3-tutorial-native-run.report.json, scripts/run_axis3_tutorial_native.py, web/worker/test_axis3_selected_case.mjs, docs/linuxcnc-web-wasm-3axis-tutorial-parity.md |
| TUTORIAL-01 | in_progress:锁定 4 个案例源文件、运行时 .var/.bak/position_mm.txt 生成规则、共享 intro graphic、HAL source lines 和 Vismach Python imports;下一步生成 exact resource/source graph 自哈希报告 | docs/linuxcnc-web-wasm-3axis-tutorial-parity.md, linuxcnc/configs/sim/axis/vismach/3axis-tutorial, linuxcnc/lib/python/vismach.py, linuxcnc/lib/python/hal.py |
| TUTORIAL-01..03 | verified:3axis tutorial exact resource graph、Vismach loadusr ./3axis-tutorial 唯一 WEB-EQUIV HAL adapter、startup phase NEW→TASK_READY 和 deterministic loader/startup hash 通过;运行时 3axis-tutorial_mm.var 在 workspace exact path 生成 | coverage/axis3-tutorial-resource-graph.report.json, web/worker/test_axis3_tutorial_hal_adapter.mjs, web/worker/test_axis3_tutorial_startup.mjs, scripts/test_axis3_tutorial_resource_graph.py, scripts/test_axis3_tutorial_hal_adapter.py, scripts/test_axis3_tutorial_startup.py |
| TUTORIAL-04 | verified:3axis tutorial trivkins X/Y/Z home、独立三轴 jog、limit 注入/清除、following error fault 和固定 tick snapshot 通过;X/Y/Z 位置变化、错误码和 snapshot hash 保留 | web/worker/test_axis3_tutorial_motion.mjs, scripts/test_axis3_tutorial_motion.py |
| TUTORIAL-05 | verified:固定 3axis-tutorial 案例的 RS-274/G-code G21/G90/G91/G0/G1/F/M2、程序 Run/Pause/Resume/Step/Abort/Restart 和 MDI 通过;暂停/运行态 MDI 保留 mdi_while_program_active 拒绝边界,abort/recover 后 MDI 成功;非法 G-code 在执行阶段保留解释器错误和最终 state hash | coverage/axis3-tutorial-program.report.json, web/worker/test_axis3_tutorial_program.mjs, scripts/generate_axis3_tutorial_program_report.py, scripts/test_axis3_tutorial_program.py |
| TUTORIAL-10 | verified(selected-case scope):固定源程序目录执行 linuxcnc <case_dir>/3axis-tutorial.ini 前清理旧 LinuxCNC 服务和 lock;native AXIS 窗口图片、Chromium desktop/mobile 图片、exact Worker startup/HAL/motion/program/tool/IO/checkpoint/recovery 和 self-hash 总报告均已生成;Firefox/Safari、OPFS 物理崩溃和全量 release 保持独立 blocked | coverage/axis3-tutorial-complete.report.json, coverage/axis3-tutorial-native-run.report.json, coverage/axis3-tutorial-visual/, web/worker/test_axis3_selected_case.mjs, scripts/run_axis3_tutorial_native.py |
| TUTORIAL-11 | verified:固定案例 Worker 真实 WASM 通过 T1 prepare/change、主轴 600 RPM/at-speed/stop、mist/flood 冷却与 fault、probe arm/update/trip/disarm、ESTOP/recover;保留 tool state、probe position、错误码和最终 hash | coverage/axis3-tutorial-tool-io.report.json(529b35a6fb84f561772b941a57d8bea3cf355969a622c01287afd5e642e0e246), web/worker/test_axis3_tutorial_tool_io.mjs, scripts/generate_axis3_tutorial_tool_io_report.py, scripts/test_axis3_tutorial_tool_io.py |
| TUTORIAL-12 | verified:参考 AXIS/QtVCP 源码遵循案例未定义 HOME_SEQUENCE 时的 individual home 语义,真实 native 按 Z -> X -> Y home;参考 hal_manualtoolchange.py 的 change_button pin,通过真实 HAL ACK 完成 T1 M6;native/Worker 同序列无首差,保留 source-defined semantics | coverage/axis3-tutorial-sequence.report.json, coverage/axis3-tutorial-native-sequence.report.json, web/worker/test_axis3_tutorial_sequence.mjs, scripts/run_axis3_tutorial_native_sequence.py |
| TUTORIAL-13 | verified:修复 program recovery replay 顺序,selected case checkpoint 后连续/recovered endpoint hash 相等;坏 checkpoint fail-closed,runtime .var/tool.tbl/position policy 和无重复副作用均有证据 | coverage/axis3-tutorial-persistence.report.json(a2d125b06fe81ad8442c3b2b1f766e2a01e8a3160b4738ebc1cba59f565800f2), web/worker/test_axis3_tutorial_persistence.mjs, web/worker/sim-session.mjs |
| TUTORIAL-14 | verified(selected-case closure index):所有 native/Worker/Chromium/tool-IO/persistence/sequence 证据冻结;native individual home 和 change_button tool ACK 已按源程序语义闭合;release action 仍为 STOP_RELEASE,外部浏览器/OPFS/硬件边界独立保留 | coverage/axis3-tutorial-closure-index.report.json, scripts/generate_axis3_tutorial_closure_index.py, scripts/test_axis3_tutorial_closure_index.py |
| T3-COMPLETE-01 | verified(selected-case scope):3axis-tutorial trivkins 运行期间 pose/velocity/queue depth 由 WASM sim_motion_queue 驱动;JS AuthoritativeRuntime authority 调用为 0;pause/resume/PROGRAM_STEP/abort、queue drain completion、checkpoint/trace import/recovery endpoint parity 和 damaged queue fail-closed 通过。非 selected-case compatibility mirror、T4 task/motion/HAL/IO canonical state、全量矩阵和 release blockers 保持 blocked;LinuxCNC source matrix 的旧 fixture drift 已由 loader 源语义修复 | coverage/wasm-motion-authority-t3.report.json(8424f3bae26ff0b16868ddc1dde4f40e14fc64288aea3d9aba983cc46d62c967), web/worker/test_wasm_motion_authority.mjs, web/worker/test_wasm_motion_checkpoint.mjs, scripts/generate_wasm_motion_authority_t3.py, coverage/wasm-only-source-audit.report.json |
| T4-CANONICAL-STATE-01 | verified(selected-case scope):SimTask 通过 sim_task_canonical 成为 Worker task authority;WasmHomeLimit 通过锁定 sim_kinematics_home_limit_* ABI 成为 trivkins home/limit authority;snapshot、HOME/JOG/LIMIT、checkpoint、trace/import/recovery 的 task/motion/home-limit state hash 稳定,JS task tamper 被 WASM canonical 覆盖,损坏 home-limit state fail-closed。HAL/IO/tool/probe、外部设备输入、非 selected-case compatibility 和全量 release 仍 blocked | coverage/wasm-canonical-state-t4.report.json(5f51ea1f766d7e3bf336c3dd11575a97fbdc1f340db58762ba4526c80b0de336), web/worker/wasm-home-limit.mjs, web/worker/test_wasm_canonical_state.mjs, web/worker/test_wasm_canonical_state_checkpoint.mjs, scripts/generate_wasm_canonical_state_t4.py |
| T5-FULL-MATRIX-01 | blocked:生成九领域 native/WASM/Worker 功能矩阵;按 LinuxCNC AXIS 源语义修复空/缺失 OPEN_FILE 处理和 HALFILE 分类,235-case matrix 恢复 verified,分类为 BLOCKED_HAL=106/BLOCKED_RESOURCE=11/TASK_READY=96;T5 28 个矩阵命令全部通过,source semantics contract 已纳入输入闭合,完整 parity 与官方 oracle/配置资源/浏览器/OPFS 边界继续 blocked | coverage/wasm-feature-matrix-t5.report.json(08c1229072214407d0efbcb1f939834b470b160b31bbf7211123dc43306434fa), coverage/linuxcnc-source-semantics-contract.json, web/workspace/linuxcnc-source-semantics.mjs, scripts/generate_wasm_feature_matrix_t5.py |
| T6-FUNCTION-CLOSURE-01 | blocked:对 T5 八个 blocked rows 完成 source-backed closure audit;每行保留 source reference、WASM/Worker capability、已验证 slice、差异、停止原因和下一步。23 个专项命令全部通过,4 个 failure samples 保留 official oracle、资源、宿主能力和浏览器输入缺口;T5 fixture drift 已由源语义修复,不使用 JS fallback 或 selected-case promotion,STOP_RELEASE 保持 | coverage/wasm-function-closure-t6.report.json(46230d88ac0f7687b81c148657dd4af51da2c60a99c3f8e0777e4e8ec57a82d3), scripts/generate_wasm_function_closure_t6.py, scripts/test_wasm_function_closure_t6.py, web/worker/test_wasm_function_closure_t6.mjs, nextTask1.md |
| T7-RELEASE-GATE-01 | blocked:完成 simulation-track 只读 release-gate audit;T6 dependency、context consistency、candidate eligibility、STOP_RELEASE、六项 blocker identity、owner refresh 和 remediation self-hash 全部核对通过;8 个 blocker 与 3 个 failure samples 保留。未刷新 K8 owner gate,未修改 context lock、manifest、许可证或 owner decision | coverage/wasm-simulation-release-gate-t7.report.json(3375aa400ed4b21c5ae020c22f39f5d212db26373aee6c245b7bc87d09312bba), scripts/generate_wasm_simulation_release_gate_t7.py, scripts/test_wasm_simulation_release_gate_t7.py, nextTask1.md |
| SOURCE-SEMANTICS-CONTRACT-01 | verified:将 LinuxCNC AXIS OPEN_FILE optional、INTRO_GRAPHIC optional、HALFILE/resource 缺失分类、exact-path/no-basename-substitution、runtime fixture 和 Web 控制面板 projection-only 规则固化为共享模块与机器契约;源文件哈希、契约 self-hash、loader/matrix regression 通过,不修改 ABI/protocol/schema/context lock | coverage/linuxcnc-source-semantics-contract.json(ff1ce5e1c3251b82e4298a084146e1eb64fb608ef5f7922c69cec10faba77d83), web/workspace/linuxcnc-source-semantics.mjs, web/workspace/test_source_semantics.mjs, scripts/generate_source_semantics_contract.py, scripts/test_source_semantics_contract.py, docs/linuxcnc-web-wasm-source-semantics.md |
| PANEL-PLAN-01 | queued:建立固定 3axis-tutorial Web 控制面板源程序对标实施合同;固化“WASM 是唯一数据来源、状态机严格对标源程序、按钮 gate 完全一致、preview 与 native canonical motion 一致”四项硬约束;登记 12 项功能矩阵(P0: 1-9/12,P1: 10-11)、分层 envelope、状态真值表、preview segment 比较算法、统一报告模板、15 个详细实施任务、依赖、验收和 STOP_RELEASE 边界;不改变 ABI/protocol/schema/context lock | docs/linuxcnc-web-wasm-3axis-tutorial-control-panel-implementation.md, nextTask1.md, coverage/linuxcnc-source-semantics-contract.json |
| AXIS-STATE-CONTRACT | verified:新增 additive axis_state 视图,严格记录 LinuxCNC STATE_*/MODE_*/INTERP_* 数值、ESTOP_RESET/上电/关机/individual HOME/IDLE/RUNNING/PAUSED 迁移和 AXIS button gate;不修改 sim_task.v1 | docs/linuxcnc-web-wasm-3axis-tutorial-state-machine.md, web/worker/axis-state.mjs, web/worker/test_axis_state.mjs, web/react/src/store.ts, web/react/src/App.tsx |
| FE-M1-REACT | verified:按技术路线新增 React 19/TypeScript/Vite/Tailwind/Radix/Three.js 前端入口;Dedicated Worker/WASM bundle、protocol.v1 reducer、exact-path configs/sim loader、LinuxCNC AXIS source icons 和 Three.js r185 三轴 viewer 通过 typecheck/build/preview;OPFS 仍 Worker-owned | coverage/react-frontend-m1.report.json, web/react, scripts/generate_react_frontend_m1.py, scripts/test_react_frontend_m1.py |
| FE-M4-GUI-01 | verified:扫描 LinuxCNC AXIS/Gmoccapy/Touchy/Gscreen/QtVCP/PyVCP/GladeVCP/Vismach/NGCGUI/QtPlasmaC 等 GUI 源码、Python 库、sim descriptors/assets,1837 条文件记录、12 个 family、source hash/path 通过;341 条 manifest 反向归属缺口保留审计,许可证不阻塞技术移植 | coverage/gui-source-inventory-fe-m4.report.json, scripts/generate_gui_source_inventory.py, scripts/test_gui_source_inventory.py, nextTask1.md |
| FE-M4-GUI-02 | verified:集中 React GUI domain model,定义 12 family、23 个 protocol.v1 Worker command、panel/capability/boundary 映射;PY-WASM、SIM-DEVICE、WEB-EQUIV、REAL-EXCLUDED 和 Worker/OPFS ownership 均有 contract evidence | coverage/react-gui-domain-fe-m4.report.json, web/react/src/gui-domain.ts, scripts/generate_react_gui_domain_report.py, scripts/test_react_gui_domain_report.py |
| FE-M4-GUI-03 | verified:对照 LinuxCNC AXIS/Gremlin/glcanon 完成 React AXIS Web-equivalent workflow;program/MDI/run/pause/step/restart/abort/jog/home/override/spindle/tool/probe/coolant/estop/recover/DRO/Three.js 由 Worker 驱动,minimal_xyz Worker regression 和 React build 通过 | coverage/axis-web-workflow-fe-m4.report.json, web/react/src/App.tsx, web/react/src/worker-client.ts, scripts/generate_axis_web_workflow_report.py, scripts/test_axis_web_workflow_report.py |
| FE-M4-GUI-04 | verified:将 Gmoccapy/Touchy/Gscreen/QtVCP/QtDragon/PyVCP/GladeVCP/Vismach/NGCGUI/QtPlasmaC/Plasma 转为 family descriptor;Web Component、Three.js、PY-WASM 和 REAL-EXCLUDED 边界集中定义,12 family contract 通过 | coverage/gui-family-adapter-fe-m4.report.json, web/react/src/gui-family-adapter.ts, scripts/generate_gui_family_adapter_report.py, scripts/test_gui_family_adapter_report.py |
| FE-M4-GUI-05 | verified:建立 vismach/glcanon/NGCGUI/QtPlasmaC 的 Three.js visual workflow mapping;pose/joints/toolpath/stock/material/torch 只读 Worker snapshot,PY-WASM/真实硬件边界保留 | coverage/gui-visual-workflow-fe-m4.report.json, web/react/src/visual-workflow.ts, scripts/generate_gui_visual_workflow_report.py, scripts/test_gui_visual_workflow_report.py |
| FE-M4-GUI-06 | blocked(正式停止条件):现有 Chromium production preview desktop/mobile DOM、截图、Three.js canvas smoke verified;三浏览器 minimum matrix仍 TBD,Safari/Firefox 和 OPFS recovery 保持 blocked/STOP_RELEASE,不把 Chromium smoke 误报为全 GUI release | coverage/gui-browser-visual-fe-m4.report.json, scripts/generate_gui_browser_visual_report.py, scripts/test_gui_browser_visual_report.py, nextTask1.md |
| REAL-CASE-CONDITIONS-01 | 真实 LinuxCNC linuxcnc -r 临时目录执行 verified:minimal_xyz 和 CoreXY 均进入真实 TASK tick;当前环境使用 linuxcnc-uspace 2.10.0~pre1、非 PREEMPT_RT 内核的 POSIX fallback、X11 DISPLAY;CoreXY 缺 tool.tbl 时出现官方 tool-table error,补入临时 linuxcnc.var/tool.tbl 后持续运行;参数文件会在可写目录中生成/更新,临时 fixture 不纳入 source parity | coverage/native-linuxcnc-case-conditions.report.json, scripts/generate_native_linuxcnc_case_conditions.py, scripts/test_native_linuxcnc_case_conditions.py, linuxcnc/docs/src/getting-started/system-requirements.adoc |
| CASE-PARITY-PLAN-01 | 建立以真实 configs/sim 案例为中心的 S8-03..S8-10 执行队列;定义每案例 native/Worker/frontend parity contract、资源生成条件、Axis/QtVCP/Gscreen/Touchy/GladeVCP/PyVCP/VisMach 家族和 235-case full acceptance;S8-02 blocker 未被绕过 | docs/linuxcnc-web-wasm-case-parity-plan.md, nextTask1.md |
追溯规则
- 需要精确命令时读取对应提交或 CI 产物,不把完整 stdout/stderr 粘贴进任务指针。
- 需要验证哈希时读取
context-lock.json和相应coverage/*.report.json;二进制和大型 JSONL 默认不进入模型上下文。 - 新交接只替换当前节点摘要;旧摘要保留在本索引或版本历史中,不能累积到指针文件。