Unblock native XYZAC TP oracle

This commit is contained in:
2026-08-31 20:08:00 +08:00
parent 18436149a2
commit 6015293ee9
17 changed files with 49339 additions and 61 deletions

View File

@@ -2,30 +2,34 @@
"schema": "task-handoff.v1",
"task_id": "TP-PARITY-00",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "blocked",
"status": "verified",
"scope": "xyzac_only",
"result": "run-5axis-rtcp.sh launches native LinuxCNC services and AXIS, but linuxcnc.stat cannot attach to the launcher status buffer on this host; no native per-tick oracle was generated",
"report": {"path": "coverage/xyzac-native-tick-trace.report.json", "status": "blocked", "sha256": "86d13e1a715c20b2a7bfc243301b46780a9f2942bd96d928c5ae24a53dbcca71"},
"result": "run-5axis-rtcp.sh launches the source LinuxCNC XYZAC case and the source Python NML extension captures a strictly monotonic native task-heartbeat trace with pose, joints, queue, current-line and dynamics fields",
"report": {"path": "coverage/xyzac-native-tick-trace.report.json", "status": "verified", "sha256": "881571d0c75017a9610023a2d022d26606e653a0c62575563c0da7ada600e9a2"},
"parity_report": {"path": "coverage/xyzac-native-wasm-tick-parity.report.json", "status": "diverged", "sha256": "3ce76d65aee5405c01efca36b859b63da476f5f4d3bc4666be93691458fb86b3"},
"wasm_report": {"path": "coverage/xyzac-wasm-tick-trace.report.json", "status": "verified", "sha256": "21cbdaa8eaa1eda94ca107095ba7931cb5bd151c80e75c9b7dd9ec6149a71c73"},
"outputs": [
{"path": "scripts/run_xyzac_native_tick_trace.py", "status": "created"},
{"path": "doc-rtcp/xyzac-trt-full-tp-parity-plan.md", "status": "created"},
{"path": "coverage/task-packets/TP-PARITY-00.json", "status": "created"}
{"path": "scripts/run_xyzac_native_tick_trace.py", "status": "verified"},
{"path": "scripts/run_xyzac_wasm_tick_trace.mjs", "status": "verified"},
{"path": "scripts/compare_xyzac_native_wasm_tick_trace.py", "status": "verified"},
{"path": "doc-rtcp/xyzac-trt-full-tp-parity-plan.md", "status": "updated"},
{"path": "coverage/task-packets/TP-PARITY-00.json", "status": "verified"}
],
"checks": {
"launcher": "run-5axis-rtcp.sh started native linuxcncsvr/io/halui/milltask/axis",
"axis_window": "visible during manual probe",
"stat_attach": "blocked: emcStatusBuffer invalid err=3 / taskbeat invalid",
"python_module": "blocked: installed 2.10.0~pre1 extension differs from source 2.10.0~pre0 launcher",
"native_trace": "blocked",
"stat_attach": "verified: source extension attaches after AXIS/NML startup",
"python_module": "verified: source extension matches run-in-place launcher",
"native_trace": "verified: 201 native heartbeat rows",
"wasm_trace": "verified: same XYZAC source/config loaded through linuxcnc-wasm worker",
"native_wasm_compare": "diverged: first difference $.rows[1].exec_state; release remains STOP_RELEASE",
"source_hashes": "recorded by collector",
"full_parity_claim": "forbidden"
},
"failure_samples": [
{"code": "NATIVE_STAT_BUFFER_INVALID", "detail": "linuxcnc.stat().poll() returned emcStatusBuffer invalid err=3 or SystemError without exception while run-5axis-rtcp.sh services were alive"},
{"code": "NATIVE_TASKBEAT_INVALID", "detail": "taskbeat remained 4294967296 and no valid native tick could be selected"},
{"code": "NATIVE_PYTHON_MODULE_MISMATCH", "detail": "collector imported /usr/lib/python3/dist-packages/linuxcnc.cpython-312-x86_64-linux-gnu.so while run-5axis-rtcp.sh uses the source 2.10.0~pre0 launcher"}
{"code": "ACTIVE_SEGMENT_GEOMETRY_UNAVAILABLE", "detail": "public linuxcnc.stat exposes motion_id but not TP segment geometry; collector retains explicit null instead of fabricating geometry"}
],
"next_task": "TP-PARITY-01",
"next_task_status": "blocked_by_TP-PARITY-00",
"next_task_status": "in_progress",
"release_status": "STOP_RELEASE"
}

View File

@@ -1,7 +1,7 @@
{
"schema": "task-packet.v1",
"task_id": "TP-PARITY-00",
"status": "blocked",
"status": "verified",
"title": "Native LinuxCNC XYZAC per-tick oracle",
"milestone": "M7-TP-NUMERICAL-PARITY",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -22,14 +22,21 @@
],
"required_outputs": [
"scripts/run_xyzac_native_tick_trace.py",
"scripts/run_xyzac_wasm_tick_trace.mjs",
"scripts/compare_xyzac_native_wasm_tick_trace.py",
"coverage/xyzac-native-tick-trace.report.json",
"coverage/xyzac-wasm-tick-trace.report.json",
"coverage/xyzac-native-wasm-tick-parity.report.json",
"coverage/task-packets/TP-PARITY-00.handoff.json"
],
"observed": {
"report": "coverage/xyzac-native-tick-trace.report.json",
"report_sha256": "86d13e1a715c20b2a7bfc243301b46780a9f2942bd96d928c5ae24a53dbcca71",
"row_count": 0,
"first_blocker": "NATIVE_STAT_BUFFER_INVALID"
"report_sha256": "881571d0c75017a9610023a2d022d26606e653a0c62575563c0da7ada600e9a2",
"row_count": 201,
"first_blocker": null,
"tick_source": "linuxcnc.stat.task_heartbeat",
"tick_integrity": "strictly_monotonic",
"wasm_comparator": {"status": "diverged", "first_divergent_tick": 1, "difference_path": "$.rows[1].exec_state", "report": "coverage/xyzac-native-wasm-tick-parity.report.json"}
},
"acceptance": [
"run-5axis-rtcp.sh launches native LinuxCNC",
@@ -53,7 +60,8 @@
"known_blockers": [
"native stat API may not expose TP segment geometry; map motion_id and retain explicit unavailable field",
"native GUI process requires DISPLAY and cleanup",
"full LinuxCNC TP source integration may require ABI-compatible C port rather than simplified queue extension"
"full LinuxCNC TP source integration may require ABI-compatible C port rather than simplified queue extension",
"native/WASM comparator currently diverges at current-line scheduling before TP numeric parity can be promoted"
],
"release_status": "STOP_RELEASE"
}