Implement AXIS parity UI and execution baseline

This commit is contained in:
2026-08-23 07:28:37 +08:00
parent 1325504544
commit 06f96f85e5
463 changed files with 84893 additions and 692 deletions

View File

@@ -0,0 +1,142 @@
{
"boundaries": [
"branch",
"singularity",
"nonfinite",
"iteration_limit",
"max_error",
"limit",
"dynamic_path_rejected",
"missing_module",
"switch_abort"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"determinism": {
"fixed_float": true,
"native_wasm_state_hash": true,
"random": false,
"wall_clock": false
},
"families": [
"5axiskins",
"xyzac-trt",
"xyzbc-trt",
"scara",
"puma",
"scorbot",
"genser",
"lineardelta",
"rotarydelta",
"tripod",
"genhex",
"pentapod",
"switchkins",
"userk"
],
"known_boundaries": [
"official kinematics oracle remains release blocker",
"P4 HAL/IO and P8 matrix consume these adapters"
],
"oracle": {
"reason": "linuxcnc/unit_tests/kinematics/** is absent from locked source; no advanced golden is fabricated",
"status": "blocked"
},
"outputs": [
{
"bytes": 76636,
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "316fe74604180b6e9ae7f66369f084278f1b54b7c4545ec9efa870186adc9600"
},
{
"bytes": 8934,
"path": "wasm-core/src/sim_switchkins.c",
"sha256": "b08168265a8e5ca6870a9177165de5d582d12392e42cfdb44347c72c8b3e15e2"
},
{
"bytes": 5195,
"path": "wasm-core/src/sim_userkins.c",
"sha256": "cf3a0f3fea81fb63abf3336b87de1971391d7798b4eed3ec826c07bfd300ed0e"
},
{
"bytes": 43608,
"path": "wasm-core/tests/sim_kinematics_test.c",
"sha256": "715882c28ec242be652357d330a4b56d60f8e93f2e821193133911576e400aac"
},
{
"bytes": 4939,
"path": "wasm-core/tests/sim_switchkins_test.c",
"sha256": "3fa33181b114af828d8b3f4248f30a16ba3cfd58e82d962970a5116675123889"
},
{
"bytes": 7100,
"path": "wasm-core/tests/sim_userkins_test.c",
"sha256": "13ecf5d2405a0e4c706cde25d93424655108779188c310f75ed36683abed624e"
}
],
"report_sha256": "d745b423b5f3607048cfc0a34536f11276e5024453442e57670d148380f3842b",
"schema": "advanced-kinematics-report.v1",
"status": "verified",
"task_id": "P3-07",
"tests": [
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.068s\n\nOK\n",
"test": "test_fiveaxis_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.064s\n\nOK\n",
"test": "test_trt_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.061s\n\nOK\n",
"test": "test_robot_kinematics_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.059s\n\nOK\n",
"test": "test_genser_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.065s\n\nOK\n",
"test": "test_delta_kinematics_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.063s\n\nOK\n",
"test": "test_tripod_kinematics_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.060s\n\nOK\n",
"test": "test_genhex_kinematics_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.065s\n\nOK\n",
"test": "test_pentapod_kinematics_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.052s\n\nOK\n",
"test": "test_switchkins_report.py"
},
{
"returncode": 0,
"status": "verified",
"stderr": "..\n----------------------------------------------------------------------\nRan 2 tests in 0.057s\n\nOK\n",
"test": "test_userkins_report.py"
}
]
}

View File

@@ -0,0 +1,137 @@
{
"boundaries": [
"verified result covers Chromium process kill followed by profile reopen; power-loss and filesystem-corruption injection remain open",
"Safari and Firefox are explicitly OUT_OF_SCOPE for this migration",
"release/oracle blockers remain STOP_RELEASE"
],
"checks": {
"cleanup": {
"status": "verified"
},
"hash_continuity": {
"status": "verified"
},
"power_loss_boundary": {
"reason": "SIGKILL is controlled process termination, not power-loss or filesystem corruption injection",
"status": "blocked"
},
"process_kill_probe": {
"runs": [
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_crash_s6_07.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "process_kill_profile_reopen",
"process_killed": true,
"schema": "browser-opfs-s6-07-crash-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "9059565a4c0c6ea31e899c22328b3902d8100166f3566adc171710ed55b52d9e"
},
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_crash_s6_07.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "process_kill_profile_reopen",
"process_killed": true,
"schema": "browser-opfs-s6-07-crash-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "9059565a4c0c6ea31e899c22328b3902d8100166f3566adc171710ed55b52d9e"
}
],
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "process_kill_profile_reopen",
"process_killed": true,
"schema": "browser-opfs-s6-07-crash-sample.v1",
"status": "verified"
},
"stable": true,
"status": "verified"
},
"process_killed": {
"status": "verified"
},
"release_stop": {
"action": "STOP_RELEASE",
"candidate_eligible": false,
"status": "verified"
},
"safari_firefox_boundary": {
"reason": "Safari and Firefox are outside this project's migration scope",
"status": "out_of_scope"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "verified",
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
{
"bytes": 4313,
"path": "coverage/authoritative-browser-restart-s6-06.report.json",
"sha256": "fb0528362b2827f6f797e3a09f9c5ec5a742fca63420e7e7b3cc96fdb4eda224"
},
{
"bytes": 4950,
"path": "web/workspace/opfs-runtime.mjs",
"sha256": "13082bc76920742bf0879c6e5101b1947bad290febacdf313884c858795a7418"
},
{
"bytes": 993,
"path": "web/app/browser-opfs-probe.html",
"sha256": "d46a571aefa769c1dc75399727945ee7c7e87cf85f42fabb1ec1a1672c46884a"
},
{
"bytes": 509,
"path": "web/app/browser-opfs-worker.mjs",
"sha256": "43813b5a9ac970d188e22e57f774cd4a0b64b25d9bbd610446f5da391456171c"
},
{
"bytes": 3854,
"path": "scripts/test_browser_opfs_crash_s6_07.mjs",
"sha256": "89fc951765603115a00ae6344816b9fe7a436358acd28bf5148cb0d0c88f7f6e"
}
],
"report_sha256": "44edbf5db172b0ec7e84cde4a30c504217b9c200fdba5f8ffa1eb1c06d16b33a",
"schema": "authoritative-browser-crash-s6-07.v1",
"scope": {
"browser": "chromium",
"mode": "process_kill_profile_reopen",
"record": "committed OPFS sync-access-handle record"
},
"status": "verified",
"task_id": "S6-07"
}

View File

@@ -0,0 +1,131 @@
{
"boundaries": [
"verified result covers a controlled Chromium profile close/reopen, not a process crash or power-loss oracle",
"Safari and Firefox are explicitly OUT_OF_SCOPE for this migration",
"release/oracle blockers remain STOP_RELEASE"
],
"checks": {
"cleanup": {
"status": "verified"
},
"hash_continuity": {
"status": "verified"
},
"process_crash_boundary": {
"reason": "profile close/reopen is not process crash injection",
"status": "blocked"
},
"release_stop": {
"action": "STOP_RELEASE",
"candidate_eligible": false,
"status": "verified"
},
"restart_probe": {
"runs": [
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_restart_s6_06.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "persistent_profile_close_reopen",
"schema": "browser-opfs-s6-06-restart-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "6a6af6c9c0efff1f982da77b48d9911b0a6fcfe20480f1faaa17c9bbcf93e65a"
},
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_restart_s6_06.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "persistent_profile_close_reopen",
"schema": "browser-opfs-s6-06-restart-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "6a6af6c9c0efff1f982da77b48d9911b0a6fcfe20480f1faaa17c9bbcf93e65a"
}
],
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "persistent_profile_close_reopen",
"schema": "browser-opfs-s6-06-restart-sample.v1",
"status": "verified"
},
"stable": true,
"status": "verified"
},
"safari_firefox_boundary": {
"reason": "Safari and Firefox are outside this project's migration scope",
"status": "out_of_scope"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "verified",
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
{
"bytes": 9821,
"path": "coverage/authoritative-browser-s6-05.report.json",
"sha256": "30e238042255fd1bf20ec0b9f0c6933a9e067c51bdcfc7c66fed3013d50c481f"
},
{
"bytes": 4950,
"path": "web/workspace/opfs-runtime.mjs",
"sha256": "13082bc76920742bf0879c6e5101b1947bad290febacdf313884c858795a7418"
},
{
"bytes": 993,
"path": "web/app/browser-opfs-probe.html",
"sha256": "d46a571aefa769c1dc75399727945ee7c7e87cf85f42fabb1ec1a1672c46884a"
},
{
"bytes": 509,
"path": "web/app/browser-opfs-worker.mjs",
"sha256": "43813b5a9ac970d188e22e57f774cd4a0b64b25d9bbd610446f5da391456171c"
},
{
"bytes": 3366,
"path": "scripts/test_browser_opfs_restart_s6_06.mjs",
"sha256": "8c9cbdcffeb14e765db2f436664e765c109e7d1bb00fe9dbd89a94a7579fe445"
}
],
"report_sha256": "93e1569ecf846b9a58b8c4c13c93abbb028371a306705fa9a6ab0b9429e3dfc3",
"schema": "authoritative-browser-restart-s6-06.v1",
"scope": {
"browser": "chromium",
"mode": "persistent_profile_close_reopen",
"record": "committed OPFS sync-access-handle record"
},
"status": "verified",
"task_id": "S6-06"
}

View File

@@ -0,0 +1,277 @@
{
"boundaries": [
"Headless Chromium exposed the OPFS path but navigator.storage.getDirectory did not complete (observed root/worker timeout); headed Playwright Chromium completed the sync-handle round-trip",
"Safari and Firefox are OUT_OF_SCOPE; physical browser crash/restart remains a separate boundary",
"logical journal/offline integrity is verified separately and is not an OPFS browser oracle",
"official release/oracle blockers remain STOP_RELEASE"
],
"checks": {
"chromium_probe": {
"blocked_sample": {
"browser": "chromium",
"code": "opfs_worker_timeout",
"schema": "browser-opfs-s6-05-sample.v1",
"stage": null,
"status": "blocked"
},
"runs": [
{
"command": [
"node",
"web/app/test_browser_opfs_s6_05.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"code": "opfs_worker_timeout",
"schema": "browser-opfs-s6-05-sample.v1",
"stage": null,
"status": "blocked"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "4c0dcd5a29881756b8a617037fed4ca50ee17ae2ededfd038be7db815aa03f51"
},
{
"command": [
"node",
"web/app/test_browser_opfs_s6_05.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"code": "opfs_worker_timeout",
"schema": "browser-opfs-s6-05-sample.v1",
"stage": null,
"status": "blocked"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "4c0dcd5a29881756b8a617037fed4ca50ee17ae2ededfd038be7db815aa03f51"
}
],
"stable": true,
"status": "blocked"
},
"headed_playwright_probe": {
"runs": [
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_playwright_s6_05.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"bytes": 162,
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "dedicated_worker_sync_access_handle",
"project_id": "s6-05-opfs",
"schema": "browser-opfs-s6-05-playwright-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "bfd8afae227bb5e24cbb3910f7ca6b61d3ce18c37154274a4f4497aa7ec1a3e3"
},
{
"command": [
"xvfb-run",
"-a",
"node",
"scripts/test_browser_opfs_playwright_s6_05.mjs"
],
"returncode": 0,
"sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"bytes": 162,
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "dedicated_worker_sync_access_handle",
"project_id": "s6-05-opfs",
"schema": "browser-opfs-s6-05-playwright-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "bfd8afae227bb5e24cbb3910f7ca6b61d3ce18c37154274a4f4497aa7ec1a3e3"
}
],
"stable": true,
"status": "verified",
"verified_sample": {
"browser": "chromium",
"browser_version": "140.0.7339.16",
"bytes": 162,
"cleanup": true,
"commit_seq": 1,
"content_hash": "fnv1a64:ce6a222e5fe010b4",
"mode": "dedicated_worker_sync_access_handle",
"project_id": "s6-05-opfs",
"schema": "browser-opfs-s6-05-playwright-sample.v1",
"status": "verified"
}
},
"logical_contract": {
"runs": [
{
"command": [
"node",
"web/app/test_opfs_runtime_s6_05.mjs"
],
"returncode": 0,
"sample": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"deterministic_hash": "fnv1a64:eddf76e50b1b8c8a",
"journal_state_hash": "fnv1a64:12a3a46c111bc992",
"journal_status": "recovered",
"offline_bundle_hash": "fnv1a64:de91ee963d6ed43e",
"offline_status": "ready",
"opfs_boundary": {
"code": "opfs_unavailable",
"reason": "storage_get_directory_missing",
"status": "blocked"
},
"schema": "opfs-runtime-s6-05-logical-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "dd4edba1aa1fa256539ee2e6476960baee47f0c76d8473456e7e4793b5871afe"
},
{
"command": [
"node",
"web/app/test_opfs_runtime_s6_05.mjs"
],
"returncode": 0,
"sample": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"deterministic_hash": "fnv1a64:eddf76e50b1b8c8a",
"journal_state_hash": "fnv1a64:12a3a46c111bc992",
"journal_status": "recovered",
"offline_bundle_hash": "fnv1a64:de91ee963d6ed43e",
"offline_status": "ready",
"opfs_boundary": {
"code": "opfs_unavailable",
"reason": "storage_get_directory_missing",
"status": "blocked"
},
"schema": "opfs-runtime-s6-05-logical-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "dd4edba1aa1fa256539ee2e6476960baee47f0c76d8473456e7e4793b5871afe"
}
],
"status": "verified"
},
"physical_crash_boundary": {
"reason": "No browser crash/restart oracle is available; successful OPFS round-trip does not prove crash recovery",
"status": "blocked"
},
"release_stop": {
"action": "STOP_RELEASE",
"candidate_eligible": false,
"status": "verified"
},
"repeat_determinism": {
"status": "verified"
},
"safari_firefox_boundary": {
"reason": "Safari and Firefox are outside this project's migration scope",
"status": "out_of_scope"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "verified",
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
{
"bytes": 9042,
"path": "coverage/authoritative-kinematics-s6-04.report.json",
"sha256": "ac36221671873a15df9b16466e08d4e068308fc4228078b6198bdbfbdd07cc3f"
},
{
"bytes": 5815,
"path": "coverage/browser-matrix-closure.report.json",
"sha256": "f191a6e5bc2ec2887cf8bbc29806bda16b16449a7524a08ff6fcd38ab2a20b99"
},
{
"bytes": 6340,
"path": "coverage/browser-matrix-remediation.report.json",
"sha256": "1ba374b8ebfcdabe5363c519011ae73a6535a5e5643149810ac0279a955896a5"
},
{
"bytes": 3170,
"path": "coverage/recovery-offline-fault-matrix.report.json",
"sha256": "f8fa6f8f487b2c29c6581aa89e373d71c93af5a8b317055d7eb340f402974412"
},
{
"bytes": 7473,
"path": "web/workspace/journal.mjs",
"sha256": "2c09054bac8b7b68aa774d6ce086ce32f642ab302e9f7d6fa5decb3ef2a8b7fb"
},
{
"bytes": 14160,
"path": "web/workspace/migration.mjs",
"sha256": "58430bc2982615eca93fe85c1e81abe529ea0970d2298ea56bf3bdad6a63f2e8"
},
{
"bytes": 8767,
"path": "web/workspace/recovery.mjs",
"sha256": "d4bae4220a3348d7bb66991472d1331045ab60bbe70c93f3b589bf0e8d05d14d"
},
{
"bytes": 4950,
"path": "web/workspace/opfs-runtime.mjs",
"sha256": "13082bc76920742bf0879c6e5101b1947bad290febacdf313884c858795a7418"
},
{
"bytes": 509,
"path": "web/app/browser-opfs-worker.mjs",
"sha256": "43813b5a9ac970d188e22e57f774cd4a0b64b25d9bbd610446f5da391456171c"
},
{
"bytes": 993,
"path": "web/app/browser-opfs-probe.html",
"sha256": "d46a571aefa769c1dc75399727945ee7c7e87cf85f42fabb1ec1a1672c46884a"
},
{
"bytes": 3312,
"path": "web/app/test_browser_opfs_s6_05.mjs",
"sha256": "e8334b0198be90355f57d000465ff77ef7b806e8c8b423e28d8d3bc7d4ad5dfc"
},
{
"bytes": 2524,
"path": "scripts/test_browser_opfs_playwright_s6_05.mjs",
"sha256": "4e088678f1981539b121372bfeab14bc9bb43c326c2eb36914cf1e84b5121129"
},
{
"bytes": 2323,
"path": "web/app/test_opfs_runtime_s6_05.mjs",
"sha256": "c5a58bac89869fc11b656cf161afdd1717d1c3daf835c0ca6059da1c4bdeb059"
}
],
"report_sha256": "a7c9ef3cc09e274a410e6b7f0aa34a8dc7035ce37d8d7f4dc68c1bc71fb5fe86",
"schema": "authoritative-browser-s6-05.v1",
"scope": {
"logical_contract": "journal/offline package integrity and unavailable-OPFS gate",
"physical_browser": "Chromium Dedicated Worker OPFS probe",
"required_physical_result": "verified"
},
"status": "verified",
"task_id": "S6-05"
}

View File

@@ -0,0 +1,294 @@
{
"boundaries": [
"TRT, serial robot, Delta, Hexapod, Pentapod and switch/user families remain queued for later slices",
"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED",
"tripod native/WASM golden is implementation evidence, not official oracle evidence"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_kinematics_test|sim_kinematics_motion_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "5a5efab0fbb7555fbdd1329334ffef8dd33b494116885333c9af8ef41f8839b8"
},
"inputs": [
{
"bytes": 5590,
"path": "coverage/authoritative-kinematics-s6.report.json",
"sha256": "f7d25a2bd84d53b33ba6c14ea4e9760a408fb0d1963e792a7bd2c95828b80c6d"
},
{
"bytes": 12269,
"path": "coverage/kinematics-registry.report.json",
"sha256": "36d46128038bf0dbd73e1b57194c388d8d433e088e1ed67922033f6d9c0cf900"
},
{
"bytes": 4553,
"path": "coverage/tripod-kinematics.report.json",
"sha256": "a17e63e50e255ab5ea5bcee6d78796e279f7b0e1c7f753a7963b2ce2b3a787ed"
},
{
"bytes": 5098,
"path": "coverage/kinematics-motion.report.json",
"sha256": "e4c3213936d025847740dc45078bdcd51d9a1ede8250ef70b6466003fa7bbcaa"
},
{
"bytes": 12375,
"path": "wasm-core/include/sim_kinematics.h",
"sha256": "34b08db612056432e08705951032418bf6f6cd2c285bde5743515588fbe484ec"
},
{
"bytes": 76636,
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "316fe74604180b6e9ae7f66369f084278f1b54b7c4545ec9efa870186adc9600"
},
{
"bytes": 2332,
"path": "wasm-core/include/sim_kinematics_motion.h",
"sha256": "86b0f6b889875b03bc3fea8787443cb72e77561e85c7114b8dd43eeba8c69350"
},
{
"bytes": 8574,
"path": "wasm-core/src/sim_kinematics_motion.c",
"sha256": "1e9bd5404acfe7ab20eca5b3bb76111bf43c442feee0dc2d4c3f9249ba916a88"
},
{
"bytes": 6328,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "16c3210083dc63b7058703707f4eb0a8671f15a5d4cd696449321207c5499835"
},
{
"bytes": 56240,
"path": "web/worker/sim-session.mjs",
"sha256": "81a03675d381441902a68bb8617cbeab2cdb8e0da491747f85a9822724f72785"
},
{
"bytes": 9211,
"path": "linuxcnc/src/emc/kinematics/tripodkins.c",
"sha256": "0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f"
},
{
"bytes": 1904,
"path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini",
"sha256": "8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01"
},
{
"bytes": 1859,
"path": "linuxcnc/lib/hallib/tripodsim.hal",
"sha256": "e8b341253823f5e2764b2e7c4cc630b557b89dad5e1f7698bbddc1d0b9679747"
},
{
"bytes": 43608,
"path": "wasm-core/tests/sim_kinematics_test.c",
"sha256": "715882c28ec242be652357d330a4b56d60f8e93f2e821193133911576e400aac"
},
{
"bytes": 4574,
"path": "web/worker/test_authoritative_kinematics_s6_04.mjs",
"sha256": "d07c82daa82cb2955bed3a2dde4e435cbc8ea47ad78f3bfed06d4d51768fbdf6"
}
],
"native_wasm": {
"kinematics": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638",
"status": "PASSED",
"wasm_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"native": {
"command": [
"build-native/sim_kinematics_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
}
},
"kinematics_motion": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6",
"status": "PASSED",
"wasm_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"native": {
"command": [
"build-native/sim_kinematics_motion_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_motion_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
}
},
"report_sha256": "d052fd0d42b4270a0fe196c3fd833c0884ad3dc0c71254603ef58903a6d1655d",
"schema": "authoritative-kinematics-s6-04.v1",
"scope": {
"geometry": {
"base": [
[
0,
0
],
[
10,
0
],
[
5,
7.071
]
],
"units": "mm"
},
"joint_count": 3,
"joints": [
"AD",
"BD",
"CD"
],
"kinematics": "tripod",
"pose": [
2,
3,
4
],
"selected_family": "parallel_tripod",
"source_module": "tripodkins",
"unsupported_error": "authoritative_kinematics_unsupported"
},
"selection": {
"basis": [
"S6-03 authoritative CoreXY report is verified and supplies the fixed-tick planner/recovery contract",
"tripod-kinematics report has verified implementation and passed native/WASM samples with a real tripod.ini/tripodsim.hal candidate",
"Tripod uses the existing XYZ plus three-joint authoritative shape, so no frozen ABI/protocol/schema expansion is required"
],
"family": "parallel_tripod",
"not_promoted": [
"TRT",
"serial_robot",
"Delta",
"Hexapod",
"Pentapod",
"switch",
"user",
"official_oracle"
]
},
"status": "verified",
"task_id": "S6-04",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_authoritative_kinematics_s6_04.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "afd9468e3e72543c569651e5387ec2c6a4cce887b570ddc25cc6dd34b98ed86d"
},
"sample": {
"boundaries": [
"TRT, serial robot, Delta, Hexapod, Pentapod and switch/user families remain queued for later slices",
"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED",
"tripod native/WASM golden is implementation evidence, not official oracle evidence"
],
"checkpoint_hash": "fnv1a64:3c7ce8edd7cdd925",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"parity": {
"mode": {
"actual_hash": "fnv1a64:44fbc2aefa75acd4",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:44fbc2aefa75acd4"
},
"recovery": {
"actual_hash": "fnv1a64:d5c56e04cba64203",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:d5c56e04cba64203"
}
},
"schema": "authoritative-kinematics-s6-04-sample.v1",
"status": "verified",
"supported": {
"endpoint_hash": "fnv1a64:44fbc2aefa75acd4",
"geometry": {
"base": [
[
0,
0
],
[
10,
0
],
[
5,
7.071
]
],
"joint_semantics": [
"AD",
"BD",
"CD"
]
},
"joints": [
5.385164807134504,
9.433981132056603,
6.447715952180276
],
"pose": [
2,
3,
4
],
"source_family": "tripodkins",
"type": "tripod"
},
"unsupported": [
{
"code": "authoritative_kinematics_unsupported",
"type": "xyzac-trt"
},
{
"code": "authoritative_kinematics_unsupported",
"type": "puma"
}
]
}
}
}

View File

@@ -0,0 +1,177 @@
{
"boundaries": [
"other non-trivkins families remain queued for later slices",
"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED",
"full LinuxCNC canonical/native source parity remains open"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_kinematics_test|sim_kinematics_motion_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "5a5efab0fbb7555fbdd1329334ffef8dd33b494116885333c9af8ef41f8839b8"
},
"inputs": [
{
"bytes": 7649,
"path": "coverage/authoritative-sim-task-s6.report.json",
"sha256": "57a5dfcad6d192e2b028756c7b44fed70e185f1153ee78521a6239fd1e3ca196"
},
{
"bytes": 5098,
"path": "coverage/kinematics-motion.report.json",
"sha256": "e4c3213936d025847740dc45078bdcd51d9a1ede8250ef70b6466003fa7bbcaa"
},
{
"bytes": 2332,
"path": "wasm-core/include/sim_kinematics_motion.h",
"sha256": "86b0f6b889875b03bc3fea8787443cb72e77561e85c7114b8dd43eeba8c69350"
},
{
"bytes": 8574,
"path": "wasm-core/src/sim_kinematics_motion.c",
"sha256": "1e9bd5404acfe7ab20eca5b3bb76111bf43c442feee0dc2d4c3f9249ba916a88"
},
{
"bytes": 6328,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "16c3210083dc63b7058703707f4eb0a8671f15a5d4cd696449321207c5499835"
}
],
"native_wasm": {
"kinematics": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638",
"status": "PASSED",
"wasm_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"native": {
"command": [
"build-native/sim_kinematics_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
}
},
"kinematics_motion": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6",
"status": "PASSED",
"wasm_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"native": {
"command": [
"build-native/sim_kinematics_motion_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_motion_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
}
},
"report_sha256": "e0e5446b951a9d12acadcd15aba7adfe1fabceed70f5cd9fc4d20eff2fed4d1a",
"schema": "authoritative-kinematics-s6.v1",
"scope": {
"joints": [
6,
2,
3
],
"kinematics": "corexy",
"pose": [
4,
2,
3
],
"unsupported_error": "authoritative_kinematics_unsupported"
},
"status": "verified",
"task_id": "S6-03",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_authoritative_kinematics_s6.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "37084629666c08b8b27814437b938b745f132b7c2bfaf91efe19effb8f3a766f"
},
"sample": {
"boundaries": [
"other non-trivkins families remain queued for later slices",
"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED"
],
"checkpoint_hash": "fnv1a64:41725beff046a85e",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"parity": {
"mode": {
"actual_hash": "fnv1a64:775904e8c68dd9a0",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:775904e8c68dd9a0"
},
"recovery": {
"actual_hash": "fnv1a64:2aa1ccdba37b5cbf",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:2aa1ccdba37b5cbf"
}
},
"schema": "authoritative-kinematics-s6-sample.v1",
"status": "verified",
"supported": {
"endpoint_hash": "fnv1a64:775904e8c68dd9a0",
"joints": [
6,
2,
3
],
"pose": [
4,
2,
3
],
"type": "corexy"
},
"unsupported": {
"code": "authoritative_kinematics_unsupported",
"type": "puma"
}
}
}
}

View File

@@ -0,0 +1,235 @@
{
"boundaries": [
"official kinematics oracle remains SOURCE_BLOCKED",
"no-solution mapping fails closed as authoritative_kinematics_range",
"missing ldelta HAL resources remain configuration gaps",
"TRT/robot/Hexapod/Pentapod/switch/user remain queued"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_kinematics_test|sim_kinematics_motion_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "5a5efab0fbb7555fbdd1329334ffef8dd33b494116885333c9af8ef41f8839b8"
},
"inputs": [
{
"bytes": 7819,
"path": "coverage/simulation-alignment-s7.report.json",
"sha256": "69d7a8d628172ec38c8d57b838fafaa4a75b299cb038a941b9868caecf94b66b"
},
{
"bytes": 9944,
"path": "coverage/delta-kinematics.report.json",
"sha256": "c0402979c5783292c9eed353e94c6b308b861457e8fb73a6e6e06882b81939a2"
},
{
"bytes": 12269,
"path": "coverage/kinematics-registry.report.json",
"sha256": "36d46128038bf0dbd73e1b57194c388d8d433e088e1ed67922033f6d9c0cf900"
},
{
"bytes": 4332,
"path": "coverage/source-g6164-s7-02.report.json",
"sha256": "4e2f49a34f294772def85ea585e995f16b76c071de5b0a5bcefdf2b6805e6fcd"
},
{
"bytes": 2140,
"path": "linuxcnc/configs/sim/axis/ldelta.ini",
"sha256": "1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c"
},
{
"bytes": 2489,
"path": "linuxcnc/src/emc/kinematics/lineardeltakins.c",
"sha256": "792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748"
},
{
"bytes": 76636,
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "316fe74604180b6e9ae7f66369f084278f1b54b7c4545ec9efa870186adc9600"
},
{
"bytes": 7455,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "24afc4cc7902b704f9990ca47f5310d0decc2ad5f473a45c0191ea44bd744e71"
},
{
"bytes": 57887,
"path": "web/worker/sim-session.mjs",
"sha256": "ffd32157d5e2e24190877404492019556ad0b861c972243dc573fae644c10b2e"
},
{
"bytes": 5148,
"path": "web/worker/test_authoritative_kinematics_s7_03.mjs",
"sha256": "d013d5fdc3525cf709de47d534b64dc2ada30caf1b05d9ec9b53dc565b30418d"
}
],
"native_wasm": {
"kinematics": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638",
"status": "PASSED",
"wasm_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"native": {
"command": [
"build-native/sim_kinematics_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
}
},
"kinematics_motion": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6",
"status": "PASSED",
"wasm_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"native": {
"command": [
"build-native/sim_kinematics_motion_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_motion_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
}
},
"report_sha256": "7dec2b1e7aa15628e10c184d3be81cc6703bdde1ebe9bb133a9aa475515676de",
"schema": "authoritative-kinematics-s7-03.v1",
"scope": {
"geometry": {
"radius": 130.25,
"rod_length": 269,
"tower_layout": "120-degree equilateral"
},
"joint_count": 3,
"kinematics": "lineardelta",
"pose": [
0,
0,
64.636584194
],
"range_error": "authoritative_kinematics_range",
"selected_family": "parallel_linear_delta",
"source_module": "lineardeltakins",
"unsupported_error": "authoritative_kinematics_unsupported"
},
"selection": {
"basis": [
"delta-kinematics report has real lineardelta configuration candidates and passed native/WASM samples",
"lineardelta preserves the existing authoritative XYZ plus three-joint shape",
"no ABI/protocol/schema expansion is required"
],
"not_promoted": [
"TRT",
"serial_robot",
"rotary_delta",
"Hexapod",
"Pentapod",
"switch",
"user",
"official_oracle"
]
},
"status": "verified",
"task_id": "S7-03",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_authoritative_kinematics_s7_03.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "bcef11935442caf7e90a1477a50fc64ee4aa7041b851127a14a3dd0b6034c824"
},
"sample": {
"boundaries": [
"official kinematics oracle remains SOURCE_BLOCKED",
"TRT/robot/Hexapod/Pentapod/switch/user remain queued",
"missing ldelta HAL resources are retained as configuration gaps"
],
"checkpoint_hash": "fnv1a64:5208e65fe3683b3b",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"geometry": {
"radius": 130.25,
"rod_length": 269,
"tower_layout": "120-degree equilateral"
},
"parity": {
"mode": {
"actual_hash": "fnv1a64:b1d05dd7ff31f2d5",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:b1d05dd7ff31f2d5"
},
"recovery": {
"actual_hash": "fnv1a64:ea88896c61d2b41a",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:ea88896c61d2b41a"
}
},
"range": {
"code": "scheduler",
"message_key": "authoritative_kinematics_range"
},
"schema": "authoritative-kinematics-s7-03-sample.v1",
"status": "verified",
"supported": {
"endpoint_hash": "fnv1a64:b1d05dd7ff31f2d5",
"joints": [
300.0000000002803,
300.0000000002803,
300.0000000002803
],
"pose": [
0,
0,
64.636584194
],
"source_family": "lineardeltakins",
"type": "lineardelta"
},
"unsupported": {
"code": "authoritative_kinematics_unsupported",
"type": "xyzac-trt"
}
}
}
}

View File

@@ -0,0 +1,246 @@
{
"boundaries": [
"official kinematics oracle remains SOURCE_BLOCKED",
"z=0 rotary singularity fails closed as authoritative_kinematics_singular",
"missing rdelta HAL resources remain configuration gaps",
"TRT/robot/Hexapod/Pentapod/switch/user remain queued"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_kinematics_test|sim_kinematics_motion_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "5a5efab0fbb7555fbdd1329334ffef8dd33b494116885333c9af8ef41f8839b8"
},
"inputs": [
{
"bytes": 7819,
"path": "coverage/simulation-alignment-s7.report.json",
"sha256": "69d7a8d628172ec38c8d57b838fafaa4a75b299cb038a941b9868caecf94b66b"
},
{
"bytes": 9944,
"path": "coverage/delta-kinematics.report.json",
"sha256": "c0402979c5783292c9eed353e94c6b308b861457e8fb73a6e6e06882b81939a2"
},
{
"bytes": 12269,
"path": "coverage/kinematics-registry.report.json",
"sha256": "36d46128038bf0dbd73e1b57194c388d8d433e088e1ed67922033f6d9c0cf900"
},
{
"bytes": 4332,
"path": "coverage/source-g6164-s7-02.report.json",
"sha256": "4e2f49a34f294772def85ea585e995f16b76c071de5b0a5bcefdf2b6805e6fcd"
},
{
"bytes": 2489,
"path": "linuxcnc/src/emc/kinematics/lineardeltakins.c",
"sha256": "792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748"
},
{
"bytes": 76636,
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "316fe74604180b6e9ae7f66369f084278f1b54b7c4545ec9efa870186adc9600"
},
{
"bytes": 9332,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "dcf390d548074d75837086cd2c55d18ee8172690dae74e6d63bc6811efab330f"
},
{
"bytes": 57902,
"path": "web/worker/sim-session.mjs",
"sha256": "b680f225c5f8a8923ef8e03a02ee6bd16709671ad39a66e30d96f09d734b4d1c"
},
{
"bytes": 2530,
"path": "linuxcnc/configs/sim/axis/rdelta.ini",
"sha256": "53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508"
},
{
"bytes": 2964,
"path": "linuxcnc/src/emc/kinematics/rotarydeltakins.c",
"sha256": "64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773"
},
{
"bytes": 5753,
"path": "linuxcnc/src/emc/kinematics/rotarydeltakins-common.h",
"sha256": "ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136"
},
{
"bytes": 4874,
"path": "web/worker/test_authoritative_kinematics_s7_04.mjs",
"sha256": "41985d384228445f5de56b693d72f5cba0233d61883fa6efd393c5cc2649ed3a"
}
],
"native_wasm": {
"kinematics": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638",
"status": "PASSED",
"wasm_stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"native": {
"command": [
"build-native/sim_kinematics_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "470ed446a2e34f15a09838a8aae96e478b40965b26d717c5d3dbada9c028f638"
}
},
"kinematics_motion": {
"golden_diff": {
"byte_identical": true,
"native_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6",
"status": "PASSED",
"wasm_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"native": {
"command": [
"build-native/sim_kinematics_motion_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_kinematics_motion_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
}
},
"report_sha256": "f9eecb4e7c640b883fa92d00a1dd9d2124470a5bd8210237fabbddf81582d8c8",
"schema": "authoritative-kinematics-s7-04.v1",
"scope": {
"geometry": {
"foot_radius": 6,
"platform_radius": 10,
"shin_length": 14,
"thigh_length": 10
},
"joint_count": 3,
"kinematics": "rotarydelta",
"pose": [
0,
0,
-3.793360169
],
"selected_family": "parallel_rotary_delta",
"singular_error": "authoritative_kinematics_singular",
"source_module": "rotarydeltakins",
"unsupported_error": "authoritative_kinematics_unsupported"
},
"selection": {
"basis": [
"delta-kinematics report has real rotarydelta configuration candidate and passed native/WASM samples",
"rotarydelta preserves the existing authoritative XYZ plus three-joint shape",
"no ABI/protocol/schema expansion is required"
],
"not_promoted": [
"TRT",
"serial_robot",
"linear_delta",
"Hexapod",
"Pentapod",
"switch",
"user",
"official_oracle"
]
},
"status": "verified",
"task_id": "S7-04",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_authoritative_kinematics_s7_04.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "455bb34a953f78e42b3392d859e001086dfab4f6d48adb98ba3f9bc7c545f491"
},
"sample": {
"boundaries": [
"official kinematics oracle remains SOURCE_BLOCKED",
"TRT/robot/Hexapod/Pentapod/switch/user remain queued",
"missing rdelta HAL resources remain configuration gaps"
],
"checkpoint_hash": "fnv1a64:95c6e490b47e0043",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"geometry": {
"foot_radius": 6,
"platform_radius": 10,
"shin_length": 14,
"thigh_length": 10
},
"parity": {
"mode": {
"actual_hash": "fnv1a64:2b9d99b43dec0f25",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:2b9d99b43dec0f25"
},
"recovery": {
"actual_hash": "fnv1a64:85b2a8f5970c7e32",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:85b2a8f5970c7e32"
}
},
"schema": "authoritative-kinematics-s7-04-sample.v1",
"singular": {
"message_key": "authoritative_kinematics_singular"
},
"status": "verified",
"supported": {
"endpoint_hash": "fnv1a64:2b9d99b43dec0f25",
"joints": [
10.000000000717074,
10.000000000717074,
10.000000000717074
],
"pose": [
0,
0,
-3.793360169
],
"source_family": "rotarydeltakins",
"type": "rotarydelta"
},
"unsupported": {
"code": "authoritative_kinematics_unsupported",
"type": "xyzac-trt"
}
}
}
}

View File

@@ -0,0 +1,77 @@
{
"consumption": {
"authoritative": true,
"source": "Worker COMMAND_RESULT/STATE_SNAPSHOT/ERROR",
"ui_writes_core": false,
"ui_writes_opfs": false
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"diagnostics": [
"code",
"message_key",
"source_line",
"column",
"text",
"blocked_state"
],
"known_boundaries": [
"Three.js pose/toolpath rendering is P7-04",
"recovery/offline UX is P7-05"
],
"outputs": [
{
"bytes": 4304,
"path": "web/app/state-panel.mjs",
"sha256": "37bca21adf673ae04209f9defb6407dbbcf4e8cd967b8a6dd71fd899f9e352d2"
},
{
"bytes": 826,
"path": "web/app/hal-panel.mjs",
"sha256": "f4b6d998fab6831a5746a57d33be0a5d2d888c1266af8638105d6cfed43747e2"
},
{
"bytes": 1318,
"path": "web/app/device-panel.mjs",
"sha256": "df54448017ae50455b3a96642bd6904678509cf14b49288e53b059699188a856"
},
{
"bytes": 1035,
"path": "web/app/recovery-panel.mjs",
"sha256": "96b9b7405bfe911d167a8c6465bf80b694a7de69b118a2a59faaa562f30bd4a0"
},
{
"bytes": 1326,
"path": "web/app/test_authoritative_panels.mjs",
"sha256": "746a600f2059f4b6de2c5afed14aff15a892b27d22dfa21eca8cd75b7e50139d"
}
],
"panels": [
"state",
"HAL",
"IO/device",
"Python",
"PLC",
"alarm",
"recovery"
],
"report_sha256": "da9045398cedf867cd82f3d859196d45f0739f6b77dfe25b5f44360db8a2a57e",
"schema": "authoritative-panels-report.v1",
"status": "verified",
"task_id": "P7-03",
"tests": {
"frontend_m4": {
"command": "node web/app/test_frontend_m4.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "frontend_m4=passed panels=3\n"
},
"panels": {
"command": "node web/app/test_authoritative_panels.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "authoritative_panels=passed fields=28 fault=limit\n"
}
}
}

View File

@@ -0,0 +1,238 @@
{
"boundaries": [
"non-trivkins kinematics remain S6-03+",
"full LinuxCNC canonical/native oracle remains explicitly blocked",
"authoritative runtime state is now checkpointed and endpoint-compared for the supported XYZ/trivkins slice"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_task_test|sim_scheduler_test|sim_kinematics_motion_test|sim_hal_test|sim_io_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "fa905552406d4600af22e0462f5661d9b909d2c449d35863a87c8af296448bfc"
},
"inputs": [
{
"bytes": 30391,
"path": "coverage/full-linuxcnc-simulation-gap-audit.report.json",
"sha256": "1edca7d61e4db4cb697b610a9aaa2f2cf34ecdd98e2ed30a1dd57756879b1ce0"
},
{
"bytes": 6089,
"path": "coverage/sim-task.report.json",
"sha256": "768f8dd6af9a3ccfaa6f62ce8e7c2ab6bcb4af77036d1098feb7d344b96091d1"
},
{
"bytes": 6043,
"path": "coverage/sim-scheduler.report.json",
"sha256": "df5699b9cd4f15c3d6351ab172b21af579ffbec8fad90cee3d00043418581d36"
},
{
"bytes": 2332,
"path": "wasm-core/include/sim_kinematics_motion.h",
"sha256": "86b0f6b889875b03bc3fea8787443cb72e77561e85c7114b8dd43eeba8c69350"
},
{
"bytes": 55881,
"path": "web/worker/sim-session.mjs",
"sha256": "46bc64a32d4227326e53fd769bb0b7e95a16310eb1d67659a64457a2ee24243e"
},
{
"bytes": 5090,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "941503c5047d799fb28b86663662db9b2e68286e9e378771486c991670920b1d"
}
],
"native": {
"hal": {
"command": [
"build-native/sim_hal_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"io": {
"command": [
"build-native/sim_io_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
},
"kinematics_motion": {
"command": [
"build-native/sim_kinematics_motion_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"scheduler": {
"command": [
"build-native/sim_scheduler_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "edbcd94c798040834e9a994132fb714ab33e8421361cf14932b2df2181a89208"
},
"task": {
"command": [
"build-native/sim_task_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "b8e55ede04f5a94a9a64aaa664a73b0433c56cf7ca0d92d8abcd4b20091e6dc8"
}
},
"native_wasm_component_golden": {
"hal": {
"byte_identical": true,
"native_stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332",
"status": "PASSED",
"wasm_stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"io": {
"byte_identical": true,
"native_stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0",
"status": "PASSED",
"wasm_stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
},
"kinematics_motion": {
"byte_identical": true,
"native_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6",
"status": "PASSED",
"wasm_stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
},
"report_sha256": "7c652db11241719eab9943157b5f5bf4fbe918147dd89ac2c0aa3aed091eadb7",
"schema": "authoritative-sim-task-s6.v1",
"scope": {
"axes": [
"x",
"y",
"z"
],
"kinematics": "trivkins",
"phases": [
"reconcile",
"task",
"tp",
"kinematics",
"motion",
"hal_io",
"callbacks",
"publish"
]
},
"status": "verified",
"task_id": "S6-02",
"wasm": {
"hal": {
"command": [
"node",
"build-wasm/sim_hal_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"io": {
"command": [
"node",
"build-wasm/sim_io_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
},
"kinematics_motion": {
"command": [
"node",
"build-wasm/sim_kinematics_motion_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
}
},
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_authoritative_sim_task_s6.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "4a695ada18e3cc19a47b083a584a3b0c553fa335de5049aa42fc3450b3657107"
},
"sample": {
"authoritative_hash": "fnv1a64:26649a9efc6276f0",
"boundaries": [
"non-trivkins kinematics remain S6-03+",
"full LinuxCNC canonical/native oracle remains explicitly blocked"
],
"checkpoint_hash": "fnv1a64:e83e243cf7e09ccb",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"endpoint_hash": "fnv1a64:17c6efd11e37c117",
"parity": {
"fast_recovery": {
"actual_hash": "fnv1a64:4ce46780a4d9d6a0",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:4ce46780a4d9d6a0"
},
"mode": {
"actual_hash": "fnv1a64:17c6efd11e37c117",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:17c6efd11e37c117"
},
"one_x_recovery": {
"actual_hash": "fnv1a64:4ce46780a4d9d6a0",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:4ce46780a4d9d6a0"
}
},
"schema": "authoritative-sim-task-s6-sample.v1",
"status": "verified",
"supported": {
"axes": [
"x",
"y",
"z"
],
"fixed_tick_phases": [
"reconcile",
"task",
"tp",
"kinematics",
"motion",
"hal_io",
"callbacks",
"publish"
],
"kinematics": "trivkins"
},
"task_hash": "fnv1a64:27f97adf789499ce"
}
}
}

View File

@@ -0,0 +1,400 @@
{
"anchors": [
{
"id": "menus",
"lines": "33-482",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "toolbar",
"lines": "484-787",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "notebooks",
"lines": "790-1312",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "status_and_program",
"lines": "1314-1709",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "state_gating",
"lines": "1715-1887",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "keyboard_and_defaults",
"lines": "1941-2048",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
},
{
"id": "dynamic_help",
"lines": "2250-2270",
"path": "linuxcnc/share/axis/tcl/axis.tcl"
}
],
"assets": [
{
"bytes": 1003,
"name": "tool_estop.gif",
"path": "linuxcnc/share/axis/images/tool_estop.gif",
"sha256": "05180994c7cf0980887a7ecb136cc8b54315ad65e94f6a4aad7f896c4b4712a1",
"status": "indexed"
},
{
"bytes": 660,
"name": "tool_power.gif",
"path": "linuxcnc/share/axis/images/tool_power.gif",
"sha256": "8753513e62ae7537c75962872423d495baf346e6cb0b7c3e44a0c506c22dbd51",
"status": "indexed"
},
{
"bytes": 1458,
"name": "tool_open.gif",
"path": "linuxcnc/share/axis/images/tool_open.gif",
"sha256": "e880564a048b1db911909839d627872cc62d3e0bc8904cb13ce0eee387cbb387",
"status": "indexed"
},
{
"bytes": 1458,
"name": "tool_reload.gif",
"path": "linuxcnc/share/axis/images/tool_reload.gif",
"sha256": "0ac0824d841c9107c49d8ae870bb6e227f9d142b33c582b95e971d48ccbb7d56",
"status": "indexed"
},
{
"bytes": 509,
"name": "tool_run.gif",
"path": "linuxcnc/share/axis/images/tool_run.gif",
"sha256": "b5c5a7ef88299ba9791f5dd8cb35962ec2231c29dbf91eba14d2f1dc2d33a6d8",
"status": "indexed"
},
{
"bytes": 509,
"name": "tool_step.gif",
"path": "linuxcnc/share/axis/images/tool_step.gif",
"sha256": "2a04a7a246b01aec7fb54f89f86a8cfd847036b9bc7c7792d430b5715eadad97",
"status": "indexed"
},
{
"bytes": 475,
"name": "tool_pause.gif",
"path": "linuxcnc/share/axis/images/tool_pause.gif",
"sha256": "871e87dd5d037456e8d5c4a9ca1c40568d4d7bd42f97e834486064a35ed8579b",
"status": "indexed"
},
{
"bytes": 1195,
"name": "resume_inhibit.gif",
"path": "linuxcnc/share/axis/images/resume_inhibit.gif",
"sha256": "281136e84f10ca93b3cd3fc67afea22163a39cbf084b36eddbeff6577b68108d",
"status": "indexed"
},
{
"bytes": 475,
"name": "tool_stop.gif",
"path": "linuxcnc/share/axis/images/tool_stop.gif",
"sha256": "bd9d6de9004f5704dd62c81e70da3afe04a04a45d3dd789b9f05d0f41a024696",
"status": "indexed"
},
{
"bytes": 350,
"name": "tool_blockdelete.gif",
"path": "linuxcnc/share/axis/images/tool_blockdelete.gif",
"sha256": "ba86ee9c99787ae52bd08606b97f03f9a10a029cc4f34e984fa11f75707edf1a",
"status": "indexed"
},
{
"bytes": 659,
"name": "tool_optpause.gif",
"path": "linuxcnc/share/axis/images/tool_optpause.gif",
"sha256": "cb93b2babbe850dd36e8c6059f22d5a2e48f0e413c02c175cc336d4f182251af",
"status": "indexed"
},
{
"bytes": 509,
"name": "tool_zoomin.gif",
"path": "linuxcnc/share/axis/images/tool_zoomin.gif",
"sha256": "84a72c90d0061001c8274ea3c5b61d44a5eea69efd4568748487291624913b2f",
"status": "indexed"
},
{
"bytes": 409,
"name": "tool_zoomout.gif",
"path": "linuxcnc/share/axis/images/tool_zoomout.gif",
"sha256": "91b12263b8a6d20de2836c2af7ba29c215bd830f62f3015a6798449dec3c402d",
"status": "indexed"
},
{
"bytes": 381,
"name": "tool_axis_z.gif",
"path": "linuxcnc/share/axis/images/tool_axis_z.gif",
"sha256": "f04b1646ea895b7e5e76da3330f0204a82a05190dfa4587d0ec90012fbc0ba19",
"status": "indexed"
},
{
"bytes": 377,
"name": "tool_axis_z2.gif",
"path": "linuxcnc/share/axis/images/tool_axis_z2.gif",
"sha256": "0df17e400265e723adf81aca893483c99d2b20648f9675c8c68e91de2b625d6a",
"status": "indexed"
},
{
"bytes": 581,
"name": "tool_axis_x.gif",
"path": "linuxcnc/share/axis/images/tool_axis_x.gif",
"sha256": "67a86a033a19cef4012ed3229fd43631aa9fc0d8f116283e577d6062a0189c21",
"status": "indexed"
},
{
"bytes": 355,
"name": "tool_axis_y.gif",
"path": "linuxcnc/share/axis/images/tool_axis_y.gif",
"sha256": "7c07c9ae8ce379dc5a3c1c0b7ef469405930556924cf35152a2dadebcaa9bc3f",
"status": "indexed"
},
{
"bytes": 343,
"name": "tool_axis_y2.png",
"path": "linuxcnc/share/axis/images/tool_axis_y2.png",
"sha256": "524d3f07f1f68b653ac606a7065b3f7345c526ee1f28b37d8532c27fc3a2c1c6",
"status": "indexed"
},
{
"bytes": 1010,
"name": "tool_axis_p.gif",
"path": "linuxcnc/share/axis/images/tool_axis_p.gif",
"sha256": "0b18ef8b40da58e4309de91d63f88787a728e9bcc7c0d0537613353461ef3e09",
"status": "indexed"
},
{
"bytes": 1285,
"name": "tool_rotate.gif",
"path": "linuxcnc/share/axis/images/tool_rotate.gif",
"sha256": "727c091acc451d6a7be8fc7664f5145769408f09e136105d7b2638accb6b7602",
"status": "indexed"
},
{
"bytes": 1458,
"name": "tool_clear.gif",
"path": "linuxcnc/share/axis/images/tool_clear.gif",
"sha256": "60a8f96e1b6f3a35eba087a2bd5b4afbe4f29dac3b08e7e9e229c76377ca001d",
"status": "indexed"
}
],
"axis_tcl": {
"binding_count": 10,
"bindings": [
"Alt-v",
"Button-1",
"ButtonRelease-1",
"Configure",
"Control-Tab",
"Key-Escape",
"Key-Return",
"greater",
"less",
"semicolon"
],
"line_count": 2300,
"menu_accelerator_entries": 80,
"menu_labels_sample": [
"\"_Open...\"]",
"\"Recent _Files\"]",
"\"_Edit...\"]",
"\"_Reload\"]",
"\"_Save G-code as...\"]",
"\"_Properties...\"]",
"\"Edit _tool data...\"]",
"\"Reload tool _data\"]",
"\"_Ladder Editor...\"]",
"\"_Quit\"]",
"\"Toggle _Emergency Stop\"]",
"\"Toggle _Machine Power\"]"
],
"notebooks": [
"${pane_top}.tabs",
"${pane_top}.right"
],
"procedure_count": 32,
"procedures": [
"pause_image_normal",
"pause_image_override",
"show_all_tabs",
"set_pane_minsize",
"disable_group",
"enable_group",
"state",
"relief",
"update_title",
"update_state",
"set_mode_from_tab",
"joint_mode_switch",
"queue_update_state",
"is_continuous",
"show_all",
"delete_all",
"size_combobox_to_entries",
"size_label_to_strings",
"size_menubutton_to_entries",
"setval",
"val2vel",
"places",
"val2vel_show",
"set_slider_min",
"set_aslider_min",
"update_jog_slider_vel",
"update_maxvel_slider_vel",
"update_maxvel_slider",
"update_units",
"update_ajog_slider_vel",
"update_recent",
"show_menu_available"
],
"toolbar_load_image_count": 25,
"toolbar_load_image_names": [
"tool_estop",
"tool_power",
"tool_open",
"tool_reload",
"tool_run",
"tool_step",
"tool_pause",
"tool_pause",
"resume_inhibit",
"tool_stop",
"tool_blockdelete",
"tool_optpause",
"tool_zoomin",
"tool_zoomout",
"tool_axis_z",
"tool_axis_z2",
"tool_axis_x",
"tool_axis_y",
"tool_axis_y2",
"tool_axis_p",
"tool_rotate",
"tool_clear",
"spindle_ccw",
"spindle_cw",
"banner"
],
"widget_declarations": 77,
"widget_names_sample": [
".toolbar.machine_estop",
".toolbar.machine_power",
".toolbar.file_open",
".toolbar.reload",
".toolbar.program_run",
".toolbar.program_step",
".toolbar.program_pause",
".toolbar.program_stop",
".toolbar.program_blockdelete",
".toolbar.program_optpause",
".toolbar.view_zoomin",
".toolbar.view_zoomout",
".toolbar.view_z",
".toolbar.view_z2",
".toolbar.view_x",
".toolbar.view_y",
".toolbar.view_y2",
".toolbar.view_p",
".toolbar.rotate",
".toolbar.clear_plot",
"$_tabs_manual.axis",
"$_tabs_manual.jogf.jog.jogminus",
"$_tabs_manual.jogf.jog.jogplus",
"$_tabs_manual.jogf.jog.jogincr"
]
},
"boundary": "inventory_only; no runtime or protocol mutation",
"checks": {
"source_line_count": {
"actual": 2300,
"expected": 2300,
"status": "verified"
},
"source_paths": {
"status": "verified"
},
"toolbar_assets": {
"expected": 21,
"indexed": 21,
"status": "verified"
},
"toolbar_names_declared": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "source_frozen",
"report_sha256": "b8456ef0fd5214fdea9ef7b05682e543173c898a83658d7b005b0922f8808be0",
"schema": "axis-source-inventory.v1",
"source": [
{
"bytes": 63423,
"path": "linuxcnc/share/axis/tcl/axis.tcl",
"sha256": "c9f0b4dc686717b37565f85fb0ab8cc8ded9cfa0028cc0aaaccdbcf808c4c524",
"status": "indexed"
},
{
"bytes": 2449,
"path": "linuxcnc/share/axis/tcl/support.tcl",
"sha256": "c0a3d4b13da0b8050dcca712767f348a13edd0b26367f6bb1d59c1dec7e31528",
"status": "indexed"
},
{
"bytes": 5315,
"path": "linuxcnc/share/axis/tcl/accel.tcl",
"sha256": "813422212bda2557944f57840fc11201e3ad47b74115dabec08bd709d3b649c1",
"status": "indexed"
},
{
"bytes": 63630,
"path": "linuxcnc/share/axis/tcl/combobox.tcl",
"sha256": "5f10dbc1c30c47764898706d104a2da27d74279dae447061114c557a9c0bcec2",
"status": "indexed"
},
{
"bytes": 3898,
"path": "linuxcnc/share/axis/tcl/sb.tcl",
"sha256": "fed631f5c59e03fe903f4aae295e09b4161226df1e776ea8dea95f59afd5b86a",
"status": "indexed"
},
{
"bytes": 8252,
"path": "linuxcnc/share/axis/tcl/dialog.tcl",
"sha256": "27cda7a0ebacf03ceb1514fb083d7d5646e1a7c6b91a8a056ea2036bfdd432ab",
"status": "indexed"
},
{
"bytes": 1529,
"path": "linuxcnc/src/emc/usr_intf/axis/README",
"sha256": "2fe357ba28bb0aa6654ca282a853c912e86eeba034148bcb688e084c652d3201",
"status": "indexed"
},
{
"bytes": 23953,
"path": "linuxcnc/lib/python/gremlin.py",
"sha256": "7559a52300de92ed156fe22267c8fbca975338321cf3afada141360a244756a3",
"status": "indexed"
},
{
"bytes": 18932,
"path": "linuxcnc/lib/python/gremlin_view.py",
"sha256": "6d735d800ff235bd967d2a77eb5000cea91a505683ee65e5abbdec3f53f6dcf3",
"status": "indexed"
},
{
"bytes": 76641,
"path": "linuxcnc/lib/python/rs274/glcanon.py",
"sha256": "0dfb20f1fdc05289894f3aa638357d98e1063fbd53329c723c777399ec7b33b7",
"status": "indexed"
}
],
"status": "verified",
"task_id": "AXIS-INV-01"
}

View File

@@ -0,0 +1,156 @@
{
"boundaries": [
"AXIS desktop window is WEB-EQUIV, not a GTK/Tk window copy",
"Worker remains authoritative for task/motion/IO/tool/alarm state",
"REAL-EXCLUDED hardware safety and host processes remain explicit",
"full GUI family acceptance continues in FE-M4-GUI-04+"
],
"checks": {
"frontend_regression": {
"command": [
"npm",
"run",
"build"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "351b524197fb492920789369e7f1a271420c757633fbb553b280a181ac4c31a4",
"stderr_tail": "[plugin builtin:vite-reporter] \n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.\n",
"stdout_sha256": "09608785fcaa5b6fd684327bf10f528c7ceec2a3c9f2fa7b60f77a22ecc5554d",
"stdout_tail": "\n> linuxcnc-web-wasm-react@0.1.0 build\n> tsc --noEmit && vite build\n\nvite v8.2.2 building client environment for production...\ntransforming...\n✓ 57 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.45 kB │ gzip: 0.29 kB\ndist/assets/linuxcnc-sim-core-CUHPXMcz.wasm 172.95 kB │ gzip: 72.16 kB\ndist/assets/sim-worker-entry-CWz_hwEG.js 196.19 kB\ndist/assets/index-CBYbZzYS.css 16.91 kB │ gzip: 4.36 kB\ndist/assets/index-Zh6oL3cR.js 1,027.64 kB │ gzip: 251.40 kB\n\n✓ built in 370ms\n"
},
"source_axis_icons": {
"assets": 20,
"paths": [
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_axis_p.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_axis_x.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_axis_y.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_axis_z.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_axis_z2.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_blockdelete.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_clear.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_estop.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_open.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_optpause.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_pause.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_power.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_reload.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_rotate.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_run.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_step.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_stop.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_verify.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_zoomin.gif",
"linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/tool_zoomout.gif"
],
"status": "verified"
},
"source_mapping": {
"files": 10,
"status": "verified"
},
"three_viewer": {
"status": "verified"
},
"worker_commands": {
"commands": 16,
"status": "verified"
},
"worker_regression": {
"command": [
"node",
"web/worker/test_minimal_xyz_vertical_s8_04.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "116150a1d54bf879ebd83cfeafc83f253dd3c40736889de045089a7287e78631",
"stdout_tail": "{\"schema\":\"minimal-xyz-vertical-s8-04-sample.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/minimal_xyz.ini\",\"startup_state\":\"TASK_READY\",\"jog\":{\"tick\":10,\"x\":0.020000000000000004},\"override\":{\"feed\":0.5,\"spindle\":1.2},\"program\":{\"status\":\"completed\",\"line\":5,\"mdi\":\"verified\"},\"recovery\":{\"status\":\"recovered\",\"parity\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:b28f69a38b7079a5\",\"actual_hash\":\"fnv1a64:b28f69a38b7079a5\"}},\"estop\":{\"blocked_code\":\"sim_io_estop\",\"recovered\":\"READY\"},\"endpoint_hash\":\"fnv1a64:b28f69a38b7079a5\",\"checkpoint_hash\":\"fnv1a64:4fcbfaed8c9ee75e\"}\n"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "verified",
"report_sha256": "f753e5e6570ddc1ec26dd03f45a61a575eea757de1e24920e4df3716b5242c3e",
"schema": "axis-web-workflow-fe-m4-report.v1",
"source_files": [
{
"bytes": 157381,
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
"sha256": "328c038a1e8fefd952e53c8e398e3fa98b04602351c44318edd1b044e8f63ffa",
"status": "present"
},
{
"bytes": 23953,
"path": "linuxcnc/src/emc/usr_intf/gremlin/gremlin.py",
"sha256": "7559a52300de92ed156fe22267c8fbca975338321cf3afada141360a244756a3",
"status": "present"
},
{
"bytes": 45446,
"path": "linuxcnc/src/emc/usr_intf/gremlin/qt5_graphics.py",
"sha256": "3a0907e4287ebbff56a08656a30f2ae1486d8cac7d4d6e4c7e4e34ffd6567525",
"status": "present"
},
{
"bytes": 76641,
"path": "linuxcnc/lib/python/rs274/glcanon.py",
"sha256": "0dfb20f1fdc05289894f3aa638357d98e1063fbd53329c723c777399ec7b33b7",
"status": "present"
},
{
"bytes": 14844,
"path": "web/react/src/App.tsx",
"sha256": "e1ad4c11660428886ffcae7bb48a0af692381102e68230a6277d680bfb104969",
"status": "present"
},
{
"bytes": 4573,
"path": "web/react/src/store.ts",
"sha256": "b7b40921d5726d7e25ba440d4939ec82baf85a2dd5ace8da50c75569631797ad",
"status": "present"
},
{
"bytes": 3115,
"path": "web/react/src/worker-client.ts",
"sha256": "87ad659e8b28b6486c9f3137d53c0766187a741eb7dbf50c833e40d6857f5f7c",
"status": "present"
},
{
"bytes": 2628,
"path": "web/react/src/gui-domain.ts",
"sha256": "aa31acabe0144fac1f9952f4c97b70181fbe85528ef7956b669e287b965a6329",
"status": "present"
},
{
"bytes": 2708,
"path": "web/react/src/ThreeMachineView.tsx",
"sha256": "1041e5a034c673c3459daf00d236d00f2655c87f8355ec293c2f6626f7a35991",
"status": "present"
},
{
"bytes": 57994,
"path": "web/worker/sim-session.mjs",
"sha256": "47c0918797b6a60ed72dce6014fb3f365f620e31be34d8d66f5311971dbe16fd",
"status": "present"
}
],
"status": "verified",
"task_id": "FE-M4-GUI-03",
"workflow": [
"case_load",
"program_load",
"program_run",
"pause_resume_step",
"abort_restart",
"mdi",
"jog_home",
"feed_spindle_override",
"spindle_coolant",
"tool_prepare_change",
"probe",
"estop_recover",
"dro",
"threejs_pose"
]
}

View File

@@ -0,0 +1,231 @@
{
"browser_probe": {
"chromium_probe": {
"smoke": "passed",
"status": "verified",
"version": "Google Chrome 151.0.7922.169"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"firefox_probe": {
"smoke": "passed",
"status": "verified",
"version": "Mozilla Firefox 154.0"
},
"locked_matrix_read": {
"declared_status": "planned-for-m4",
"minimum": {
"chromium": "TBD",
"firefox": "TBD",
"safari": "TBD"
},
"status": "verified"
},
"no_unverified_result_hidden": {
"smoke": {
"chromium": "passed",
"firefox": "passed",
"safari": "blocked_unavailable"
},
"status": "verified"
},
"release_stop_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
},
"safari_probe": {
"reason": "Safari is not available in this Linux environment",
"smoke": "blocked_unavailable",
"status": "verified",
"version": null
}
},
"canvas_nonblank": true,
"checks": {
"chromium_environment": {
"status": "verified"
},
"firefox_not_in_scope": {
"reason": "Firefox is excluded from the current test scope",
"status": "verified"
},
"frontend_dependency": {
"status": "verified"
},
"reg01_dependency": {
"status": "verified"
},
"reg03_dependency": {
"status": "verified"
},
"release_stop_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
},
"repeat_determinism": {
"status": "verified"
},
"safari_not_in_scope": {
"reason": "Safari is excluded from the current test scope",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"known_boundaries": [
"Safari unavailable in Linux environment",
"Firefox out of current performance scope",
"P8-05 delivery closure"
],
"offline": true,
"outputs": [
{
"bytes": 5532,
"path": "coverage/browser-performance-matrix.report.json",
"sha256": "fbe06c0f2f582918f5cccbea49813cdd1a25a173cfeaec007c344293d0f37c2b"
},
{
"bytes": 6180,
"path": "coverage/browser-matrix-remediation.report.json",
"sha256": "6f150474a385a41caf71b964d6c11133d34e742a211f985f207908687aecb37c"
},
{
"bytes": 772,
"path": "web/app/test_browser_performance.mjs",
"sha256": "c7ed6c3f554b335c05e32e31b96bf0933c1130159510b1cf6fcbc1f00ed919a2"
}
],
"performance_sample": [
{
"exit_code": 0,
"sample": {
"files": [
{
"bytes": 367,
"file": "index.html"
},
{
"bytes": 8105,
"file": "app.mjs"
},
{
"bytes": 6766,
"file": "worker-client.mjs"
},
{
"bytes": 3133,
"file": "styles.css"
},
{
"bytes": 1337,
"file": "controls.mjs"
},
{
"bytes": 4304,
"file": "state-panel.mjs"
},
{
"bytes": 2238,
"file": "project-workflow.mjs"
},
{
"bytes": 1689,
"file": "recovery-panel.mjs"
},
{
"bytes": 1318,
"file": "device-panel.mjs"
},
{
"bytes": 826,
"file": "hal-panel.mjs"
},
{
"bytes": 2083,
"file": "machine-view.mjs"
}
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 32166
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "b3b55c4a0726bc2e1a3ebe20b72b56c1ffa1f2ed6e72b3f0be5b657fb0727a77"
},
{
"exit_code": 0,
"sample": {
"files": [
{
"bytes": 367,
"file": "index.html"
},
{
"bytes": 8105,
"file": "app.mjs"
},
{
"bytes": 6766,
"file": "worker-client.mjs"
},
{
"bytes": 3133,
"file": "styles.css"
},
{
"bytes": 1337,
"file": "controls.mjs"
},
{
"bytes": 4304,
"file": "state-panel.mjs"
},
{
"bytes": 2238,
"file": "project-workflow.mjs"
},
{
"bytes": 1689,
"file": "recovery-panel.mjs"
},
{
"bytes": 1318,
"file": "device-panel.mjs"
},
{
"bytes": 826,
"file": "hal-panel.mjs"
},
{
"bytes": 2083,
"file": "machine-view.mjs"
}
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 32166
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "b3b55c4a0726bc2e1a3ebe20b72b56c1ffa1f2ed6e72b3f0be5b657fb0727a77"
}
],
"release_stop": {
"action": "STOP_RELEASE",
"candidate_eligible": false
},
"report_sha256": "d384a1a38d875485a6eb10fd3577193b7597f1662a8fc5d85f17c2d5838494b0",
"schema": "browser-matrix-closure-report.v1",
"scope": {
"firefox": "out_of_scope",
"minimums": "TBD_in_locked_matrix",
"safari": "out_of_scope",
"scope": [
"chromium"
]
},
"status": "verified",
"task_id": "P8-04"
}

View File

@@ -59,7 +59,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -77,10 +77,10 @@
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "b88b3978114cb7347f890c558ea0b6c948533b8a87d61bcee3806cd0912b0a6d",
"status": "present"
}
],
@@ -100,8 +100,8 @@
],
"exit_code": 0,
"status": "passed",
"stderr_preview": "",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stderr_preview": "[354699:354699:0822/112700.686752:ERROR:mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:748] Message 853159353 rejected by interface blink.mojom.Frame",
"stderr_sha256": "2c4d73f86043dd6c3ee198266456f336aa5749e713df89e05de2d6ab72fbf2cf",
"stdout_preview": "<html><head><title>LinuxCNC WASM smoke</title></head><body></body></html>",
"stdout_sha256": "f1516af3b272ea95719b5ce833d3afcbdf192eb69962fa5b59443faf60fc9f26"
},
@@ -167,7 +167,7 @@
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "64c89092fe6dc4eeb86c33ee3984b320bf5aa05231415acbd835877cd5f1c7e8",
"report_sha256": "2f47276d3ea7ce985796881fb0ae6c009c5762c7f3ba199c7b101f9f63f4310a",
"review_policy": {
"current_environment_limit": "Safari binary and browser farm are unavailable; observed Chromium/Firefox probes do not establish a release minimum",
"forbidden": [

View File

@@ -44,35 +44,35 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"role": "full_configuration_matrix",
"sha256": "ab270bb11acc0825ee0a7b61f06751a88a8808e2061eea531162780043cf4a77",
"sha256": "1a97f5fd66e86a0e6bbd22832040a7f8d839ba12677a5800b72d047a2bdde9f9",
"status": "present"
},
{
"bytes": 3170,
"path": "coverage/recovery-offline-fault-matrix.report.json",
"role": "recovery_offline_fault_matrix",
"sha256": "d8d68855fc0db32201015ead2b0d5a50f809ada74c89caf48af4fc971dcc001b",
"sha256": "8ef9f92536fa04e7317fcc319a6f959c26494207f336132d3c454f0421c62f8c",
"status": "present"
},
{
"bytes": 6180,
"bytes": 6340,
"path": "coverage/browser-matrix-remediation.report.json",
"role": "browser_matrix_remediation",
"sha256": "6f150474a385a41caf71b964d6c11133d34e742a211f985f207908687aecb37c",
"sha256": "1ba374b8ebfcdabe5363c519011ae73a6535a5e5643149810ac0279a955896a5",
"status": "present"
},
{
"bytes": 3301,
"path": "coverage/frontend-m4.report.json",
"role": "frontend_m4",
"sha256": "38d26903f56c0e9b2235baf4fc96c6468b43c391e64c03a5df15c0c46d9b22f3",
"sha256": "3fea18ba6ec7a76640bb2eafac6cabc13f53b6d438442d280f9bf5620b9fb26f",
"status": "present"
},
{
@@ -85,7 +85,7 @@
],
"next_transition": "execute K8-REL-17 release gate refresh after implementation evidence",
"release_action": "STOP_RELEASE",
"report_sha256": "325c5ddaba4d4db51616ca73612345606936e184b236d49c1ff30d65ed8d1c08",
"report_sha256": "db1be56cb41198b185fbf543f71d0bc2f61bfd93b3794dcb5e13851496415258",
"runs": [
{
"exit_code": 0,
@@ -96,23 +96,23 @@
"file": "index.html"
},
{
"bytes": 5715,
"bytes": 8105,
"file": "app.mjs"
},
{
"bytes": 4432,
"bytes": 7508,
"file": "worker-client.mjs"
},
{
"bytes": 2731,
"bytes": 3133,
"file": "styles.css"
},
{
"bytes": 1303,
"bytes": 1337,
"file": "controls.mjs"
},
{
"bytes": 2418,
"bytes": 4304,
"file": "state-panel.mjs"
},
{
@@ -120,7 +120,7 @@
"file": "project-workflow.mjs"
},
{
"bytes": 1035,
"bytes": 1689,
"file": "recovery-panel.mjs"
},
{
@@ -132,17 +132,17 @@
"file": "hal-panel.mjs"
},
{
"bytes": 1129,
"bytes": 2083,
"file": "machine-view.mjs"
}
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 23512
"total_bytes": 32908
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "9ee86b1138ee6c30ecd4e9cb032a7dd1b2ab3317c0858a63a805708bdf410166"
"stdout_sha256": "41b51533a83efdf78425ec49fce1f8bc2260bc88c87fb668c8e3d6614130cbd1"
},
{
"exit_code": 0,
@@ -153,23 +153,23 @@
"file": "index.html"
},
{
"bytes": 5715,
"bytes": 8105,
"file": "app.mjs"
},
{
"bytes": 4432,
"bytes": 7508,
"file": "worker-client.mjs"
},
{
"bytes": 2731,
"bytes": 3133,
"file": "styles.css"
},
{
"bytes": 1303,
"bytes": 1337,
"file": "controls.mjs"
},
{
"bytes": 2418,
"bytes": 4304,
"file": "state-panel.mjs"
},
{
@@ -177,7 +177,7 @@
"file": "project-workflow.mjs"
},
{
"bytes": 1035,
"bytes": 1689,
"file": "recovery-panel.mjs"
},
{
@@ -189,17 +189,17 @@
"file": "hal-panel.mjs"
},
{
"bytes": 1129,
"bytes": 2083,
"file": "machine-view.mjs"
}
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 23512
"total_bytes": 32908
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "9ee86b1138ee6c30ecd4e9cb032a7dd1b2ab3317c0858a63a805708bdf410166"
"stdout_sha256": "41b51533a83efdf78425ec49fce1f8bc2260bc88c87fb668c8e3d6614130cbd1"
}
],
"schema": "browser-performance-matrix.v1",

View File

@@ -0,0 +1,102 @@
{
"boundaries": [
"browser engine versions remain governed by locked matrix",
"Safari/Firefox scope follows existing browser matrix",
"real hardware and host paths remain excluded"
],
"compatibility": {
"cancel_and_backpressure": true,
"default_session_id": "deterministic_instance_sequence",
"logical_tick_only": true,
"real_worker_client": true,
"snapshot_handshake": true
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "web/app/worker-client.mjs",
"sha256": "0c75945ce5dc31e962e16a61fc17311dcc7195877dc4f00d36c23569a726f42a"
},
{
"path": "web/app/browser-compatibility.mjs",
"sha256": "c1dd783461da19d4846c26c5f5474e86e42ca9a2d93ab9935abd0d0f6bf11dfc"
},
{
"path": "web/app/test_browser_compatibility_s3.mjs",
"sha256": "e8d4508d319c7d5a1cd1e0f61a2048aadf6310d37e7f4e711acb217ae9a3086b"
},
{
"path": "web/app/machine-view.mjs",
"sha256": "b3e0e8a75790eac3b3f3ee959f9d65a43e0d154c8de55300db502e0828c9e082"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"path": "web/worker/capabilities.mjs",
"sha256": "86f8123abc055b7bd4a1d0735f92dc834e9d202291f1446a84ca6bbca519e64d"
}
],
"performance": {
"max_chunks": 1000000,
"max_cycles": 1000000,
"sample_chunks": 4,
"sample_cycles": 8,
"wall_clock_simulation": false
},
"report_sha256": "80ed2db698a19f067092e7df87e37eba37caa4a9d5ab2b7522d8c75f72e6393e",
"schema": "browser-simulation-s3-report.v1",
"status": "verified",
"task_id": "S3-04",
"tests": {
"compatibility": {
"command": [
"node",
"web/app/test_browser_compatibility_s3.mjs"
],
"returncode": 0,
"sample": {
"chunks": 4,
"logical_tick": 8,
"schema": "browser-compatibility-s3-sample.v1",
"session_id": "compat-s3",
"status": "verified"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "7975f1b9ce4161aae3fa1522eaccfa28c841f4e4c9308d45b098fc39105c885a"
},
"machine_view": {
"command": [
"node",
"web/app/test_machine_view.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "dbca6fa381d80a011f09a12a988fc04812020a8197fcab0ca8eaf485deeabb41"
},
"worker_client": {
"command": [
"node",
"web/app/test_worker_client_runtime.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86481ffc3da4b28dc3e1a61c7ba582b7e2863f7ba1cc4a2bb477e8011479bffb"
}
},
"visual": {
"canvas": "640x320",
"narrow_viewport_test": true,
"nonblank_test": true
}
}

View File

@@ -0,0 +1,32 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
".clp rung block parser",
"cell type validation",
"PLC register scan",
"timer/counter",
"sampler/backpressure",
"malformed input error"
],
"outputs": [
{
"bytes": 7520,
"path": "web/worker/plc-runtime.mjs",
"sha256": "070f9f94fd5e038bd550d23a7f6831bb7521e50c0f829c4adaa7040dbe240527"
},
{
"bytes": 2606,
"path": "web/worker/test_plc_runtime.mjs",
"sha256": "1f8c7ce78efc2bd59ba6ac301ba0fdccdbe7972658b9f8f45c02358f78250aec"
}
],
"report_sha256": "a2656431d1d082200ccf6154a91d71ee1a986cc6dcad14930658c01fe94a7018",
"schema": "clp-s2-report.v1",
"status": "verified",
"task_id": "S2-01",
"test": {
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c6c6ee4249124b09e18b57630c7ea3ad53269c02a2a52edd0dc0f8e5c97ce440"
}
}

View File

@@ -224,7 +224,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -352,12 +352,12 @@
}
],
"release_decision": "blocked_not_release_candidate",
"report_sha256": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"report_sha256": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"schema": "release-compatibility-matrix.v1",
"source_baseline": {
"context_lock": {
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0",

View File

@@ -0,0 +1,258 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"invariants": {
"abi_protocol_schema_unchanged": true,
"context_lock_unchanged": true,
"official_oracle_not_fabricated": true,
"owner_gate_unchanged": true,
"real_hardware_excluded": true
},
"missing_reports": [],
"next_action": "release/owner track remains nextTask.md WAIT-OWNER-01; no automatic release acceptance",
"partial_or_blocked_count": 1,
"release": {
"action": "STOP_RELEASE",
"blockers": [
"manifest_seed_unassigned",
"accepted_entries_missing",
"official_oracle_missing",
"configuration_resources_missing",
"browser_matrix_unverified",
"license_closure_incomplete"
],
"candidate_eligible": false,
"status": "blocked"
},
"report_count": 28,
"report_sha256": "53b393547c5b171e858ad2e1f8d7e9c23c9ddbf2b8ab32d0eccae17e6cfbdfdf",
"reports": [
{
"file_sha256": "368b23c0938ffe2d6153a1a58b08c6eae189e6838f8489548cfd26e83f3f64c5",
"path": "coverage/configuration-startup-runtime.report.json",
"report_sha256": "5b988ed3c9ce6c640bcf93eb455b497c692d24a5ab59d459a6c2d9b722df964c",
"schema": "configuration-startup-runtime-report.v1",
"status": "passed",
"task_id": "P2-04"
},
{
"file_sha256": "d6864c2dd942772be1271a7efacbc0f7232310ee76de2b9a1ed8b9c5640ce4f7",
"path": "coverage/rs274-interpreter-closure.report.json",
"report_sha256": "f948cbbeba846ba8f883157db40119bdd79bec2c15b04db821f25581d8b32b98",
"schema": "rs274-interpreter-closure-report.v1",
"status": "verified",
"task_id": "P3-01"
},
{
"file_sha256": "c9b02d51f2ba5a1a1248ec75d52f15feac65d389dd60dda198ee1844d35b50de",
"path": "coverage/o-word-runtime.report.json",
"report_sha256": "fff8a63e869c95e311412d256808416a3766d169d3bc009d472a14544689b027",
"schema": "o-word-runtime-report.v1",
"status": "verified",
"task_id": "P3-02"
},
{
"file_sha256": "a4387c31f508297bdd28bd8eb432e9f9113cf505fb5aa711d158720b291df2f6",
"path": "coverage/tp-blend.report.json",
"report_sha256": "d1587d0039ab4fe0a617ec088472e7e651bf31653b3e02bef8d909e520513119",
"schema": "tp-blend-report.v1",
"status": "verified",
"task_id": "P3-03"
},
{
"file_sha256": "6b22540591a974f8d648a70287412ecdefd9114b1f63095873154983d8d3d659",
"path": "coverage/task-program-state.report.json",
"report_sha256": "df6bd3dde8265e5e80080df94ccc70133848c4467c1cafbdf76ca825549d1540",
"schema": "task-program-state-report.v1",
"status": "verified",
"task_id": "P3-04"
},
{
"file_sha256": "20a48fbf735b184b5211be6d0487fcb1637060af91ddb59f43f7d82b689e9dd6",
"path": "coverage/motion-state.report.json",
"report_sha256": "18fe48ffd88bfebf8c234c2f3c22da04f67b0c4379a083cc98780120019f1aa6",
"schema": "motion-state-report.v1",
"status": "verified",
"task_id": "P3-05"
},
{
"file_sha256": "c836235f11bb0c1afebe4937c776de88cbeb2ac5e5081ac0784a97aa40c36809",
"path": "coverage/kinematics-base.report.json",
"report_sha256": "660a3083aae978f5c08ae561fbc32d7c0ccae3b57f8050dd7147cdcdb3b8db78",
"schema": "kinematics-base-report.v1",
"status": "verified",
"task_id": "P3-06"
},
{
"file_sha256": "b4b649631b120f2a9f94648a7f9ee24386da9fa85224f1500e0e43784cfd8bdc",
"path": "coverage/advanced-kinematics.report.json",
"report_sha256": "d745b423b5f3607048cfc0a34536f11276e5024453442e57670d148380f3842b",
"schema": "advanced-kinematics-report.v1",
"status": "verified",
"task_id": "P3-07"
},
{
"file_sha256": "2fe96f9b3ae0e6143be95c0a9378f40147eb2e2678c23de3d92f19cd8b6b0fc9",
"path": "coverage/hal-graph.report.json",
"report_sha256": "8160c134a903a848d68513fc9a74d853958caec0f555347c2e002e3b59b11128",
"schema": "hal-graph-report.v1",
"status": "verified",
"task_id": "P4-01"
},
{
"file_sha256": "93a109d165c5b10a799aa8ef5fff1d5a03f50929ac3094bc73f6d4e3a1b2b949",
"path": "coverage/component-capability.report.json",
"report_sha256": "e90f377711697708f649146f08e4453bb4b64e63968cb79a6dc630bc60422b74",
"schema": "component-capability-report.v1",
"status": "verified",
"task_id": "P4-02"
},
{
"file_sha256": "dcc892df8a3d9d194213af541b9003e9c58f39bdde4066ec5265bcb17f29bcf3",
"path": "coverage/plc-runtime.report.json",
"report_sha256": "c8b12349fd4aa6e2ce48f0bda8e5b123ddfc190b7b7c3f1e101915eeb55623f8",
"schema": "plc-runtime-report.v1",
"status": "verified",
"task_id": "P4-03"
},
{
"file_sha256": "11a818854805b5b80e4de5dae6158b6e588010f2369afddf76597f9173902672",
"path": "coverage/device-twin.report.json",
"report_sha256": "8e24c7d5cc3122ba9d3e596b6b847149fea08e81a46671e9f7022b44cd6b0a31",
"schema": "device-twin-report.v1",
"status": "verified",
"task_id": "P4-04"
},
{
"file_sha256": "6dafc88ba0c32a2b73c1123d32be3193ad7e0dc860662f49eff52e6b14a456ae",
"path": "coverage/io-ack.report.json",
"report_sha256": "002e126c43d6128370cd1440d74f7a01e20b68a0756644e4618d031899285f8f",
"schema": "io-ack-report.v1",
"status": "verified",
"task_id": "P4-05"
},
{
"file_sha256": "f2e81ac33c971766f759e92aaba1a358a9bc37bd84b53e574d2295c07ac51d8f",
"path": "coverage/python-runtime-closure.report.json",
"report_sha256": "5ef0fd9d5b2ce7389c8c3c4328bdc124aa34bd3b6c037c1d724827c08ab2df91",
"schema": "python-runtime-closure-report.v1",
"status": "verified",
"task_id": "P5-01"
},
{
"file_sha256": "536b5901ce88101da7b91e63fa6ddd2fc404778b58c75ed2e22b02408b479f85",
"path": "coverage/python-api.report.json",
"report_sha256": "774d7f9c85027dd490bdfc69b1a28baf6757a17e9b283452d65c45667732c9f7",
"schema": "python-api-report.v1",
"status": "verified",
"task_id": "P5-02"
},
{
"file_sha256": "5e013720782b2183648cd82ef6005e2547805b5af031f9fd0ff5bae4956f4045",
"path": "coverage/python-callbacks.report.json",
"report_sha256": "2fe39e702a3ae88a00c543ea80033d9470227e4060d7857b505c9356ea99247b",
"schema": "python-callbacks-report.v1",
"status": "verified",
"task_id": "P5-03"
},
{
"file_sha256": "57e0d9a0a0a98907a73d25d01d19cfd525c4c2f4c33baf470b32f657b8ab7abb",
"path": "coverage/trace-export.report.json",
"report_sha256": "42e1618dc55c3ff86e96b150b5c0be2114c8c2c82633af88ba2bc8f69758af0b",
"schema": "trace-export-report.v1",
"status": "verified",
"task_id": "P6-01"
},
{
"file_sha256": "e882196ab3ef32f7071fb6924db8a8f56aadeadd85e7602c20fdb1659ec21f7c",
"path": "coverage/reconciliation.report.json",
"report_sha256": "1afafb9d6f944e2d6c76ef8867a45b94fedb00976c01d4a6ac0d7b406e72af8e",
"schema": "reconciliation-report.v1",
"status": "verified",
"task_id": "P6-02"
},
{
"file_sha256": "bc931f4100f791347020842d0ed2bf9cdf449af2c97446320219b839ed9c70b1",
"path": "coverage/offline-migration.report.json",
"report_sha256": "c7b5539fba525477c29998f13312d766dd28e6f2be05023f0be4c1dd47e58e35",
"schema": "offline-migration-report.v1",
"status": "verified",
"task_id": "P6-03"
},
{
"file_sha256": "bf729cb4168f11613ff5629b1fb2ddc44e55655419ac74909839bb08cc693d61",
"path": "coverage/worker-protocol.report.json",
"report_sha256": "113010d39f5f5fbd82c894647ab01411732b0186bb17debcf6246c49edac6b09",
"schema": "worker-protocol-report.v1",
"status": "verified",
"task_id": "P7-01"
},
{
"file_sha256": "1e21b24b54123a830025c0f2bbfeac202d415e489c360521ee8c831767970241",
"path": "coverage/editor-workflow.report.json",
"report_sha256": "7dc81665b2e0947beb8c9cc9870e18351d50d62122adcf278f6c58db268cc9aa",
"schema": "editor-workflow-report.v1",
"status": "verified",
"task_id": "P7-02"
},
{
"file_sha256": "8d12e32b2032ab248b743591b3cbad1e55bcd620dab1845f90d0e317fb58865f",
"path": "coverage/authoritative-panels.report.json",
"report_sha256": "da9045398cedf867cd82f3d859196d45f0739f6b77dfe25b5f44360db8a2a57e",
"schema": "authoritative-panels-report.v1",
"status": "verified",
"task_id": "P7-03"
},
{
"file_sha256": "067ef64e9e20e27e46f675bdf1977c4950847e2f537196fcc6f391cd03214155",
"path": "coverage/machine-view.report.json",
"report_sha256": "f64763600bcbc3941552a49995612f43f52f6285ab098ee72e2d0ed4938de17f",
"schema": "machine-view-report.v1",
"status": "verified",
"task_id": "P7-04"
},
{
"file_sha256": "156aa7ab88172325922ee65479a1380dec01763ad8d784702fcff160e8bb2375",
"path": "coverage/recovery-ux.report.json",
"report_sha256": "a9c61fbb5dd98065d659bca5214853d6c05bbcfa79df0664a2ed988f5fb19f1c",
"schema": "recovery-ux-report.v1",
"status": "verified",
"task_id": "P7-05"
},
{
"file_sha256": "d001ce551dde7451efa113ec986f34d631c2ff9d14e7e9135377033ce1f1fb53",
"path": "coverage/native-oracle-closure.report.json",
"report_sha256": "e230cd528f00a3a0238253aee935550b58d5680c66e6f1906201b70bddabdb32",
"schema": "native-oracle-closure-report.v1",
"status": "verified",
"task_id": "P8-01"
},
{
"file_sha256": "359ab4318841cbab7b6c3256b217df9a7aa4b4559d6cd026a22cbb88f23b260f",
"path": "coverage/startup-matrix-closure.report.json",
"report_sha256": "3cbb4cd3712715d965e0375a703b0a3a4a61fa12e1c7d82a1955ffb78d4f2fe8",
"schema": "startup-matrix-closure-report.v1",
"status": "verified",
"task_id": "P8-02"
},
{
"file_sha256": "48ea763cfbea64314d9d97dc550a14a67ae4306e2c322d9be5e5a776c00995e6",
"path": "coverage/determinism.report.json",
"report_sha256": "8793b10f3077e4972fb433774b027fbc7bfe0108447757df4254239a4b8dedbb",
"schema": "determinism-report.v1",
"status": "verified",
"task_id": "P8-03"
},
{
"file_sha256": "f191a6e5bc2ec2887cf8bbc29806bda16b16449a7524a08ff6fcd38ab2a20b99",
"path": "coverage/browser-matrix-closure.report.json",
"report_sha256": "d384a1a38d875485a6eb10fd3577193b7597f1662a8fc5d85f17c2d5838494b0",
"schema": "browser-matrix-closure-report.v1",
"status": "verified",
"task_id": "P8-04"
}
],
"schema": "complete-simulation-technical-delivery.v1",
"status": "partial",
"technical_track": "complete-linuxcnc-simulation",
"verified_count": 27
}

View File

@@ -0,0 +1,71 @@
{
"capabilities": [
"static_comp",
"pin",
"param",
"function",
"variable",
"option",
"thread_contract"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"existing_report": {
"blocked_host_dynamic_loaders": 29,
"implementation_status": "verified",
"schema": "hal-component-manifest.v1",
"status": "partial"
},
"known_boundaries": [
"ClassicLadder/PLC runtime is P4-03",
"full 233-entry startup matrix is P8-02",
"release remains STOP_RELEASE"
],
"manifest": {
"components": 145,
"functions": 530,
"line_diagnostics": true,
"params": 140,
"pins": 1220,
"source_hash_required": true
},
"outputs": [
{
"bytes": 2535591,
"path": "coverage/hal-component-manifest.report.json",
"sha256": "8ee349639377ba653347a1fc29af51bfc723aa3fd4dfd25426a736375f6e9769"
},
{
"bytes": 13035,
"path": "scripts/generate_hal_component_manifest.py",
"sha256": "f589428b6abe9f84e02550075b81e130bb5dee5a545d487619bccca312c387e9"
},
{
"bytes": 2196,
"path": "scripts/test_hal_component_manifest.py",
"sha256": "bc79e37c6743a2d16bd26e5946c7b4f56833df6911b68d9c80a5d84ca737f789"
},
{
"bytes": 2626,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "bbe3f1e586b577aad418159d25cdcf9e8e55a9fab15d2a147b129d2ea0dadf1a"
}
],
"rejections": [
"dynamic_library",
"loadusr_host_process",
"device_path",
"network",
"undeclared_component",
"duplicate_declaration"
],
"report_sha256": "e90f377711697708f649146f08e4453bb4b64e63968cb79a6dc630bc60422b74",
"schema": "component-capability-report.v1",
"status": "verified",
"task_id": "P4-02",
"test": {
"command": "python3 scripts/test_hal_component_manifest.py",
"status": "verified",
"stderr": "...\n----------------------------------------------------------------------\nRan 3 tests in 0.518s\n\nOK\n",
"stdout": ""
}
}

View File

@@ -0,0 +1,100 @@
{
"blocked_codes": {
"kinematics_unregistered": 3,
"resource_missing": 194,
"resource_unindexed": 11
},
"boundaries": [
"missing/unindexed/unsupported resources remain BLOCKED",
"no basename substitution or host-path access",
"release ownership and official oracle remain outside simulation task"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"blocked": 208,
"entrypoints": 233,
"ready": 56,
"registered_entries": 264,
"resource_rows": 16093
},
"features": [
"264 registered configuration entries",
"233 entrypoint-compatible matrix preservation",
"READY/BLOCKED terminal classification",
"source/resource diagnostics retained",
"duplicate/capacity/status/hash fail-closed validation",
"Worker checkpoint state"
],
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "coverage/configuration-regression.report.json",
"sha256": "40b12bba25957c667988c704c51611bcdbd2608849d031fbb137708efaedeb0b"
},
{
"path": "coverage/full-configuration-startup-matrix.report.json",
"sha256": "1a97f5fd66e86a0e6bbd22832040a7f8d839ba12677a5800b72d047a2bdde9f9"
},
{
"path": "web/workspace/configuration-batch.mjs",
"sha256": "b5fb4c02519b903b2b9de95721349f03e60ceb4fc11a8fc9b8de076f86440657"
},
{
"path": "web/workspace/configuration-startup.mjs",
"sha256": "31f7ea442a320df735376811b0ebbf813f05c8212d9ddb6e70146850fa75f84b"
},
{
"path": "web/workspace/resource-resolver.mjs",
"sha256": "8578c373390445b943f362e2e8725f53537c9a94b028f45d25b6c8f25968f0d2"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"path": "web/worker/test_configuration_batch.mjs",
"sha256": "816668b6f3b2f1ed89fdfd0ccc3011d8a5df6007ce42faf55ffe33e7f2e5ea7a"
}
],
"report_sha256": "bad34cb4e3dc4a16ca7d268d3c7058115a0ac7890f8886b190b090fe41ebb900",
"sample": {
"batch_hash": "fnv1a64:8e61897622fda66f",
"blocked": 208,
"checkpoint_hash": "fnv1a64:a9a635219f779f25",
"native_state_hash": "fnv1a64:4aec15fc6ce0ca11",
"ready": 56,
"schema": "configuration-batch-s2-sample.v1",
"status": "verified",
"total": 264,
"wasm_state_hash": "fnv1a64:4aec15fc6ce0ca11",
"worker_hash": "fnv1a64:152b83c479037715"
},
"schema": "configuration-batch-s2-report.v1",
"status": "verified",
"task_id": "S2-04",
"test": {
"command": [
"node",
"web/worker/test_configuration_batch.mjs"
],
"returncode": 0,
"sample": {
"batch_hash": "fnv1a64:8e61897622fda66f",
"blocked": 208,
"checkpoint_hash": "fnv1a64:a9a635219f779f25",
"native_state_hash": "fnv1a64:4aec15fc6ce0ca11",
"ready": 56,
"schema": "configuration-batch-s2-sample.v1",
"status": "verified",
"total": 264,
"wasm_state_hash": "fnv1a64:4aec15fc6ce0ca11",
"worker_hash": "fnv1a64:152b83c479037715"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "7cbfc045422a9a28d3dc96e7751dc844fdeebae0b11ea6c7a7758e5bc2fcb531"
}
}

View File

@@ -0,0 +1,123 @@
{
"boundaries": [
"#INCLUDE and HAL variable/continuation parsing are verified",
"runtime is correctly BLOCKED on missing linuxcnc.var/tool.tbl",
"no resource substitution or static READY promotion is fabricated",
"official oracle and other configuration gaps remain"
],
"checks": {
"hal_variable_preflight": {
"record_count": 72,
"status": "verified"
},
"include_graph": {
"status": "verified"
},
"missing_resource_diagnostic": {
"status": "verified"
},
"ready_promotion_guard": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_configuration_corexy_s7_05.mjs"
],
"returncode": 0,
"sample": {
"boundaries": [
"static HAL preflight is verified",
"runtime remains BLOCKED on missing linuxcnc.var/tool.tbl",
"no resource substitution or READY promotion is fabricated"
],
"entrypoint": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"hal_preflight": {
"blocked_count": 0,
"record_count": 72,
"status": "ready"
},
"include_graph": [
"linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"linuxcnc/configs/sim/axis/corexy/corexy_base.inc"
],
"runtime_startup": {
"blocked_resources": [
"linuxcnc/configs/sim/axis/corexy/linuxcnc.var",
"linuxcnc/configs/sim/axis/corexy/tool.tbl"
],
"state": "BLOCKED",
"state_hash": "fnv1a64:108a2d7be9d26549",
"status": "blocked"
},
"schema": "configuration-corexy-s7-05-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "61d8a36e898b55e0fe8ef8bbd33617056711dc027d4cb2a365b1ef9042777237"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 8015,
"path": "coverage/authoritative-kinematics-s7-04.report.json",
"sha256": "7de88db2fa7e16bec11f18fd04e6328b243b0c3a3e419ebe2cfba6e40b47e423"
},
{
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"sha256": "eefde49a278a077e374b751d0d0ed59b1294ce399a757a665e3cc14f569f7656"
},
{
"bytes": 222,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a"
},
{
"bytes": 1745,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_base.inc",
"sha256": "445bd74b1964662c6f33e96269ce912002ed17b2b52ed137e8cd569c7098d0c6"
},
{
"bytes": 3714,
"path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal",
"sha256": "51410ad61511b2de688f879fceb8e888856519e546a3273b4d7691df27f678ab"
},
{
"bytes": 5566,
"path": "web/workspace/ini-parser.mjs",
"sha256": "e22b7084d27ab4f042eefcae85fa1b34c2cfb6c40c29eabcb0e2ce51d1a124c4"
},
{
"bytes": 3049,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "5ff70d4d42eacc86dac942fc5a6748b7c67683ca6f144b3116b91fbac1b91aec"
},
{
"bytes": 11066,
"path": "web/workspace/configuration-startup.mjs",
"sha256": "d71bb7c612d8c7733c0db4e17b136875f1aeade7afc314e05ada67a309269e47"
},
{
"bytes": 3380,
"path": "web/worker/test_configuration_corexy_s7_05.mjs",
"sha256": "c318507aa275d9123def626687f63dd5cb805d2ca6cf99c32b9b8a300cac7b7b"
}
],
"report_sha256": "8632819d3f44c496a21f5bdb695b7a2b393d61782d524b86674ca8726520d0ee",
"schema": "configuration-corexy-s7-05-report.v1",
"scope": {
"entrypoint": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"runtime_state": "BLOCKED_MISSING_RESOURCE",
"source_compatible": [
"#INCLUDE",
"HAL continuation",
"INI section variable expansion"
]
},
"status": "verified",
"task_id": "S7-05"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,232 @@
{
"checks": {
"deterministic_startup_and_resource_hash": {
"status": "passed"
},
"locked_contract_unchanged": {
"abi_protocol_schema_changes": false,
"status": "verified"
},
"missing_duplicate_ambiguous_illegal": {
"status": "passed"
},
"native_wasm_worker_compatibility": {
"status": "passed"
},
"source_line_diagnostics": {
"status": "passed"
},
"state_sequence": {
"status": "passed",
"terminal_states": [
"TASK_READY",
"BLOCKED"
]
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"direct_inputs": [
{
"bytes": 7257,
"path": "docs/linuxcnc-web-wasm-contracts.md",
"role": "contract",
"sha256": "748b9ade5f27805b0e2f5710ef55f9ead4f9d164d9ba7ed9b0992bc84891e464",
"status": "present"
},
{
"bytes": 5792,
"path": "web/workspace/runtime.mjs",
"role": "workspace_runtime",
"sha256": "4553e5e7c7b3f869b8fb3ce2fd344f22dbbacb0607e4fbdae790dc8911c92aa3",
"status": "present"
},
{
"bytes": 5036,
"path": "web/workspace/ini-parser.mjs",
"role": "ini_parser",
"sha256": "e7b1cd12773f0c3e92cf76c0021e43888d586a475900c4acfa4234bbee4fdea6",
"status": "present"
},
{
"bytes": 4870,
"path": "web/workspace/resource-resolver.mjs",
"role": "resource_resolver",
"sha256": "8578c373390445b943f362e2e8725f53537c9a94b028f45d25b6c8f25968f0d2",
"status": "present"
},
{
"bytes": 4116,
"path": "coverage/resource-resolver.report.json",
"role": "resolver_report",
"sha256": "80a182192c7b710d2d8eab9536dfdc44538ee87414a020a17cb93a4b5f708e27",
"status": "present"
}
],
"entrypoints": [
{
"entrypoint": "config/main.ini",
"resource_graph_hash": "fnv1a64:bfdf8ef907916bcd",
"state": "TASK_READY",
"state_hash": "fnv1a64:4aec15fc6ce0ca11",
"status": "READY"
},
{
"code": "resource_missing",
"entrypoint": "config/main.ini",
"line": 2,
"source": "config/main.ini",
"status": "BLOCKED"
},
{
"code": "resource_duplicate",
"entrypoint": "config/duplicate.ini",
"line": 3,
"source": "config/duplicate.ini",
"status": "BLOCKED"
},
{
"code": "resource_host_path",
"entrypoint": "config/main.ini",
"line": 2,
"source": "config/main.ini",
"status": "BLOCKED"
},
{
"code": "resource_ambiguous",
"entrypoint": "config/main.ini",
"line": 2,
"source": "config/main.ini",
"status": "BLOCKED"
},
{
"code": "hal_component_undeclared",
"entrypoint": "config/main.ini",
"line": 1,
"source": "config/machine.hal",
"status": "BLOCKED"
}
],
"failure_samples": [],
"implementation_status": "verified",
"known_boundaries": [
"P3-01 interpreter/modal closure",
"full 233-entry matrix remains P8-02"
],
"outputs": [
{
"bytes": 10750,
"path": "web/workspace/configuration-startup.mjs",
"role": "startup_state_machine",
"sha256": "31f7ea442a320df735376811b0ebbf813f05c8212d9ddb6e70146850fa75f84b",
"status": "present"
},
{
"bytes": 54158,
"path": "web/worker/sim-session.mjs",
"role": "worker_integration",
"sha256": "7740507c712d262be2b0483febf43bbd5af23810b60cd2887fff0e70ec5129f0",
"status": "present"
},
{
"bytes": 5624,
"path": "web/worker/test_configuration_startup_runtime.mjs",
"role": "worker_test",
"sha256": "eaed8d84d648f589ec11d785d8cf84476723edcd97d77eff0fff460b425d5f5c",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "8b1c8d67a41dfb9841b36ef67a0c188f67b502336c9866dba13680e19617903c",
"schema": "configuration-startup-runtime-report.v1",
"startup_observation": {
"resource_graph_hash": "fnv1a64:bfdf8ef907916bcd",
"state_hash": "fnv1a64:4aec15fc6ce0ca11",
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0cdc5e8bf5cc411200027118fe3bef3d172aef0fc305dcc898822635b768f516"
},
"startup_schema": "configuration-startup-runtime.v1",
"states": [
"NEW",
"MOUNTED",
"PARSED",
"RESOLVED",
"CORE_CREATED",
"HAL_READY",
"TASK_READY",
"BLOCKED"
],
"status": "passed",
"task_id": "P2-04",
"tests": {
"native_core": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"status": "passed"
},
"wasm_session": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e9b7db900acf25a02bd885e9ee9c719fb2e7ba8ff82454a9d9e60c3fd1369e58"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e9b7db900acf25a02bd885e9ee9c719fb2e7ba8ff82454a9d9e60c3fd1369e58"
},
"status": "passed"
},
"worker_session": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "4ecfdf1a0befe56aefecf5172f38872804eef97c860b9407a0d1ee72630d2688"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "4ecfdf1a0befe56aefecf5172f38872804eef97c860b9407a0d1ee72630d2688"
},
"status": "passed"
},
"worker_startup": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0cdc5e8bf5cc411200027118fe3bef3d172aef0fc305dcc898822635b768f516"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0cdc5e8bf5cc411200027118fe3bef3d172aef0fc305dcc898822635b768f516"
},
"status": "passed"
}
}
}

View File

@@ -0,0 +1,193 @@
{
"boundaries": [
"corexy_by_kins and corexy_by_hal only",
"HAL path uses explicit corexy case adapter over trivkins",
"official kinematics oracle remains blocked",
"other families remain queued"
],
"checks": {
"hal_command_boundary": {
"accepted": [
"show",
"delsig"
],
"status": "verified",
"unknown_remains_blocked": true
},
"hal_path": {
"status": "verified"
},
"joints": {
"expected": [
6,
2,
3
],
"status": "verified"
},
"kins_path": {
"status": "verified"
},
"mode_parity": {
"status": "verified"
},
"recovery_parity": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_corexy_dual_path_s8_05.mjs"
],
"returncode": 0,
"sample": {
"boundary": "native/WASM corexy HAL formula oracle remains separately source-verified; other case families remain queued",
"cases": [
{
"checkpoint_hash": "fnv1a64:b0f04b779e25f343",
"endpoint_hash": "fnv1a64:ffc1d01c492a66c8",
"hal_records": 72,
"joints": [
6,
2,
3
],
"mode": "kins",
"mode_parity": {
"actual_hash": "fnv1a64:ffc1d01c492a66c8",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:ffc1d01c492a66c8"
},
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"recovery": {
"actual_hash": "fnv1a64:eef1346aa8381fbf",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:eef1346aa8381fbf"
}
},
{
"checkpoint_hash": "fnv1a64:85ad3b1aa1b51951",
"endpoint_hash": "fnv1a64:ffc1d01c492a66c8",
"hal_records": 100,
"joints": [
6,
2,
3
],
"mode": "hal",
"mode_parity": {
"actual_hash": "fnv1a64:ffc1d01c492a66c8",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:ffc1d01c492a66c8"
},
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini",
"recovery": {
"actual_hash": "fnv1a64:eef1346aa8381fbf",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:eef1346aa8381fbf"
}
}
],
"distinction": {
"hal": "trivkins + corexy_by_hal routes Cartesian commands through alpha/beta HAL transform",
"kins": "corexykins homes motor joints directly"
},
"schema": "corexy-dual-path-s8-05-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "89b7b2c768d1de0c51072b13bc2d5f1b629ef76037127ecee60bd6244eee7be4"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 4511,
"path": "coverage/minimal-xyz-vertical-s8-04.report.json",
"sha256": "093555ed13ad742a90a621bf876e1106cd0ef79a449ea13e2ae38eaa75290d12",
"status": "present"
},
{
"bytes": 3620,
"path": "coverage/corexy-hal.report.json",
"sha256": "190b9a8276fe361f211c5f053aeb84c151755040ec62d74383979181bdb76462",
"status": "present"
},
{
"bytes": 222,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a",
"status": "present"
},
{
"bytes": 349,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini",
"sha256": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f",
"status": "present"
},
{
"bytes": 1745,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_base.inc",
"sha256": "445bd74b1964662c6f33e96269ce912002ed17b2b52ed137e8cd569c7098d0c6",
"status": "present"
},
{
"bytes": 3714,
"path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal",
"sha256": "51410ad61511b2de688f879fceb8e888856519e546a3273b4d7691df27f678ab",
"status": "present"
},
{
"bytes": 1598,
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal",
"sha256": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1",
"status": "present"
},
{
"bytes": 1666,
"path": "linuxcnc/configs/sim/axis/corexy/linuxcnc.var",
"sha256": "163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae",
"status": "present"
},
{
"bytes": 174,
"path": "linuxcnc/configs/sim/axis/corexy/tool.tbl",
"sha256": "52411645e06c20cf0e6c469e544a4d17de07d03254a6cb784e2468704e0a4a9e",
"status": "present"
},
{
"bytes": 8490,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "5b17353cf2446c98d0eb04e6dafb8a3876f74b8f527e6721a577db1e71deaadc",
"status": "present"
},
{
"bytes": 3395,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "94d80fd9a4e51492217ddce2b93157739df39cb7670437e8b5a6db5e58f874ae",
"status": "present"
},
{
"bytes": 9332,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "dcf390d548074d75837086cd2c55d18ee8172690dae74e6d63bc6811efab330f",
"status": "present"
},
{
"bytes": 4138,
"path": "web/worker/test_corexy_dual_path_s8_05.mjs",
"sha256": "e1f7e31f6f471eda4b2cfa1680573116c1b766161a7217b7cc8c184593711adb",
"status": "present"
}
],
"report_sha256": "dbb73935e403b9128dcd23bffb58e37977941c053b23a9c46df39270da1306f9",
"schema": "corexy-dual-path-s8-05-report.v1",
"status": "verified",
"task_id": "S8-05"
}

View File

@@ -0,0 +1,124 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergence": null,
"known_boundaries": [
"P8-04 browser/performance matrix",
"P8-05 delivery closure"
],
"modes": [
"1x",
"fast",
"single_step",
"recover"
],
"outputs": [
{
"bytes": 2504,
"path": "web/worker/test_sim_scheduler.mjs",
"sha256": "f8fe8a6388f9ff8f4d696949fc6065962698d441f1d7879053aba6b3868d692a"
},
{
"bytes": 1698,
"path": "web/worker/test_trace_export.mjs",
"sha256": "de9235e179e98cd41a6cf66810dd1b511545652027b8f922eeeb705434d255bf"
},
{
"bytes": 2298,
"path": "web/worker/test_task_program_state.mjs",
"sha256": "683e0af5c1e5cb522cd336120b18ed06498cf3ab5d74c595e85072b4ffe0bf1a"
},
{
"bytes": 1973,
"path": "web/worker/test_recovery_offline_faults.mjs",
"sha256": "e7e2b7c6022b7b8e45cef1acbffb49987ced552719a76497c3a433fd92126f6e"
}
],
"repeat_runs": 3,
"report_sha256": "8793b10f3077e4972fb433774b027fbc7bfe0108447757df4254239a4b8dedbb",
"schema": "determinism-report.v1",
"stable": true,
"status": "verified",
"task_id": "P8-03",
"tests": {
"web/worker/test_recovery_offline_faults.mjs": [
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "912523ab087f74502eb39173e61e687b63b413cb9aaa886a615455ce209afbf8"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "912523ab087f74502eb39173e61e687b63b413cb9aaa886a615455ce209afbf8"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "912523ab087f74502eb39173e61e687b63b413cb9aaa886a615455ce209afbf8"
}
],
"web/worker/test_sim_scheduler.mjs": [
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "51af934b1551816f8be723af9722d9ebb28d99964c2f2c7198aba2b36577d2ce"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "51af934b1551816f8be723af9722d9ebb28d99964c2f2c7198aba2b36577d2ce"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "51af934b1551816f8be723af9722d9ebb28d99964c2f2c7198aba2b36577d2ce"
}
],
"web/worker/test_task_program_state.mjs": [
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f25cd8fd71c5a90ddf06f167179e076caa011e283b632a694a87d863b390c033"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f25cd8fd71c5a90ddf06f167179e076caa011e283b632a694a87d863b390c033"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f25cd8fd71c5a90ddf06f167179e076caa011e283b632a694a87d863b390c033"
}
],
"web/worker/test_trace_export.mjs": [
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e0e8acc66de263d74332826030eb93f35b16a5c55da565f4a4c0919e86c694f7"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e0e8acc66de263d74332826030eb93f35b16a5c55da565f4a4c0919e86c694f7"
},
{
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e0e8acc66de263d74332826030eb93f35b16a5c55da565f4a4c0919e86c694f7"
}
]
}
}

View File

@@ -0,0 +1,217 @@
{
"boundaries": [
"real encoder transport and physical safety circuits remain REAL-EXCLUDED",
"nonfinite/range/unsafe commands fail closed"
],
"capacities": {
"ack_entries": 64,
"encoders": 8,
"max_tick_step": 1000000
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
"fixed-tick quadrature encoder and index pulse",
"encoder position/velocity/count scaling",
"coolant mist/flood/lube interlock gating",
"door and latched interlock fault/recovery",
"deterministic IO ack issue/duplicate/timeout/late/abort",
"native/WASM byte-identical state sample",
"Worker checkpoint/replay device state"
],
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "wasm-core/include/sim_device_io.h",
"sha256": "5a7d7cc3b335497f09fd8b824ad10f40595c6027d2c6635507e78b88841ebe0a"
},
{
"path": "wasm-core/src/sim_device_io.c",
"sha256": "62d3ecee8a1f09a4d06e1f5a4f48fbdd642373943522e4ea07d612dd1aebfd93"
},
{
"path": "wasm-core/tests/sim_device_io_test.c",
"sha256": "2696747c654a4bf258ad4b618548b9413ee72e7ef8f9b600d20f5ceb826c8192"
},
{
"path": "web/worker/device-io.mjs",
"sha256": "e5714b11283e1b6adcc15d96b340d4ca9795ec5efe6fff288464c21f0c76349a"
},
{
"path": "web/worker/test_device_io.mjs",
"sha256": "8b95591f5478738478efd8e26cbab8637df59d68a5fc8e4733de0ad3bf1fc336"
},
{
"path": "web/worker/io-ack.mjs",
"sha256": "a68fe56c8b8c7b44ff585a7c7c1fa5ca942f59197ef51651abf59ae4cc1eaec5"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "31a7e035c592f444d516bd423c760cf8ff04e513b2b2117b7c8a56d3300e9525"
},
{
"path": "linuxcnc/src/hal/components/sim_encoder.c",
"sha256": "dc40520ef2f718ccbe588cf61ca8518faf35582b32c66dae036c24e2b1fb9ec9"
},
{
"path": "linuxcnc/src/hal/components/encoder.c",
"sha256": "2c61ca53342cf58209d87041625e232cd6377c4c44e699de2e0047ea97a99a23"
},
{
"path": "linuxcnc/configs/sim/axis/cooling.hal",
"sha256": "4bf84dc7aa6748a8703a917b0da84ae529d70207845e8453348ad9cb1d26ae4c"
}
],
"report_sha256": "438eb2df1fd60944577c13cafbcc2879f2cefddc9bbc828992aa2e8f1f863b58",
"schema": "device-io-s2-report.v1",
"status": "verified",
"task_id": "S2-03",
"tests": {
"native": {
"command": [
"/home/mes006/linuxcncWebWASM/build-native/sim_device_io_test"
],
"returncode": 0,
"sample": {
"ack": {
"acked": 2,
"timed_out": 3
},
"canonical": {
"coolant": {
"flood": 0,
"lube": 0,
"mist": 1
},
"encoders": [
{
"count": 40,
"index_pulse": 1,
"position": 10,
"velocity": 10
},
{
"count": 0,
"index_pulse": 0,
"position": 0,
"velocity": 0
}
],
"safety": {
"door_open": 0,
"estop": 0,
"interlock_ok": 1,
"latched_fault": 0
},
"tick": 12
},
"coolant": {
"flood": 0,
"lube": 0,
"mist": 1
},
"encoder": {
"count": 40,
"index_pulse": 1,
"position": 10.0,
"velocity": 10.0
},
"safety": {
"interlock_ok": 1,
"recovery_epoch": 2
},
"schema": "device-io-s2-sample.v1",
"state_hash": 2331225012073024271,
"tick": 12
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
},
"native_wasm_byte_identical": true,
"wasm": {
"command": [
"node",
"/home/mes006/linuxcncWebWASM/build-wasm/sim_device_io_wasm_test.js"
],
"returncode": 0,
"sample": {
"ack": {
"acked": 2,
"timed_out": 3
},
"canonical": {
"coolant": {
"flood": 0,
"lube": 0,
"mist": 1
},
"encoders": [
{
"count": 40,
"index_pulse": 1,
"position": 10,
"velocity": 10
},
{
"count": 0,
"index_pulse": 0,
"position": 0,
"velocity": 0
}
],
"safety": {
"door_open": 0,
"estop": 0,
"interlock_ok": 1,
"latched_fault": 0
},
"tick": 12
},
"coolant": {
"flood": 0,
"lube": 0,
"mist": 1
},
"encoder": {
"count": 40,
"index_pulse": 1,
"position": 10.0,
"velocity": 10.0
},
"safety": {
"interlock_ok": 1,
"recovery_epoch": 2
},
"schema": "device-io-s2-sample.v1",
"state_hash": 2331225012073024271,
"tick": 12
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
},
"worker": {
"command": [
"node",
"/home/mes006/linuxcncWebWASM/web/worker/test_device_io.mjs"
],
"returncode": 0,
"sample": {
"checkpoint_hash": "fnv1a64:2fd430f34934440e",
"count": 40,
"schema": "device-io-worker-sample.v1",
"state_hash": "fnv1a64:d303b40b131396ff",
"status": "verified",
"tick": 12,
"worker_state_hash": "fnv1a64:128eb22bfba5d6f9",
"worker_tick": 2
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "2fe0ab9d322ad28fd18ac076a0e8a505ba4b789c7a686866c99c229d195ea7d7"
}
}
}

View File

@@ -0,0 +1,82 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"determinism": {
"delay_model": "60 rpm per logical IO tick",
"fixed_tick": true,
"random": false,
"replay_state_hash": true
},
"devices": [
"spindle",
"encoder",
"probe",
"limit",
"home",
"tool",
"coolant",
"estop"
],
"faults": [
"nonfinite",
"range",
"busy",
"inhibit",
"amp_fault",
"probe",
"limit",
"tool_fault",
"estop",
"recovery"
],
"known_boundaries": [
"IO command/ack timeout/recover orchestration is P4-05",
"real transport remains REAL-EXCLUDED"
],
"native": {
"command": "/home/mes006/linuxcncWebWASM/build-native/sim_io_test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"io-samples.v1\",\"pin\":{\"invalid_type\":-304,\"count\":67,\"functions\":1},\"spindle\":{\"limit\":-906,\"step\":0,\"speed\":0.000,\"at_speed\":1,\"tool_busy\":-910},\"tool\":{\"state\":0,\"current\":7,\"fault_clear\":-905},\"probe\":{\"status\":0,\"state\":2,\"position\":[1.000,2.000,3.000]},\"estop\":{\"command\":-904,\"recover_before_clear\":-904,\"recover\":0},\"state_hash\":3758173594264074653,\"repeat_hash\":3758173594264074653,\"canonical\":{\"estop\":0,\"fault\":0,\"fault_reason\":0,\"last_error\":0,\"probe\":{\"input\":1,\"position\":[1,2,3],\"state\":2,\"tick\":40,\"tripped\":1},\"ready\":1,\"recovery_epoch\":1,\"spindles\":[{\"at_speed\":1,\"brake\":1,\"command_rpm\":0,\"forward\":0,\"reverse\":0,\"speed_rpm\":0,\"tick\":40},{\"at_speed\":1,\"brake\":1,\"command_rpm\":0,\"forward\":0,\"reverse\":0,\"speed_rpm\":0,\"tick\":40}],\"tick\":40,\"tool\":{\"changed\":0,\"current\":7,\"prepared\":0,\"prepared_pocket\":3,\"prepared_tool\":7,\"prepare\":0,\"state\":0}}}\n"
},
"outputs": [
{
"bytes": 4423,
"path": "wasm-core/include/sim_io.h",
"sha256": "d84e9ab0bcf9ff138f8c8a57b28337605d731ff796577a8ab748d708f97daf9b"
},
{
"bytes": 27678,
"path": "wasm-core/src/sim_io.c",
"sha256": "2ceacdb168a1f6dddb36761b93f62e4c39b3a6249c0a91a740ecf924dce217b3"
},
{
"bytes": 11103,
"path": "web/worker/virtual-devices.mjs",
"sha256": "b6002fb4a0cbe2b8843388f8b541eb45a944ce42b1c7bfe4e6cd95d62a488b21"
},
{
"bytes": 2918,
"path": "web/worker/test_virtual_devices.mjs",
"sha256": "5efbc15f170d4d28cc205303aa971cb38a22f548ff652a6a779a77bc869b3f7e"
}
],
"report_sha256": "8e24c7d5cc3122ba9d3e596b6b847149fea08e81a46671e9f7022b44cd6b0a31",
"schema": "device-twin-report.v1",
"status": "verified",
"task_id": "P4-04",
"wasm": {
"command": "node build-wasm/sim_io_wasm_test.js",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"io-samples.v1\",\"pin\":{\"invalid_type\":-304,\"count\":67,\"functions\":1},\"spindle\":{\"limit\":-906,\"step\":0,\"speed\":0.000,\"at_speed\":1,\"tool_busy\":-910},\"tool\":{\"state\":0,\"current\":7,\"fault_clear\":-905},\"probe\":{\"status\":0,\"state\":2,\"position\":[1.000,2.000,3.000]},\"estop\":{\"command\":-904,\"recover_before_clear\":-904,\"recover\":0},\"state_hash\":3758173594264074653,\"repeat_hash\":3758173594264074653,\"canonical\":{\"estop\":0,\"fault\":0,\"fault_reason\":0,\"last_error\":0,\"probe\":{\"input\":1,\"position\":[1,2,3],\"state\":2,\"tick\":40,\"tripped\":1},\"ready\":1,\"recovery_epoch\":1,\"spindles\":[{\"at_speed\":1,\"brake\":1,\"command_rpm\":0,\"forward\":0,\"reverse\":0,\"speed_rpm\":0,\"tick\":40},{\"at_speed\":1,\"brake\":1,\"command_rpm\":0,\"forward\":0,\"reverse\":0,\"speed_rpm\":0,\"tick\":40}],\"tick\":40,\"tool\":{\"changed\":0,\"current\":7,\"prepared\":0,\"prepared_pocket\":3,\"prepared_tool\":7,\"prepare\":0,\"state\":0}}}\n"
},
"worker": {
"command": "node web/worker/test_virtual_devices.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "hash\":\"fnv1a64:510642507e89d608\"},{\"kind\":\"TOOL_CHANGE\",\"code\":\"sim_io_busy\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:6da38a64c8f3cc83\"},{\"kind\":\"SPINDLE_COMMAND\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:40e14e26ad660018\"},{\"kind\":\"IO_STEP\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:01c0c166f322d8b9\"},{\"kind\":\"TOOL_CHANGE\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:d84cf3425a981a27\"},{\"kind\":\"TOOL_CHANGED\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:cbf1eaa1831f21ee\"},{\"kind\":\"TOOL_ABORT\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:b7a56fa2a213fc05\"},{\"kind\":\"TOOL_PREPARE\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:6fb0c49ecae07f47\"},{\"kind\":\"TOOL_PREPARED\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:43cc546851442a12\"},{\"kind\":\"TOOL_CHANGE\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:98f6fd9f0502dfd4\"},{\"kind\":\"TOOL_CHANGED\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:cbf1eaa1831f21ee\"},{\"kind\":\"PROBE_CONFIG\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:5e242d5fbaacf88f\"},{\"kind\":\"PROBE_CONFIG\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:50dfd6d8da48dd52\"},{\"kind\":\"LIMIT_SET\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:0ebaebf42016a03a\"},{\"kind\":\"TOOL_FAULT\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c8f76e689ea70778\"},{\"kind\":\"TOOL_CLEAR_FAULT\",\"code\":\"sim_io_fault\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:a5e036e802202e30\"},{\"kind\":\"TOOL_FAULT\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:61239060f5ce1f6e\"},{\"kind\":\"TOOL_CLEAR_FAULT\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:f5ad019a121d11ea\"},{\"kind\":\"ESTOP\",\"code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"SPINDLE_COMMAND\",\"code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"ESTOP\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c103c846827f7ff5\"},{\"kind\":\"IO_RECOVER\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c94eac708756480a\"}],\"events\":25,\"state_hash\":\"fnv1a64:c94eac708756480a\",\"replay_state_hash\":\"fnv1a64:c94eac708756480a\",\"state_hash_equal\":true,\"final\":{\"ready\":true,\"estop\":false,\"fault\":false,\"fault_reason\":0,\"tick\":40,\"recovery_epoch\":1,\"spindle_count\":1,\"tool_capacity\":1001,\"spindles\":[{\"command_rpm\":0,\"speed_rpm\":0,\"at_speed\":true,\"enabled\":false,\"inhibit\":false,\"amp_fault\":false,\"brake\":true,\"orient\":false,\"locked\":false,\"is_oriented\":false,\"orient_angle\":0,\"orient_mode\":0,\"orient_fault\":0,\"index_enable\":false,\"revs\":40}],\"tool\":{\"state\":\"idle\",\"current\":7,\"prepared\":7,\"pocket\":3,\"prepare\":false,\"prepared_ack\":false,\"changed\":false,\"fault\":false,\"reason\":0},\"probe\":{\"state\":\"tripped\",\"type\":0,\"input\":true,\"tripped\":true,\"tick\":40,\"position\":{\"x\":1,\"y\":2,\"z\":3}},\"limits\":{\"x-positive\":true},\"last_error\":\"sim_io_ok\"}}\n"
}
}

View File

@@ -0,0 +1,87 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"diagnostics": {
"authoritative_worker": true,
"code": true,
"column": true,
"source_line": true,
"text": true
},
"known_boundaries": [
"state/HAL/IO/Python panels are P7-03",
"visual pose/toolpath view is P7-04",
"browser fault UX is P7-05"
],
"outputs": [
{
"bytes": 7905,
"path": "web/app/app.mjs",
"sha256": "65b46679e6ca0bc047522facdf8142ea7ea958e7dc0821f0425b48a714983d2d"
},
{
"bytes": 1337,
"path": "web/app/controls.mjs",
"sha256": "f964d0767a315d2a260d8b52354621bfb9d52bf572ec50d0481c05ccd2f9f787"
},
{
"bytes": 3340,
"path": "web/app/state-panel.mjs",
"sha256": "ba36d89346b99f467cfcb15590977792c49af2c0965b9030bc58e77c56dac1b2"
},
{
"bytes": 6766,
"path": "web/app/worker-client.mjs",
"sha256": "1106d03ccbd8f2f0f11d32965dc36a8438430eff8a35ce11695d00680f535bc6"
},
{
"bytes": 1172,
"path": "web/app/test_editor_workflow.mjs",
"sha256": "4f203ffbed987aa0e11996195c3b36e6f332c334bcdd92c27910fb737b91ff81"
},
{
"bytes": 2298,
"path": "web/worker/test_task_program_state.mjs",
"sha256": "683e0af5c1e5cb522cd336120b18ed06498cf3ab5d74c595e85072b4ffe0bf1a"
}
],
"report_sha256": "7dc81665b2e0947beb8c9cc9870e18351d50d62122adcf278f6c58db268cc9aa",
"schema": "editor-workflow-report.v1",
"status": "verified",
"task_id": "P7-02",
"tests": {
"editor": {
"command": "node web/app/test_editor_workflow.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "editor_workflow=passed calls=2 diagnostic=program_interpreter@7:4\n"
},
"frontend": {
"command": "node web/app/test_frontend_m1.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "frontend_m1=passed messages=3\n"
},
"program": {
"command": "node web/worker/test_task_program_state.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "task_program_state=passed replay=true restart=paused recovery=RUNNING\n"
}
},
"workflow": [
"connect",
"workspace_load",
"program_edit",
"program_load",
"MDI_EXECUTE",
"run",
"pause",
"resume",
"step",
"abort",
"restart"
]
}

View File

@@ -0,0 +1,164 @@
{
"boundaries": [
"endpoint semantic comparison excludes session-specific sequence/hash wrappers",
"official LinuxCNC endpoint oracle remains blocked",
"REAL-EXCLUDED host devices remain outside replay"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergence": null,
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "web/worker/endpoint-replay.mjs",
"sha256": "9480c1c5a6b4d2aefaf1e2a3697aa675bee262d50673ca2ffb16007135b51933"
},
{
"path": "web/worker/test_endpoint_replay_s4.mjs",
"sha256": "30c59942d86f86fd153e678dc4ab3e313d46a57fcb103a968e5d666685dca065"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "7740507c712d262be2b0483febf43bbd5af23810b60cd2887fff0e70ec5129f0"
},
{
"path": "web/worker/replay.mjs",
"sha256": "5e599e302edd0c5109a061ba9a421f77d7b87ad9cdb6a4183653afe5cd02f97c"
},
{
"path": "web/worker/trace-export.mjs",
"sha256": "9f775f6508359bd267f0b76299f19541f547f6282ea6d4569845bdc6f73f638b"
},
{
"path": "coverage/full-simulation-s4.report.json",
"sha256": "14605eaef03d6ab0547cbcd0cdff734eba80e4542b59f3267191e9bb1947686c"
}
],
"modes": [
"1x",
"fast",
"single_step",
"recover",
"trace_import"
],
"parity": {
"duplicate_operation_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"mode_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"recovery_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
},
"trace_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
}
},
"report_sha256": "4268e62153417c607ea3bb3d05ec0b3f07c7f4f197219c8d449ebd2065752474",
"sample": {
"checkpoint_hash": "fnv1a64:b70099ab328f28dc",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergence": null,
"modes": {
"fast": "fnv1a64:3459ec31624f8083",
"one_x": "fnv1a64:3459ec31624f8083",
"single_step": "fnv1a64:77ea1749321807b7"
},
"parity": {
"duplicate_operation_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"mode_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"recovery_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
},
"trace_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
}
},
"schema": "endpoint-replay-s4-sample.v1",
"status": "verified",
"trace_hash": "fnv1a64:fc6fdb86d832657a"
},
"schema": "endpoint-replay-s4-report.v1",
"status": "verified",
"task_id": "S4-02",
"test": {
"command": [
"node",
"web/worker/test_endpoint_replay_s4.mjs"
],
"returncode": 0,
"sample": {
"checkpoint_hash": "fnv1a64:b70099ab328f28dc",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergence": null,
"modes": {
"fast": "fnv1a64:3459ec31624f8083",
"one_x": "fnv1a64:3459ec31624f8083",
"single_step": "fnv1a64:77ea1749321807b7"
},
"parity": {
"duplicate_operation_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"mode_equal": {
"actual_hash": "fnv1a64:3459ec31624f8083",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:3459ec31624f8083"
},
"recovery_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
},
"trace_equal": {
"actual_hash": "fnv1a64:91fdb66a0b92c403",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:91fdb66a0b92c403"
}
},
"schema": "endpoint-replay-s4-sample.v1",
"status": "verified",
"trace_hash": "fnv1a64:fc6fdb86d832657a"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "1020fb001416b702431bfbdbf3ee0f18df0cde45d90f661303993922558aff72"
}
}

View File

@@ -25,24 +25,24 @@
"status": "present"
},
{
"bytes": 5715,
"bytes": 8105,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "2781c817de5f73150d9deb06e4e22044061dd53c8a978c88826d36c3a511356c",
"sha256": "029534f14dd2efa218390a05ba978193806f03394a860329555efe6b3aca1d42",
"status": "present"
},
{
"bytes": 4432,
"bytes": 7508,
"path": "web/app/worker-client.mjs",
"role": "frontend_source",
"sha256": "78cc6f75efa2930d22094735669ce8a78548a6c52019debbfba93838f4194f15",
"sha256": "0c75945ce5dc31e962e16a61fc17311dcc7195877dc4f00d36c23569a726f42a",
"status": "present"
},
{
"bytes": 2731,
"bytes": 3133,
"path": "web/app/styles.css",
"role": "frontend_source",
"sha256": "46bbe2246271ff56922a2765d921be9ca26c701e5579106ca1cad8538b065fd8",
"sha256": "e87cc8574a685fe00fa374bd231c092b547b2e7a87947d89a3a30d5bf98a6856",
"status": "present"
},
{
@@ -66,21 +66,21 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 4914,
"path": "coverage/python-worker-bridge.report.json",
"role": "python_worker_bridge",
"sha256": "13e4f85abaf34c4a57d3a96143df2fa597df7e0531a515f79c487ea6711d77f6",
"sha256": "7833c9ab6df1bdccfc2f8cf5304826ed7ef675653cbbd092c2f235986e2ec61d",
"status": "present"
},
{
"bytes": 3685,
"path": "coverage/workspace-session-integration.report.json",
"role": "workspace_session_integration",
"sha256": "19a5701dd49877153cfa0dc7fa886b5c0e72baadb5023143cef61bc9f94ca13b",
"sha256": "92f571fff86f378726ea4009ab40c80b3a0fbdf36f7794f65031b18598e2bf89",
"status": "present"
},
{
@@ -101,24 +101,24 @@
"status": "present"
},
{
"bytes": 5715,
"bytes": 8105,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "2781c817de5f73150d9deb06e4e22044061dd53c8a978c88826d36c3a511356c",
"sha256": "029534f14dd2efa218390a05ba978193806f03394a860329555efe6b3aca1d42",
"status": "present"
},
{
"bytes": 4432,
"bytes": 7508,
"path": "web/app/worker-client.mjs",
"role": "frontend_source",
"sha256": "78cc6f75efa2930d22094735669ce8a78548a6c52019debbfba93838f4194f15",
"sha256": "0c75945ce5dc31e962e16a61fc17311dcc7195877dc4f00d36c23569a726f42a",
"status": "present"
},
{
"bytes": 2731,
"bytes": 3133,
"path": "web/app/styles.css",
"role": "frontend_source",
"sha256": "46bbe2246271ff56922a2765d921be9ca26c701e5579106ca1cad8538b065fd8",
"sha256": "e87cc8574a685fe00fa374bd231c092b547b2e7a87947d89a3a30d5bf98a6856",
"status": "present"
},
{
@@ -130,7 +130,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "5180544f934f6a9a348ac321c1a9ef8a9b830ed416caef844c9e3a3d55b75cef",
"report_sha256": "dbe633bea85b155e52f126cbb1feb5aaa19f5248bf26a17200315f94ad00c7b3",
"schema": "frontend-m1.v1",
"smoke": {
"exit_code": 0,

View File

@@ -41,21 +41,21 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 4468,
"path": "coverage/frontend-m1.report.json",
"role": "frontend_m1",
"sha256": "193c5cb609e19c5256d507e7e5dce1b9df725df7dddf2f868b5b3f2e397feab5",
"sha256": "632637f904164182140010f092546b1e9e860eb8a9b6bdfcb65f2777a4fe0e64",
"status": "present"
},
{
"bytes": 11813,
"path": "coverage/virtual-device-fault-matrix.report.json",
"role": "virtual_device_fault_matrix",
"sha256": "6969a4a0aee13c2a38f9d02fdfbb1456076a69f214c8cc2d1df84f438f373d51",
"sha256": "40e3e8d0f7facc5167930ae03410b0437920e4927b720cae6fff74fc6e82732f",
"status": "present"
},
{
@@ -69,31 +69,31 @@
"next_transition": "execute FE-M3 project and recovery workflow",
"outputs": [
{
"bytes": 1303,
"bytes": 1337,
"path": "web/app/controls.mjs",
"role": "frontend_source",
"sha256": "020bc0da5bdc8de507c56dd27dc4a13eed1b24726cd54ee629e68afd3827e075",
"sha256": "f964d0767a315d2a260d8b52354621bfb9d52bf572ec50d0481c05ccd2f9f787",
"status": "present"
},
{
"bytes": 2418,
"bytes": 4304,
"path": "web/app/state-panel.mjs",
"role": "frontend_source",
"sha256": "f2fcb73f14ae90de851618f1fd8fec7e3d5246aff72eff740ce82a3ebc976a4d",
"sha256": "37bca21adf673ae04209f9defb6407dbbcf4e8cd967b8a6dd71fd899f9e352d2",
"status": "present"
},
{
"bytes": 5715,
"bytes": 8105,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "2781c817de5f73150d9deb06e4e22044061dd53c8a978c88826d36c3a511356c",
"sha256": "029534f14dd2efa218390a05ba978193806f03394a860329555efe6b3aca1d42",
"status": "present"
},
{
"bytes": 2731,
"bytes": 3133,
"path": "web/app/styles.css",
"role": "frontend_source",
"sha256": "46bbe2246271ff56922a2765d921be9ca26c701e5579106ca1cad8538b065fd8",
"sha256": "e87cc8574a685fe00fa374bd231c092b547b2e7a87947d89a3a30d5bf98a6856",
"status": "present"
},
{
@@ -105,7 +105,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "0c57f73691a827289247e294587721d4bf694024b24aca297a6d653cb8c3b58c",
"report_sha256": "9e20129559e077993830e58c6a88d34347b5bb178ad42de1cf6bf3d969889cc7",
"schema": "frontend-m2.v1",
"smoke": {
"exit_code": 0,

View File

@@ -32,21 +32,21 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 3416,
"path": "coverage/frontend-m2.report.json",
"role": "frontend_m2",
"sha256": "2f88ac3b6be9283ff4fd8e952ce93f508a42412dbc1f92298a893e8e8aaff15c",
"sha256": "88e3ba635335da23e22d0b7b485c6b4195528de4dab1a98005609b0c837841db",
"status": "present"
},
{
"bytes": 3685,
"path": "coverage/workspace-session-integration.report.json",
"role": "workspace_session_integration",
"sha256": "19a5701dd49877153cfa0dc7fa886b5c0e72baadb5023143cef61bc9f94ca13b",
"sha256": "92f571fff86f378726ea4009ab40c80b3a0fbdf36f7794f65031b18598e2bf89",
"status": "present"
},
{
@@ -67,17 +67,17 @@
"status": "present"
},
{
"bytes": 1035,
"bytes": 1689,
"path": "web/app/recovery-panel.mjs",
"role": "frontend_source",
"sha256": "96b9b7405bfe911d167a8c6465bf80b694a7de69b118a2a59faaa562f30bd4a0",
"sha256": "e7b6951c9fbbfd6464ad9bf4c39bac7fde244bc7a50a714692224a707eccb495",
"status": "present"
},
{
"bytes": 5715,
"bytes": 8105,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "2781c817de5f73150d9deb06e4e22044061dd53c8a978c88826d36c3a511356c",
"sha256": "029534f14dd2efa218390a05ba978193806f03394a860329555efe6b3aca1d42",
"status": "present"
},
{
@@ -89,7 +89,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "740f81de42580a39b2232966812588f1b44f0de21bcc153d18985e20ae641998",
"report_sha256": "d12aa2f0626d2e2353f3f03737eb800a7d2531039e3932d4710811a4f90d6e96",
"schema": "frontend-m3.v1",
"smoke": {
"exit_code": 0,

View File

@@ -32,28 +32,28 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 3059,
"path": "coverage/frontend-m3.report.json",
"role": "frontend_m3",
"sha256": "0d5f968b71e488c5ec557468dbefe0a70a9b84b809e7c366d814289f4c553eab",
"sha256": "af37ac9dfdf692b1036e62d9e94bdc7d5855667f4db18eae87537ff41fc94c90",
"status": "present"
},
{
"bytes": 2535591,
"path": "coverage/hal-component-manifest.report.json",
"role": "hal_component_manifest",
"sha256": "8ee349639377ba653347a1fc29af51bfc723aa3fd4dfd25426a736375f6e9769",
"sha256": "d28deea84e03c71bd137825695fc1adf6d8af37fc8b8a74fe8e68105a193cd4b",
"status": "present"
},
{
"bytes": 11813,
"path": "coverage/virtual-device-fault-matrix.report.json",
"role": "virtual_device_fault_matrix",
"sha256": "6969a4a0aee13c2a38f9d02fdfbb1456076a69f214c8cc2d1df84f438f373d51",
"sha256": "40e3e8d0f7facc5167930ae03410b0437920e4927b720cae6fff74fc6e82732f",
"status": "present"
},
{
@@ -81,22 +81,22 @@
"status": "present"
},
{
"bytes": 1129,
"bytes": 2083,
"path": "web/app/machine-view.mjs",
"role": "frontend_source",
"sha256": "de06ccde2195eef7eb678c4fc1f583954632852155a4fe6b5e8eebf741972184",
"sha256": "b3e0e8a75790eac3b3f3ee959f9d65a43e0d154c8de55300db502e0828c9e082",
"status": "present"
},
{
"bytes": 1230,
"bytes": 1310,
"path": "web/app/test_frontend_m4.mjs",
"role": "frontend_source",
"sha256": "507d5a6daefac7de4764679399049666624215804bb06c365a214b44a094ac99",
"sha256": "e8a18358e82b63df0ef935ed760f68ae82290e5d0e53a9be21429214eb4d52b9",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "3944dfaee264ebd7fdba05abc194fa5c01ac4b332370b995e9221cdebd3562f4",
"report_sha256": "39995ee2f5cea423315a572b0cb3d122c8e400793f868a7e74bf2d42c6cf25e2",
"schema": "frontend-m4.v1",
"smoke": {
"exit_code": 0,

File diff suppressed because it is too large Load Diff

View File

@@ -44,7 +44,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -65,14 +65,14 @@
"bytes": 2535591,
"path": "coverage/hal-component-manifest.report.json",
"role": "hal_component_manifest",
"sha256": "8ee349639377ba653347a1fc29af51bfc723aa3fd4dfd25426a736375f6e9769",
"sha256": "d28deea84e03c71bd137825695fc1adf6d8af37fc8b8a74fe8e68105a193cd4b",
"status": "present"
},
{
"bytes": 3301,
"path": "coverage/frontend-m4.report.json",
"role": "frontend_m4",
"sha256": "38d26903f56c0e9b2235baf4fc96c6468b43c391e64c03a5df15c0c46d9b22f3",
"sha256": "213411ccef031c360b8db93c2ae2430019baa5b6ea541cd02896514172a11f6c",
"status": "present"
},
{
@@ -5014,7 +5014,7 @@
],
"next_transition": "execute REG-03 recovery and offline fault matrix",
"release_action": "STOP_RELEASE",
"report_sha256": "4b8817b2ba44bd2d1694c404c887b7a56799422123e02a714715c632f8035161",
"report_sha256": "6c1a936377dbae52a9626171a9d64a213cbdb4919b50a13da5e4bdde184e8df0",
"schema": "full-configuration-startup-matrix.v1",
"status": "partial",
"task_id": "REG-01"

View File

@@ -0,0 +1,803 @@
{
"audit_scope": {
"code_domains": [
"workspace",
"task",
"interpreter",
"TP/motion",
"kinematics",
"HAL/PLC/IO",
"Python/remap/VCP",
"recovery",
"Web/UI"
],
"p0_p8_task_count": 39,
"plan": "docs/linuxcnc-web-wasm-complete-simulation-plan.md",
"source_test_track": "S5-01..S5-08"
},
"boundaries": [
"verified module reports are not equivalent to full LinuxCNC behavior parity",
"official oracle, source/resource blockers and browser/OPFS blockers remain explicit",
"no ABI/protocol/schema/manifest changes are made by this audit"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"gap_ledger": [
{
"domain": "authoritative_runtime",
"evidence": [
"docs/linuxcnc-web-wasm-system-flow-and-execution-baseline.md",
"coverage/sim-task.report.json",
"coverage/linuxcnc-source-parity-s5.report.json"
],
"gap_id": "GAP-TASK-TICK-INTEGRATION",
"next_task": "S6-02",
"reason": "interpreter/TP/motion/kinematics/HAL/IO modules have isolated evidence, but the full authoritative sim_task fixed-tick chain is not yet proven against LinuxCNC source behavior",
"status": "OPEN"
},
{
"domain": "oracle",
"evidence": [
"coverage/native-oracle-closure.report.json",
"coverage/linuxcnc-source-parity-s5.report.json"
],
"gap_id": "GAP-OFFICIAL-NATIVE-ORACLE",
"next_task": "OWNER/CONTEXT INPUT REQUIRED",
"reason": "locked source lacks the official kinematics/recovery oracle and desktop native unit environment",
"status": "SOURCE_BLOCKED"
},
{
"domain": "configuration",
"evidence": [
"coverage/linuxcnc-source-config-s5.report.json",
"coverage/full-configuration-startup-matrix.report.json"
],
"gap_id": "GAP-CONFIG-RESOURCE-CLOSURE",
"next_task": "S6-03",
"reason": "981 resource rows and 208 configuration entries remain blocked by missing, unindexed or unregistered dependencies",
"status": "OPEN_BLOCKED"
},
{
"domain": "source_parity",
"evidence": [
"coverage/linuxcnc-source-parity-s5.report.json"
],
"gap_id": "GAP-SOURCE-ADAPTER-PENDING",
"next_task": "S6-04",
"reason": "G64/DO, full canonical logger, custom .comp, startup tool tables, ClassicLadder and motion-logger paths remain explicitly pending or excluded",
"status": "OPEN_BLOCKED"
},
{
"domain": "recovery_browser",
"evidence": [
"coverage/recovery-offline-fault-matrix.report.json",
"coverage/browser-matrix-closure.report.json"
],
"gap_id": "GAP-BROWSER-OPFS-CLOSURE",
"next_task": "S6-05",
"reason": "logical Worker recovery is verified, while browser OPFS crash, Safari/performance and physical browser oracle remain incomplete",
"status": "OPEN_BLOCKED"
}
],
"inputs": [
{
"bytes": 20277,
"path": "docs/linuxcnc-web-wasm-complete-simulation-plan.md",
"sha256": "b82611bc121a715ac17ce59d258547c7d202b309261ac0c27092ce17c662c08b",
"status": "present"
},
{
"bytes": 15650,
"path": "docs/linuxcnc-web-wasm-source-map.md",
"sha256": "cb407a32b95d0772564b262541c21eb556e02e5e36ade394a4498fc666e5a10a",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 459392,
"path": "coverage/linuxcnc-source-test-s5.report.json",
"sha256": "5e8be188f808cc95de2d18b76a33814ac045fb0d42a0f6bf8dc23af3af0fc7a5",
"status": "present"
},
{
"bytes": 12170,
"path": "coverage/linuxcnc-source-test-execution-s5.report.json",
"sha256": "49f911fc8ecf6ceaee25be2dc42b2f1ea331e3f0ac1a480335ffdd69c086d21b",
"status": "present"
},
{
"bytes": 13338,
"path": "coverage/linuxcnc-source-unit-execution-s5.report.json",
"sha256": "d8a3cd57479d6000beea9ca7fe02ae70523c58a4999ca2e52625e83f8ed0e1c9",
"status": "present"
},
{
"bytes": 12698,
"path": "coverage/linuxcnc-source-interp-s5.report.json",
"sha256": "d68df986bbb6e730b8fc1499146954776f782d677095d675f7a5dda6378af77a",
"status": "present"
},
{
"bytes": 14049,
"path": "coverage/linuxcnc-source-hal-s5.report.json",
"sha256": "2e4c2b7ba2eb63951f2a22a97e2769b05525b5881e74e2dab008db126fd2093c",
"status": "present"
},
{
"bytes": 15823,
"path": "coverage/linuxcnc-source-io-s5.report.json",
"sha256": "098e471ef105e6c363f6e48ae180a5c7ea7a4f38417da8b4c2194d00fe0844f9",
"status": "present"
},
{
"bytes": 134124,
"path": "coverage/linuxcnc-source-config-s5.report.json",
"sha256": "baf06fbaf9d657253ca29fcee549b33bda61fb777a73c0ffb29170c9b0ae7c26",
"status": "present"
},
{
"bytes": 10820,
"path": "coverage/linuxcnc-source-parity-s5.report.json",
"sha256": "08e93248dbd0fac9722ed12336546d2f63e4b80b3a2eee755cbda7f91f55b1ff",
"status": "present"
}
],
"next_execution": {
"depends_on": [
"S6-01"
],
"direct_gaps": [
"GAP-TASK-TICK-INTEGRATION"
],
"required_evidence": [
"native/WASM/Worker task snapshot parity",
"first divergent tick or explicit blocked reason",
"pause/resume/abort/recovery endpoint"
],
"status": "queued",
"task_id": "S6-02",
"title": "integrate authoritative sim_task fixed tick across interpreter/TP/motion/kinematics/HAL/IO"
},
"report_sha256": "10853a2327f1467e098a2119fb2130b73fb072a6bd9cb8ce3ef9ece14eee9c56",
"schema": "full-linuxcnc-simulation-gap-audit.v1",
"source_test_summary": {
"all_verified": true,
"configuration_entries": 264,
"s5_parity_report_sha256": "08e93248dbd0fac9722ed12336546d2f63e4b80b3a2eee755cbda7f91f55b1ff",
"tasks": [
"S5-01",
"S5-02",
"S5-03",
"S5-04",
"S5-05",
"S5-06",
"S5-07",
"S5-08"
]
},
"status": "verified",
"task_id": "S6-01",
"task_ledger": {
"counts": {
"EVIDENCE_BLOCKED": 1,
"EVIDENCE_VERIFIED": 36,
"NO_DIRECT_REPORT": 2
},
"tasks": [
{
"acceptance": "baseline 可重建,缺输入 fail closed",
"depends_on": "无",
"evidence": null,
"evidence_state": "NO_DIRECT_REPORT",
"planned_outputs": "context/source baseline",
"task_id": "P0-01",
"title": "冻结来源、工具链、schema 和 source hash"
},
{
"acceptance": "无孤儿、重复、未知 ID",
"depends_on": "P0-01",
"evidence": null,
"evidence_state": "NO_DIRECT_REPORT",
"planned_outputs": "coverage graph/manifest",
"task_id": "P0-02",
"title": "建立 source→feature→task→test 图"
},
{
"acceptance": "版本 mismatch 和字段缺失拒绝",
"depends_on": "P0-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/sim-contract.report.json",
"schema": "sim-contract-report.v1",
"sha256": "6ce37e8e6ccd4152d456a69fd764e82ee12dbb7fa9c215712019fa048c27160f",
"status": "passed",
"task_id": "P0-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "schema + compatibility tests",
"task_id": "P0-03",
"title": "固定 ABI/protocol/snapshot/event/workspace 契约"
},
{
"acceptance": "state hash、状态机、错误码一致",
"depends_on": "P0-03",
"evidence": {
"implementation_status": "verified",
"path": "coverage/sim-task.report.json",
"schema": "sim-task-report.v1",
"sha256": "768f8dd6af9a3ccfaa6f62ce8e7c2ab6bcb4af77036d1098feb7d344b96091d1",
"status": "passed",
"task_id": "P1-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "Task state/native/WASM tests",
"task_id": "P1-01",
"title": "建立 `sim_task.v1` authoritative 状态对象"
},
{
"acceptance": "快速/1x/单步终点一致",
"depends_on": "P1-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/sim-scheduler.report.json",
"schema": "sim-scheduler-report.v1",
"sha256": "df5699b9cd4f15c3d6351ab172b21af579ffbec8fad90cee3d00043418581d36",
"status": "passed",
"task_id": "P1-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "scheduler + tick golden",
"task_id": "P1-02",
"title": "固定 `sim_step` 调度顺序和 tick budget"
},
{
"acceptance": "operation replay 不重复副作用",
"depends_on": "P1-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/sim-ledger.report.json",
"schema": "sim-ledger-report.v1",
"sha256": "724268cac1ee78a63c14c8660c24ebe55458051ba24200ed9bdbc303a2f5772c",
"status": "passed",
"task_id": "P1-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "ledger/replay tests",
"task_id": "P1-03",
"title": "接入 command ledger、幂等和 abort"
},
{
"acceptance": "当前行、模态、程序状态可观察",
"depends_on": "P1-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/sim-runner.report.json",
"schema": "sim-runner-report.v1",
"sha256": "e54c4bffcd25c60346bd5ad73a36393b1350dd5ba18f6bd4962b60851f3ba762",
"status": "passed",
"task_id": "P1-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "Worker/native/WASM report",
"task_id": "P1-04",
"title": "将现有 G-code/MDI runner 接入 Task snapshot"
},
{
"acceptance": "路径、编码、配额、事务错误稳定",
"depends_on": "P1-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/workspace-runtime.report.json",
"schema": "workspace-runtime-report.v1",
"sha256": "3ee78c0fa0fce5c1b1658a4d7b13a993c0bf053010c77d006d7d9a78a7bfb3b1",
"status": "passed",
"task_id": "P2-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "workspace runtime",
"task_id": "P2-01",
"title": "虚拟 POSIX/Workspace API"
},
{
"acceptance": "行号、循环、缺失资源可诊断",
"depends_on": "P2-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/ini-parser.report.json",
"schema": "ini-parser-report.v1",
"sha256": "1d542427354419bcd897c3f05dc3119aa81157abaa740edfb4a9b38e65103a3c",
"status": "passed",
"task_id": "P2-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "parser/resource graph",
"task_id": "P2-02",
"title": "INI/include/变量解析器"
},
{
"acceptance": "所有依赖可定位、不静默替换",
"depends_on": "P2-01",
"evidence": {
"implementation_status": "verified",
"path": "coverage/resource-resolver.report.json",
"schema": "resource-resolver-report.v1",
"sha256": "4e3830a05f43c2cb1c65b71d597e4d16264d2cc56972c1422f783ba85d4da78d",
"status": "passed",
"task_id": "P2-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "config resource graph",
"task_id": "P2-03",
"title": "HAL/工具表/参数/程序/Python/VCP/CLP resolver"
},
{
"acceptance": "入口只进入 READY 或 BLOCKED",
"depends_on": "P2-02/P2-03/P1-02",
"evidence": {
"implementation_status": "verified",
"path": "coverage/configuration-startup-runtime.report.json",
"schema": "configuration-startup-runtime-report.v1",
"sha256": "6990bf07dabb06c82e21dd022ff7ae149af8c51e42aa443d465a70c9fa315f59",
"status": "passed",
"task_id": "P2-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "startup resolver/233-entry report",
"task_id": "P2-04",
"title": "统一配置启动状态机"
},
{
"acceptance": "block、错误列和 modal hash 一致",
"depends_on": "P1-04",
"evidence": {
"implementation_status": null,
"path": "coverage/rs274-interpreter-closure.report.json",
"schema": "rs274-interpreter-closure-report.v1",
"sha256": "f89b09eb912bcca4f75cf0392b889e0051fcdc61b6b2f14663c72fca63b8f608",
"status": "verified",
"task_id": "S1-01A"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "native/WASM interpreter oracle",
"task_id": "P3-01",
"title": "rs274 grammar/modal/parameter 完整闭环"
},
{
"acceptance": "深度、预算、异常边界完整",
"depends_on": "P3-01/P5-02",
"evidence": {
"implementation_status": null,
"path": "coverage/o-word-runtime.report.json",
"schema": "o-word-runtime-report.v1",
"sha256": "c9b02d51f2ba5a1a1248ec75d52f15feac65d389dd60dda198ee1844d35b50de",
"status": "verified",
"task_id": "P3-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "interpreter golden",
"task_id": "P3-02",
"title": "O-word、子程序、循环、宏和过滤器"
},
{
"acceptance": "segment 顺序、速度和首差 tick",
"depends_on": "P1-02/P3-01",
"evidence": {
"implementation_status": null,
"path": "coverage/tp-blend.report.json",
"schema": "tp-blend-report.v1",
"sha256": "a4387c31f508297bdd28bd8eb432e9f9113cf505fb5aa711d158720b291df2f6",
"status": "verified",
"task_id": "P3-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "TP golden/diff report",
"task_id": "P3-03",
"title": "canonical queue、TP 前瞻、blend/exact-stop"
},
{
"acceptance": "run/pause/resume/step/abort 可恢复",
"depends_on": "P1-03/P3-01",
"evidence": {
"implementation_status": null,
"path": "coverage/task-program-state.report.json",
"schema": "task-program-state-report.v1",
"sha256": "6b22540591a974f8d648a70287412ecdefd9114b1f63095873154983d8d3d659",
"status": "verified",
"task_id": "P3-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "command golden",
"task_id": "P3-04",
"title": "Task mode、MDI、program state machine"
},
{
"acceptance": "轴/关节、estop、limit、home 一致",
"depends_on": "P3-03",
"evidence": {
"implementation_status": null,
"path": "coverage/motion-state.report.json",
"schema": "motion-state-report.v1",
"sha256": "20a48fbf735b184b5211be6d0487fcb1637060af91ddb59f43f7d82b689e9dd6",
"status": "verified",
"task_id": "P3-05"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "motion state/故障矩阵",
"task_id": "P3-05",
"title": "motion、jog、override、home、limits、following error"
},
{
"acceptance": "forward/inverse/branch/limits",
"depends_on": "P3-05",
"evidence": {
"implementation_status": null,
"path": "coverage/kinematics-base.report.json",
"schema": "kinematics-base-report.v1",
"sha256": "c836235f11bb0c1afebe4937c776de88cbeb2ac5e5081ac0784a97aa40c36809",
"status": "verified",
"task_id": "P3-06"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "registry + native/WASM tests",
"task_id": "P3-06",
"title": "kinematics registry 和 trivkins/gantry/CoreXY"
},
{
"acceptance": "singularity、非有限、缺 oracle 明确",
"depends_on": "P3-06",
"evidence": {
"implementation_status": null,
"path": "coverage/advanced-kinematics.report.json",
"schema": "advanced-kinematics-report.v1",
"sha256": "b4b649631b120f2a9f94648a7f9ee24386da9fa85224f1500e0e43784cfd8bdc",
"status": "verified",
"task_id": "P3-07"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "每族 report/golden",
"task_id": "P3-07",
"title": "5/6-axis、TRT、机器人、并联和 switch/user kins"
},
{
"acceptance": "顺序、类型、重复、未知组件 fail closed",
"depends_on": "P2-03/P1-02",
"evidence": {
"implementation_status": null,
"path": "coverage/hal-graph.report.json",
"schema": "hal-graph-report.v1",
"sha256": "2fe96f9b3ae0e6143be95c0a9378f40147eb2e2678c23de3d92f19cd8b6b0fc9",
"status": "verified",
"task_id": "P4-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "HAL graph/runtime",
"task_id": "P4-01",
"title": "HAL graph/twopass/pin/signal/thread/function"
},
{
"acceptance": "不动态加载、不访问宿主",
"depends_on": "P4-01",
"evidence": {
"implementation_status": null,
"path": "coverage/component-capability.report.json",
"schema": "component-capability-report.v1",
"sha256": "93a109d165c5b10a799aa8ef5fff1d5a03f50929ac3094bc73f6d4e3a1b2b949",
"status": "verified",
"task_id": "P4-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "component manifest/tests",
"task_id": "P4-02",
"title": "静态 `.comp` 组件和能力 manifest"
},
{
"acceptance": "scan 顺序、寄存器、故障可回放",
"depends_on": "P4-01",
"evidence": {
"implementation_status": null,
"path": "coverage/plc-runtime.report.json",
"schema": "plc-runtime-report.v1",
"sha256": "dcc892df8a3d9d194213af541b9003e9c58f39bdde4066ec5265bcb17f29bcf3",
"status": "verified",
"task_id": "P4-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "PLC runtime/report",
"task_id": "P4-03",
"title": "ClassicLadder/采样/触发/背压"
},
{
"acceptance": "延迟、故障、恢复、hash 一致",
"depends_on": "P4-01/P3-05",
"evidence": {
"implementation_status": null,
"path": "coverage/device-twin.report.json",
"schema": "device-twin-report.v1",
"sha256": "11a818854805b5b80e4de5dae6158b6e588010f2369afddf76597f9173902672",
"status": "verified",
"task_id": "P4-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "device model/fault matrix",
"task_id": "P4-04",
"title": "spindle/encoder/probe/limit/home/tool/coolant twin"
},
{
"acceptance": "ack 丢失和恢复不重复副作用",
"depends_on": "P4-04/P1-03",
"evidence": {
"implementation_status": null,
"path": "coverage/io-ack.report.json",
"schema": "io-ack-report.v1",
"sha256": "516de819b6875559139adccc1584534f8b6a92be198c5982ad295ea2b37aa538",
"status": "verified",
"task_id": "P4-05"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "IO Worker/native tests",
"task_id": "P4-05",
"title": "IO command/ack/timeout/estop/recover"
},
{
"acceptance": "资源和能力限制稳定",
"depends_on": "P2-01",
"evidence": {
"implementation_status": null,
"path": "coverage/python-runtime-closure.report.json",
"schema": "python-runtime-closure-report.v1",
"sha256": "f2e81ac33c971766f759e92aaba1a358a9bc37bd84b53e574d2295c07ac51d8f",
"status": "verified",
"task_id": "P5-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "runtime manifest/report",
"task_id": "P5-01",
"title": "Pyodide runtime、模块白名单和虚拟时钟"
},
{
"acceptance": "正常、异常、禁止能力",
"depends_on": "P5-01/P3-04",
"evidence": {
"implementation_status": null,
"path": "coverage/python-api.report.json",
"schema": "python-api-report.v1",
"sha256": "536b5901ce88101da7b91e63fa6ddd2fc404778b58c75ed2e22b02408b479f85",
"status": "verified",
"task_id": "P5-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "API compatibility tests",
"task_id": "P5-02",
"title": "Python linuxcnc/hal/INI/tool/parameter API"
},
{
"acceptance": "异常不破坏 Worker 核心",
"depends_on": "P5-02/P4-01",
"evidence": {
"implementation_status": null,
"path": "coverage/python-callbacks.report.json",
"schema": "python-callbacks-report.v1",
"sha256": "5001e9824ad34a024c1f2c0fe16fbdab9aa242ae4412ac0830f993954ff6b660",
"status": "verified",
"task_id": "P5-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "remap/VCP report",
"task_id": "P5-03",
"title": "remap/filter/VCP callback 和隔离"
},
{
"acceptance": "导入导出 round-trip",
"depends_on": "P1-02/P3-05/P4-05/P5-03",
"evidence": {
"implementation_status": null,
"path": "coverage/trace-export.report.json",
"schema": "trace-export-report.v1",
"sha256": "57e0d9a0a0a98907a73d25d01d19cfd525c4c2f4c33baf470b32f657b8ab7abb",
"status": "verified",
"task_id": "P6-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "schema/hash tests",
"task_id": "P6-01",
"title": "snapshot/event/trace 全状态导出"
},
{
"acceptance": "crash、半提交、确认丢失",
"depends_on": "P6-01/P1-03",
"evidence": {
"implementation_status": null,
"path": "coverage/reconciliation.report.json",
"schema": "reconciliation-report.v1",
"sha256": "e882196ab3ef32f7071fb6924db8a8f56aadeadd85e7602c20fdb1659ec21f7c",
"status": "verified",
"task_id": "P6-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "recovery matrix",
"task_id": "P6-02",
"title": "journal/checkpoint/operation reconciliation"
},
{
"acceptance": "离线、配额、版本迁移",
"depends_on": "P6-02/P2-01",
"evidence": {
"implementation_status": null,
"path": "coverage/offline-migration.report.json",
"schema": "offline-migration-report.v1",
"sha256": "bc931f4100f791347020842d0ed2bf9cdf449af2c97446320219b839ed9c70b1",
"status": "verified",
"task_id": "P6-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "browser recovery report",
"task_id": "P6-03",
"title": "OPFS/offline/migration/rollback"
},
{
"acceptance": "seq、schema、timeout、cancel",
"depends_on": "P1-03/P6-01",
"evidence": {
"implementation_status": null,
"path": "coverage/worker-protocol.report.json",
"schema": "worker-protocol-report.v1",
"sha256": "bf729cb4168f11613ff5629b1fb2ddc44e55655419ac74909839bb08cc693d61",
"status": "verified",
"task_id": "P7-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "protocol E2E",
"task_id": "P7-01",
"title": "Worker protocol/client、backpressure、cancel"
},
{
"acceptance": "真实 Worker,不用 mock",
"depends_on": "P3-04/P7-01",
"evidence": {
"implementation_status": null,
"path": "coverage/editor-workflow.report.json",
"schema": "editor-workflow-report.v1",
"sha256": "1e21b24b54123a830025c0f2bbfeac202d415e489c360521ee8c831767970241",
"status": "verified",
"task_id": "P7-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "browser E2E",
"task_id": "P7-02",
"title": "editor/diagnostic/MDI/run workflow"
},
{
"acceptance": "snapshot/event 单向消费",
"depends_on": "P4/P5/P7-01",
"evidence": {
"implementation_status": null,
"path": "coverage/authoritative-panels.report.json",
"schema": "authoritative-panels-report.v1",
"sha256": "8d12e32b2032ab248b743591b3cbad1e55bcd620dab1845f90d0e317fb58865f",
"status": "verified",
"task_id": "P7-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "UI tests",
"task_id": "P7-03",
"title": "state/HAL/IO/Python/PLC/alarm panels"
},
{
"acceptance": "非空、姿态和轨迹跟随 authoritative state",
"depends_on": "P3-05/P7-03",
"evidence": {
"implementation_status": null,
"path": "coverage/machine-view.report.json",
"schema": "machine-view-report.v1",
"sha256": "067ef64e9e20e27e46f675bdf1977c4950847e2f537196fcc6f391cd03214155",
"status": "verified",
"task_id": "P7-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "WebGL/canvas tests",
"task_id": "P7-04",
"title": "Three.js pose/joint/toolpath/stock view"
},
{
"acceptance": "恢复状态可操作、错误可定位",
"depends_on": "P6-03/P7-02",
"evidence": {
"implementation_status": null,
"path": "coverage/recovery-ux.report.json",
"schema": "recovery-ux-report.v1",
"sha256": "156aa7ab88172325922ee65479a1380dec01763ad8d784702fcff160e8bb2375",
"status": "verified",
"task_id": "P7-05"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "browser fault E2E",
"task_id": "P7-05",
"title": "recovery/offline/error/permission UX"
},
{
"acceptance": "同输入、同命令、首差 tick",
"depends_on": "P0-03/P3/P4",
"evidence": {
"implementation_status": null,
"path": "coverage/native-oracle-closure.report.json",
"schema": "native-oracle-closure-report.v1",
"sha256": "d001ce551dde7451efa113ec986f34d631c2ff9d14e7e9135377033ce1f1fb53",
"status": "verified",
"task_id": "P8-01"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "JSONL oracle",
"task_id": "P8-01",
"title": "native oracle runner 和 golden schema"
},
{
"acceptance": "每入口 READY 或诊断 BLOCKED",
"depends_on": "P2-04/P8-01",
"evidence": {
"implementation_status": null,
"path": "coverage/startup-matrix-closure.report.json",
"schema": "startup-matrix-closure-report.v1",
"sha256": "359ab4318841cbab7b6c3256b217df9a7aa4b4559d6cd026a22cbb88f23b260f",
"status": "verified",
"task_id": "P8-02"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "startup/diff matrix",
"task_id": "P8-02",
"title": "全量 sim entrypoint matrix"
},
{
"acceptance": "1x/fast/step/recover hash 一致",
"depends_on": "P8-02/P6",
"evidence": {
"implementation_status": null,
"path": "coverage/determinism.report.json",
"schema": "determinism-report.v1",
"sha256": "48ea763cfbea64314d9d97dc550a14a67ae4306e2c322d9be5e5a776c00995e6",
"status": "verified",
"task_id": "P8-03"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "determinism report",
"task_id": "P8-03",
"title": "三次重复和执行模式 determinism"
},
{
"acceptance": "P95/P99、配额、WebGL、离线",
"depends_on": "P7/P8-03",
"evidence": {
"implementation_status": null,
"path": "coverage/browser-matrix-closure.report.json",
"schema": "browser-matrix-closure-report.v1",
"sha256": "f191a6e5bc2ec2887cf8bbc29806bda16b16449a7524a08ff6fcd38ab2a20b99",
"status": "verified",
"task_id": "P8-04"
},
"evidence_state": "EVIDENCE_VERIFIED",
"planned_outputs": "perf/compat report",
"task_id": "P8-04",
"title": "browser/performance/memory/offline matrix"
},
{
"acceptance": "所有排除项和剩余 blocker 显式保留",
"depends_on": "P8-02/P8-04",
"evidence": {
"implementation_status": null,
"path": "coverage/release-closure.report.json",
"schema": "release-closure-report.v1",
"sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"status": "blocked",
"task_id": null
},
"evidence_state": "EVIDENCE_BLOCKED",
"planned_outputs": "release evidence",
"task_id": "P8-05",
"title": "来源/许可证/下载/迁移/回滚交付闭合"
}
]
}
}

View File

@@ -0,0 +1,389 @@
{
"boundaries": [
"official LinuxCNC oracle and release ownership remain blocked",
"browser engines outside current matrix remain out of scope",
"REAL-EXCLUDED host devices are not part of simulation regression"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"domain_report_count": 30,
"domain_reports": [
{
"file_sha256": "b2d16607933ad9d81e1c7fd2a34a5285720e0e1c7276c451799c8da13036da40",
"implementation_status": null,
"path": "coverage/configuration-batch-s2.report.json",
"report_sha256": "bad34cb4e3dc4a16ca7d268d3c7058115a0ac7890f8886b190b090fe41ebb900",
"schema": "configuration-batch-s2-report.v1",
"status": "verified",
"task_id": "S2-04"
},
{
"file_sha256": "35e8e0da215463123297d76e091c0a46f6a47dd186b23adf52ffdf0f99d60192",
"implementation_status": null,
"path": "coverage/hal-s2.report.json",
"report_sha256": "eefd417ca95c326da9c4f6e36ab7a8b0dc14fea54edc22afd5a62f41db44e8a6",
"schema": "hal-s2-report.v1",
"status": "verified",
"task_id": "S2-02"
},
{
"file_sha256": "e45b5ff3492a1fb98b1ff916eb9e37b938a6a0afc8c9394cf61a45a0b04c5bbf",
"implementation_status": null,
"path": "coverage/device-io-s2.report.json",
"report_sha256": "438eb2df1fd60944577c13cafbcc2879f2cefddc9bbc828992aa2e8f1f863b58",
"schema": "device-io-s2-report.v1",
"status": "verified",
"task_id": "S2-03"
},
{
"file_sha256": "0ad62a66e5cef717dced283a8ec5105fa165bd4aeb995e4295882d959afa4a46",
"implementation_status": null,
"path": "coverage/python-api-s3.report.json",
"report_sha256": "1ba33dda68e9dd0f5b3702a5a0c2a436895b76872576ce295a02d1c34aeb8718",
"schema": "python-api-s3-report.v1",
"status": "verified",
"task_id": "S3-01"
},
{
"file_sha256": "b13fae6409437f6ed25258a10f6c3f6f5a3b069419db0b4ba052b00cd395aa15",
"implementation_status": null,
"path": "coverage/python-callbacks-s3.report.json",
"report_sha256": "56c26965b234032f413eacad1d5c58023312ecb79eb6a7368ac229d789c27de6",
"schema": "python-callbacks-s3-report.v1",
"status": "verified",
"task_id": "S3-02"
},
{
"file_sha256": "2e2d8855c812645ecf52b3f2f904d319ceb234c6f7943fff927a91b2cd83c034",
"implementation_status": null,
"path": "coverage/recovery-s3.report.json",
"report_sha256": "2d9d4330fce3406a31f0cd2a088ee323ba612e395ec393fb07fb209e9984aca4",
"schema": "recovery-s3-report.v1",
"status": "verified",
"task_id": "S3-03"
},
{
"file_sha256": "0a59069079565bf06d7dfe16fd3c2cfec799c4b31f9094ca90e5e30bef334082",
"implementation_status": null,
"path": "coverage/browser-simulation-s3.report.json",
"report_sha256": "80ed2db698a19f067092e7df87e37eba37caa4a9d5ab2b7522d8c75f72e6393e",
"schema": "browser-simulation-s3-report.v1",
"status": "verified",
"task_id": "S3-04"
},
{
"file_sha256": "368b23c0938ffe2d6153a1a58b08c6eae189e6838f8489548cfd26e83f3f64c5",
"implementation_status": "verified",
"path": "coverage/configuration-startup-runtime.report.json",
"report_sha256": "5b988ed3c9ce6c640bcf93eb455b497c692d24a5ab59d459a6c2d9b722df964c",
"schema": "configuration-startup-runtime-report.v1",
"status": "passed",
"task_id": "P2-04"
},
{
"file_sha256": "f89b09eb912bcca4f75cf0392b889e0051fcdc61b6b2f14663c72fca63b8f608",
"implementation_status": null,
"path": "coverage/rs274-interpreter-closure.report.json",
"report_sha256": "1c307632e14fa09b670dbbba49eba30841d9c85dda90d28c9cbbbd72e3a2c92a",
"schema": "rs274-interpreter-closure-report.v1",
"status": "verified",
"task_id": "S1-01A"
},
{
"file_sha256": "a4387c31f508297bdd28bd8eb432e9f9113cf505fb5aa711d158720b291df2f6",
"implementation_status": null,
"path": "coverage/tp-blend.report.json",
"report_sha256": "d1587d0039ab4fe0a617ec088472e7e651bf31653b3e02bef8d909e520513119",
"schema": "tp-blend-report.v1",
"status": "verified",
"task_id": "P3-03"
},
{
"file_sha256": "6b22540591a974f8d648a70287412ecdefd9114b1f63095873154983d8d3d659",
"implementation_status": null,
"path": "coverage/task-program-state.report.json",
"report_sha256": "df6bd3dde8265e5e80080df94ccc70133848c4467c1cafbdf76ca825549d1540",
"schema": "task-program-state-report.v1",
"status": "verified",
"task_id": "P3-04"
},
{
"file_sha256": "20a48fbf735b184b5211be6d0487fcb1637060af91ddb59f43f7d82b689e9dd6",
"implementation_status": null,
"path": "coverage/motion-state.report.json",
"report_sha256": "18fe48ffd88bfebf8c234c2f3c22da04f67b0c4379a083cc98780120019f1aa6",
"schema": "motion-state-report.v1",
"status": "verified",
"task_id": "P3-05"
},
{
"file_sha256": "c836235f11bb0c1afebe4937c776de88cbeb2ac5e5081ac0784a97aa40c36809",
"implementation_status": null,
"path": "coverage/kinematics-base.report.json",
"report_sha256": "660a3083aae978f5c08ae561fbc32d7c0ccae3b57f8050dd7147cdcdb3b8db78",
"schema": "kinematics-base-report.v1",
"status": "verified",
"task_id": "P3-06"
},
{
"file_sha256": "2fe96f9b3ae0e6143be95c0a9378f40147eb2e2678c23de3d92f19cd8b6b0fc9",
"implementation_status": null,
"path": "coverage/hal-graph.report.json",
"report_sha256": "8160c134a903a848d68513fc9a74d853958caec0f555347c2e002e3b59b11128",
"schema": "hal-graph-report.v1",
"status": "verified",
"task_id": "P4-01"
},
{
"file_sha256": "dcc892df8a3d9d194213af541b9003e9c58f39bdde4066ec5265bcb17f29bcf3",
"implementation_status": null,
"path": "coverage/plc-runtime.report.json",
"report_sha256": "c8b12349fd4aa6e2ce48f0bda8e5b123ddfc190b7b7c3f1e101915eeb55623f8",
"schema": "plc-runtime-report.v1",
"status": "verified",
"task_id": "P4-03"
},
{
"file_sha256": "11a818854805b5b80e4de5dae6158b6e588010f2369afddf76597f9173902672",
"implementation_status": null,
"path": "coverage/device-twin.report.json",
"report_sha256": "8e24c7d5cc3122ba9d3e596b6b847149fea08e81a46671e9f7022b44cd6b0a31",
"schema": "device-twin-report.v1",
"status": "verified",
"task_id": "P4-04"
},
{
"file_sha256": "516de819b6875559139adccc1584534f8b6a92be198c5982ad295ea2b37aa538",
"implementation_status": null,
"path": "coverage/io-ack.report.json",
"report_sha256": "cbc89aa0bf4f4187406282a314e974b8e73a7a38b98410c8b562e24fbcad3833",
"schema": "io-ack-report.v1",
"status": "verified",
"task_id": "P4-05"
},
{
"file_sha256": "f2e81ac33c971766f759e92aaba1a358a9bc37bd84b53e574d2295c07ac51d8f",
"implementation_status": null,
"path": "coverage/python-runtime-closure.report.json",
"report_sha256": "5ef0fd9d5b2ce7389c8c3c4328bdc124aa34bd3b6c037c1d724827c08ab2df91",
"schema": "python-runtime-closure-report.v1",
"status": "verified",
"task_id": "P5-01"
},
{
"file_sha256": "57e0d9a0a0a98907a73d25d01d19cfd525c4c2f4c33baf470b32f657b8ab7abb",
"implementation_status": null,
"path": "coverage/trace-export.report.json",
"report_sha256": "42e1618dc55c3ff86e96b150b5c0be2114c8c2c82633af88ba2bc8f69758af0b",
"schema": "trace-export-report.v1",
"status": "verified",
"task_id": "P6-01"
},
{
"file_sha256": "e882196ab3ef32f7071fb6924db8a8f56aadeadd85e7602c20fdb1659ec21f7c",
"implementation_status": null,
"path": "coverage/reconciliation.report.json",
"report_sha256": "1afafb9d6f944e2d6c76ef8867a45b94fedb00976c01d4a6ac0d7b406e72af8e",
"schema": "reconciliation-report.v1",
"status": "verified",
"task_id": "P6-02"
},
{
"file_sha256": "bc931f4100f791347020842d0ed2bf9cdf449af2c97446320219b839ed9c70b1",
"implementation_status": null,
"path": "coverage/offline-migration.report.json",
"report_sha256": "c7b5539fba525477c29998f13312d766dd28e6f2be05023f0be4c1dd47e58e35",
"schema": "offline-migration-report.v1",
"status": "verified",
"task_id": "P6-03"
},
{
"file_sha256": "bf729cb4168f11613ff5629b1fb2ddc44e55655419ac74909839bb08cc693d61",
"implementation_status": null,
"path": "coverage/worker-protocol.report.json",
"report_sha256": "113010d39f5f5fbd82c894647ab01411732b0186bb17debcf6246c49edac6b09",
"schema": "worker-protocol-report.v1",
"status": "verified",
"task_id": "P7-01"
},
{
"file_sha256": "1e21b24b54123a830025c0f2bbfeac202d415e489c360521ee8c831767970241",
"implementation_status": null,
"path": "coverage/editor-workflow.report.json",
"report_sha256": "7dc81665b2e0947beb8c9cc9870e18351d50d62122adcf278f6c58db268cc9aa",
"schema": "editor-workflow-report.v1",
"status": "verified",
"task_id": "P7-02"
},
{
"file_sha256": "8d12e32b2032ab248b743591b3cbad1e55bcd620dab1845f90d0e317fb58865f",
"implementation_status": null,
"path": "coverage/authoritative-panels.report.json",
"report_sha256": "da9045398cedf867cd82f3d859196d45f0739f6b77dfe25b5f44360db8a2a57e",
"schema": "authoritative-panels-report.v1",
"status": "verified",
"task_id": "P7-03"
},
{
"file_sha256": "067ef64e9e20e27e46f675bdf1977c4950847e2f537196fcc6f391cd03214155",
"implementation_status": null,
"path": "coverage/machine-view.report.json",
"report_sha256": "f64763600bcbc3941552a49995612f43f52f6285ab098ee72e2d0ed4938de17f",
"schema": "machine-view-report.v1",
"status": "verified",
"task_id": "P7-04"
},
{
"file_sha256": "156aa7ab88172325922ee65479a1380dec01763ad8d784702fcff160e8bb2375",
"implementation_status": null,
"path": "coverage/recovery-ux.report.json",
"report_sha256": "a9c61fbb5dd98065d659bca5214853d6c05bbcfa79df0664a2ed988f5fb19f1c",
"schema": "recovery-ux-report.v1",
"status": "verified",
"task_id": "P7-05"
},
{
"file_sha256": "d001ce551dde7451efa113ec986f34d631c2ff9d14e7e9135377033ce1f1fb53",
"implementation_status": null,
"path": "coverage/native-oracle-closure.report.json",
"report_sha256": "e230cd528f00a3a0238253aee935550b58d5680c66e6f1906201b70bddabdb32",
"schema": "native-oracle-closure-report.v1",
"status": "verified",
"task_id": "P8-01"
},
{
"file_sha256": "359ab4318841cbab7b6c3256b217df9a7aa4b4559d6cd026a22cbb88f23b260f",
"implementation_status": null,
"path": "coverage/startup-matrix-closure.report.json",
"report_sha256": "3cbb4cd3712715d965e0375a703b0a3a4a61fa12e1c7d82a1955ffb78d4f2fe8",
"schema": "startup-matrix-closure-report.v1",
"status": "verified",
"task_id": "P8-02"
},
{
"file_sha256": "48ea763cfbea64314d9d97dc550a14a67ae4306e2c322d9be5e5a776c00995e6",
"implementation_status": null,
"path": "coverage/determinism.report.json",
"report_sha256": "8793b10f3077e4972fb433774b027fbc7bfe0108447757df4254239a4b8dedbb",
"schema": "determinism-report.v1",
"status": "verified",
"task_id": "P8-03"
},
{
"file_sha256": "f191a6e5bc2ec2887cf8bbc29806bda16b16449a7524a08ff6fcd38ab2a20b99",
"implementation_status": null,
"path": "coverage/browser-matrix-closure.report.json",
"report_sha256": "d384a1a38d875485a6eb10fd3577193b7597f1662a8fc5d85f17c2d5838494b0",
"schema": "browser-matrix-closure-report.v1",
"status": "verified",
"task_id": "P8-04"
}
],
"missing_domain_reports": [],
"modes": [
"1x",
"fast",
"single_step",
"recover"
],
"parity": {
"one_x_fast_equal": true,
"recovery_status": "recovered",
"recovery_tick": true
},
"regression": {
"command": [
"node",
"web/worker/test_full_simulation_s4.mjs"
],
"returncode": 0,
"sample": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"hashes": {
"fast": "fnv1a64:221f42545c6d2bbf",
"one_x": "fnv1a64:221f42545c6d2bbf",
"recover": "fnv1a64:e0b6475105bbae4e",
"single_step": "fnv1a64:a05b759319c5805c"
},
"modes": {
"fast": {
"callbacks": "fnv1a64:ca5dee59c34df1b2",
"device_io": "fnv1a64:a5d10e4a4211fd3f",
"hal": "fnv1a64:2b6af365e57ed1f6",
"motion": "fnv1a64:ad018845525318a3",
"plc": "fnv1a64:09ec34a1000a3218",
"python": "fnv1a64:c470e40113231979",
"task": {
"current_line": 2,
"mode": "AUTO",
"program_status": "completed",
"state": "STOPPED"
},
"tick": 4
},
"one_x": {
"callbacks": "fnv1a64:ca5dee59c34df1b2",
"device_io": "fnv1a64:a5d10e4a4211fd3f",
"hal": "fnv1a64:2b6af365e57ed1f6",
"motion": "fnv1a64:ad018845525318a3",
"plc": "fnv1a64:09ec34a1000a3218",
"python": "fnv1a64:c470e40113231979",
"task": {
"current_line": 2,
"mode": "AUTO",
"program_status": "completed",
"state": "STOPPED"
},
"tick": 4
},
"recover": {
"callbacks": "fnv1a64:9ff5f9ff975b0155",
"device_io": "fnv1a64:70a8ea706931237f",
"hal": "fnv1a64:d6c68eccad41cbc8",
"motion": "fnv1a64:0d753afd68fc6a5c",
"plc": "fnv1a64:2e69e18471ba84ff",
"python": "fnv1a64:c481e001133185e0",
"task": {
"current_line": 1,
"mode": "AUTO",
"program_status": "running",
"state": "RUNNING"
},
"tick": 1
},
"single_step": {
"callbacks": "fnv1a64:b2f1b2de0f02b1f6",
"device_io": "fnv1a64:51775281b8e08af6",
"hal": "fnv1a64:6fb2cf74df990a55",
"motion": "fnv1a64:dc0b0c746393a4a7",
"plc": "fnv1a64:28dbc52f68ec6d9d",
"python": "fnv1a64:c47ee401132f56d5",
"task": {
"current_line": 1,
"mode": "AUTO",
"program_status": "paused",
"state": "PAUSED"
},
"tick": 0
}
},
"parity": {
"one_x_fast_equal": true,
"recovery_status": "recovered",
"recovery_tick": true
},
"schema": "full-simulation-s4-sample.v1",
"status": "verified"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "06927a7fff9d95d47880aabe63da37e5a675622965d3c72bc5113296ae107223"
},
"release": {
"action": "STOP_RELEASE",
"candidate_eligible": false
},
"report_sha256": "b767e9ef2a682cd477270f7ca56c8bec498c02a7ad18b5738f0ce143e02d6800",
"schema": "full-simulation-s4-report.v1",
"status": "verified",
"task_id": "S4-01"
}

View File

@@ -0,0 +1,137 @@
{
"boundaries": [
"Chromium screenshot/DOM smoke does not establish the three-browser release matrix",
"visual evidence does not replace native/WASM/Worker golden parity",
"OPFS/recovery blocker remains explicit"
],
"browser": {
"binary": "google-chrome",
"minimum_matrix": "not established",
"scope": "Chromium visual smoke only"
},
"checks": {
"dom_controls": {
"status": "verified"
},
"mobile_layout": {
"status": "verified"
},
"official_browser_matrix": {
"reason": "locked Chromium/Firefox/Safari minimums remain TBD; this is smoke evidence only",
"status": "blocked"
},
"opfs_recovery": {
"reason": "existing OPFS browser fault matrix remains blocked/unavailable",
"status": "blocked"
},
"screenshot_nonempty": {
"status": "verified"
},
"threejs": {
"evidence": "React production preview emits Three.js r185 canvas",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"implementation_status": "verified",
"outputs": [
{
"bytes": 90475,
"sha256": "64e67b74290c5f7c30565cd35f3fd5174bc0129a4440c6a6cd9d7f6838288cc3",
"viewport": "desktop"
},
{
"bytes": 44029,
"sha256": "fa4580a13418ae1a62e09e6098ed4396e5c6f863df85d8f21de2f579e53bb3c2",
"viewport": "mobile"
}
],
"probes": {
"desktop": {
"command": [
"google-chrome",
"--headless=new",
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--virtual-time-budget=4000",
"--window-size=1440,900",
"--screenshot=/tmp/linuxcnc-gui-visual-2igzjfyz/desktop.png",
"--dump-dom",
"http://127.0.0.1:5174/"
],
"dom_sha256": "cf5e2dfcaf4b7d24b9de22bef91e2e3e1f6fead0de10625b23d9806cfe50575a",
"markers": {
"Abort": true,
"Diagnostics": true,
"E-stop": true,
"Home": true,
"Load case": true,
"Manual jog": true,
"Operate": true,
"Pause": true,
"Program": true,
"Recover": true,
"Restart": true,
"Run": true,
"Step": true,
"Three.js / authoritative pose": true
},
"returncode": 0,
"screenshot": {
"bytes": 90475,
"path": "/tmp/linuxcnc-gui-visual-2igzjfyz/desktop.png",
"sha256": "64e67b74290c5f7c30565cd35f3fd5174bc0129a4440c6a6cd9d7f6838288cc3"
},
"status": "verified",
"stderr_sha256": "b5327507fc50e3cb0b7b4633d0c1ce43743dbd3188c920e28afe023035322464",
"window": "1440,900"
},
"mobile": {
"command": [
"google-chrome",
"--headless=new",
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--virtual-time-budget=4000",
"--window-size=390,844",
"--screenshot=/tmp/linuxcnc-gui-visual-2igzjfyz/mobile.png",
"--dump-dom",
"http://127.0.0.1:5174/"
],
"dom_sha256": "66a6f651ce8df4a26b271e603adeb36731bd44e3464b77a74a81180b53804b6b",
"markers": {
"Abort": true,
"Diagnostics": true,
"E-stop": true,
"Home": true,
"Load case": true,
"Manual jog": true,
"Operate": true,
"Pause": true,
"Program": true,
"Recover": true,
"Restart": true,
"Run": true,
"Step": true,
"Three.js / authoritative pose": true
},
"returncode": 0,
"screenshot": {
"bytes": 44029,
"path": "/tmp/linuxcnc-gui-visual-2igzjfyz/mobile.png",
"sha256": "fa4580a13418ae1a62e09e6098ed4396e5c6f863df85d8f21de2f579e53bb3c2"
},
"status": "verified",
"stderr_sha256": "dc18bae409847b94397f09f6c73409ee6e4b6c8830d97670947bc37450a11001",
"window": "390,844"
}
},
"release_action": "STOP_RELEASE",
"report_sha256": "cd2eb920ba82a97a11b4d7e4b2f56a0e1f0739c840da61f63d5beef392df24a4",
"route": "http://127.0.0.1:5174/",
"schema": "gui-browser-visual-fe-m4-report.v1",
"status": "verified",
"task_id": "FE-M4-GUI-06"
}

View File

@@ -0,0 +1,86 @@
{
"boundaries": [
"descriptor is a capability/schema boundary, not an automatic claim that every widget callback is implemented",
"Python callbacks remain PY-WASM and host process/device calls remain REAL-EXCLUDED",
"license/NOTICE aggregation remains final delivery work"
],
"checks": {
"all_families_have_descriptors": {
"families": 12,
"status": "verified"
},
"host_window_boundary": {
"adaptation": "WEB-EQUIV",
"status": "verified"
},
"python_boundary": {
"families": [
"qtvcp",
"qtdragon",
"pyvcp",
"gladevcp",
"qtplasmac",
"plasma"
],
"status": "verified"
},
"threejs_boundary": {
"family": "vismach",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"descriptor_kinds": {
"desktop-equivalent": [
"axis",
"gmoccapy",
"touchy",
"gscreen",
"ngcgui"
],
"threejs": [
"vismach"
],
"web-component": [
"qtvcp",
"qtdragon",
"pyvcp",
"gladevcp",
"qtplasmac",
"plasma"
]
},
"families": [
"axis",
"gmoccapy",
"touchy",
"gscreen",
"qtvcp",
"qtdragon",
"pyvcp",
"gladevcp",
"vismach",
"ngcgui",
"qtplasmac",
"plasma"
],
"implementation_status": "verified",
"inputs": [
{
"path": "coverage/gui-source-inventory-fe-m4.report.json",
"sha256": "7e749cc0c2a65548038c2f1ce66dfa1c2eebc63323834b439ba38fb83636448c"
},
{
"path": "web/react/src/gui-domain.ts",
"sha256": "aa31acabe0144fac1f9952f4c97b70181fbe85528ef7956b669e287b965a6329"
}
],
"output": {
"path": "web/react/src/gui-family-adapter.ts",
"sha256": "7c604783d93f3c2e9680d0ba477ae9c9f08ade67ea906b19cc654e70b2edc916"
},
"report_sha256": "55faaa20f89b406bbfaf8040af0a86ea05f14514b44909393d7d0de0e38ca489",
"schema": "gui-family-adapter-fe-m4-report.v1",
"status": "verified",
"task_id": "FE-M4-GUI-04"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
{
"boundaries": [
"model geometry is the initial Web-equivalent adapter; source Vismach model family expansion remains tracked",
"Three.js never reads WASM memory or writes Worker state",
"material/torch/plugin callbacks require Worker capability and PY-WASM evidence"
],
"checks": {
"host_hardware_boundary": {
"adaptation": "REAL-EXCLUDED",
"status": "verified"
},
"python_boundary": {
"adaptation": "PY-WASM",
"status": "verified"
},
"snapshot_only_visual_state": {
"fields": [
"motion.axes",
"motion.joints",
"pose",
"toolpath",
"stock"
],
"status": "verified"
},
"source_visual_semantics": {
"sources": [
"linuxcnc/lib/python/rs274/glcanon.py",
"linuxcnc/lib/python/vismach.py"
],
"status": "verified"
},
"threejs_viewer": {
"source": "web/react/src/ThreeMachineView.tsx",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"families": 12,
"implementation_status": "verified",
"inputs": [
{
"path": "web/react/src/visual-workflow.ts",
"sha256": "d658a580175057b824ac4e1769d7d8b66a340d8947dbbb1d3dde530bce4f1433"
},
{
"path": "web/react/src/ThreeMachineView.tsx",
"sha256": "1041e5a034c673c3459daf00d236d00f2655c87f8355ec293c2f6626f7a35991"
},
{
"path": "web/react/src/gui-family-adapter.ts",
"sha256": "7c604783d93f3c2e9680d0ba477ae9c9f08ade67ea906b19cc654e70b2edc916"
},
{
"path": "linuxcnc/lib/python/rs274/glcanon.py",
"sha256": "0dfb20f1fdc05289894f3aa638357d98e1063fbd53329c723c777399ec7b33b7"
},
{
"path": "linuxcnc/lib/python/vismach.py",
"sha256": "e3b317eb8f4b17428ae0127850681c947fd3aecac4d23938d21449defe0d6998"
}
],
"models": {
"axis": [
"axis",
"gmoccapy",
"touchy",
"gscreen",
"qtvcp",
"qtdragon",
"pyvcp",
"gladevcp"
],
"plasma": [
"qtplasmac",
"plasma"
],
"preview": [
"ngcgui"
],
"vismach": [
"vismach"
]
},
"report_sha256": "4082c673e2bccbf250cfe23683d2732021a3a22f5302da8e12cc80397685c788",
"schema": "gui-visual-workflow-fe-m4-report.v1",
"status": "verified",
"task_id": "FE-M4-GUI-05"
}

View File

@@ -75608,7 +75608,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -75642,7 +75642,7 @@
],
"next_transition": "execute M3-RT-03 virtual device fault injection and replay",
"release_action": "STOP_RELEASE",
"report_sha256": "8976d0a253abaa81cfa83fe767d33f65bde1b8e8391ced0d622672cf97938096",
"report_sha256": "e7a2fea5e236e73728ec6bf576406dba85118a7dabb3a7a49c193eec2d88998c",
"schema": "hal-component-manifest.v1",
"status": "partial",
"task_id": "M3-RT-02"

View File

@@ -0,0 +1,88 @@
{
"boundaries": [
"duplicate",
"unknown",
"type",
"connection",
"period",
"function_failure",
"dynamic_loader_host_excluded"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"graph": {
"fixed_tick": true,
"function_capacity": 64,
"pin_capacity": 256,
"thread_capacity": 16,
"twopass": true,
"types": [
"BIT",
"S32",
"U32",
"FLOAT"
]
},
"known_boundaries": [
"static .comp manifest/runtime is P4-02",
"ClassicLadder/PLC scan is P4-03",
"real hardware drivers remain REAL-EXCLUDED"
],
"native": {
"command": "/home/mes006/linuxcncWebWASM/build-native/sim_hal_test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"hal-corexy-sample.v1\",\"command\":{\"j0\":6.000,\"j1\":2.000,\"alpha\":4.000,\"beta\":2.000},\"feedback\":{\"alpha\":4.000,\"beta\":1.000,\"j0\":5.000,\"j1\":3.000},\"tick\":1,\"function_calls\":1}\n"
},
"operations": [
"loadrt",
"addf",
"setp",
"net",
"sets",
"newsig",
"linksp",
"linkps",
"linkpp"
],
"outputs": [
{
"bytes": 1968,
"path": "wasm-core/include/sim_hal.h",
"sha256": "3dd7230316e557d1a129a9a80a26a109b837a318b092657b8bee0d53a5e57db9"
},
{
"bytes": 9413,
"path": "wasm-core/src/sim_hal.c",
"sha256": "76a057064546a8ee9ba1098952755a4cdc56e6e714f2761b8a1826898d3ae621"
},
{
"bytes": 2626,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "bbe3f1e586b577aad418159d25cdcf9e8e55a9fab15d2a147b129d2ea0dadf1a"
},
{
"bytes": 1114,
"path": "web/worker/test_hal_preflight.mjs",
"sha256": "8d189e06fac8c2ca722931d0cf05772e5a7f73e46f88d9d908e04ac6112a22e6"
}
],
"report_sha256": "8160c134a903a848d68513fc9a74d853958caec0f555347c2e002e3b59b11128",
"schema": "hal-graph-report.v1",
"status": "verified",
"task_id": "P4-01",
"wasm": {
"command": "node build-wasm/sim_hal_wasm_test.js",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"hal-corexy-sample.v1\",\"command\":{\"j0\":6.000,\"j1\":2.000,\"alpha\":4.000,\"beta\":2.000},\"feedback\":{\"alpha\":4.000,\"beta\":1.000,\"j0\":5.000,\"j1\":3.000},\"tick\":1,\"function_calls\":1}\n"
},
"worker": {
"command": "node web/worker/test_hal_preflight.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "hal_worker_preflight=passed\n"
}
}

162
coverage/hal-s2.report.json Normal file
View File

@@ -0,0 +1,162 @@
{
"boundaries": [
"dynamic .so/loadusr/host device access remains excluded",
"unsupported .comp semantics fail closed"
],
"capacity": {
"components": 64,
"max_period_ticks": 1000000,
"params": 256,
"pins": 256,
"threads": 16
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
"static .comp descriptor registration",
"batch pin/parameter/function execution",
"persistent typed links",
"fixed-period deterministic tick",
"transactional tick rollback",
"nonfinite/capacity/unsupported rejection",
"Worker checkpoint and replay state"
],
"inputs": [
{
"path": "wasm-core/include/sim_hal.h",
"sha256": "2ae61e361df8388f6c02ae880a9d726988a8370b10b2d07066749f2033662160"
},
{
"path": "wasm-core/src/sim_hal.c",
"sha256": "3452009d839c89362dfeb793504cba26e45ea85f034ad5609859ec19cce3e9c3"
},
{
"path": "wasm-core/tests/sim_hal_test.c",
"sha256": "211d856bfa6b5d653a934f40523c6a134be69e3d505ec4e3c828a6e1d46e1b19"
},
{
"path": "web/worker/hal-runtime.mjs",
"sha256": "7495387186b0bba3f717c43a696a4b939a6729df6b9398e6b4fddc1ec4931363"
},
{
"path": "web/worker/test_hal_runtime.mjs",
"sha256": "f2b5c79cc4520642c8606405638e3e43da18973ea3d32640d9cac95885e02195"
},
{
"path": "linuxcnc/src/hal/components/corexy_by_hal.comp",
"sha256": "7cb585058976198779600ee1d27f6b4e225a89c1c6ebcc7ba699291c9463e5a8"
},
{
"path": "linuxcnc/src/hal/components/and2.comp",
"sha256": "7e0867aaf06f0d51eccb4f91c8d9268b9f6f4eed67f4e4eac177c6e90c8bfeae"
},
{
"path": "linuxcnc/src/hal/components/constant.comp",
"sha256": "7d53ce72a7f95c36c606cbb585d890ec9d375ded5d4cf1158c25c991ed095352"
}
],
"report_sha256": "eefd417ca95c326da9c4f6e36ab7a8b0dc14fea54edc22afd5a62f41db44e8a6",
"schema": "hal-s2-report.v1",
"status": "verified",
"supported_components": [
"corexy_by_hal",
"and2",
"or2",
"xor2",
"not",
"abs",
"abs_s32",
"constant",
"lowpass",
"ddt",
"integ",
"mux2",
"sum2",
"mult2",
"div2",
"hypot",
"near",
"comp",
"invert",
"edge",
"toggle",
"estop_latch"
],
"task_id": "S2-02",
"tests": {
"native": {
"command": [
"/home/mes006/linuxcncWebWASM/build-native/sim_hal_test"
],
"returncode": 0,
"sample": {
"command": {
"alpha": 4.0,
"beta": 2.0,
"j0": 6.0,
"j1": 2.0
},
"component_batch": {
"constant": 3.5,
"gate": 1,
"rollback_tick": 1
},
"feedback": {
"alpha": 4.0,
"beta": 1.0,
"j0": 5.0,
"j1": 3.0
},
"function_calls": 1,
"schema": "hal-corexy-sample.v1",
"tick": 1
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"native_wasm_byte_identical": true,
"wasm": {
"command": [
"node",
"/home/mes006/linuxcncWebWASM/build-wasm/sim_hal_wasm_test.js"
],
"returncode": 0,
"sample": {
"command": {
"alpha": 4.0,
"beta": 2.0,
"j0": 6.0,
"j1": 2.0
},
"component_batch": {
"constant": 3.5,
"gate": 1,
"rollback_tick": 1
},
"feedback": {
"alpha": 4.0,
"beta": 1.0,
"j0": 5.0,
"j1": 3.0
},
"function_calls": 1,
"schema": "hal-corexy-sample.v1",
"tick": 1
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"worker": {
"command": [
"node",
"/home/mes006/linuxcncWebWASM/web/worker/test_hal_runtime.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8ee11fee1f021a328d403f7e29820900fc26d6079f64803b599cffafe78eee93"
}
}
}

View File

@@ -975,7 +975,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -1007,17 +1007,17 @@
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "b88b3978114cb7347f890c558ea0b6c948533b8a87d61bcee3806cd0912b0a6d",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_pending_owner_decision",
"report_sha256": "8cc56f6d59aba518e53e0c5b1dac8dfabd33f814776cdd4956326b309fb90591",
"report_sha256": "388f94bf33c9e0214097ceba4d168e3178f3d8c4aeee29184181190e8efec23c",
"schema": "implementation-license-remediation.v1",
"status": "complete",
"task_id": "K8-REL-13"

View File

@@ -0,0 +1,124 @@
{
"checks": {
"cycle_missing_host_path_fail_closed": {
"status": "passed"
},
"deterministic_resource_hash": {
"status": "passed"
},
"include_graph_line_diagnostics": {
"status": "passed"
},
"locked_contract_unchanged": {
"abi_protocol_schema_changes": false,
"status": "verified"
},
"sections_keys_variables": {
"status": "passed"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"direct_inputs": [
{
"bytes": 3779,
"path": "coverage/workspace-runtime.report.json",
"role": "workspace_report",
"sha256": "9facf98ddc63d7819c0f44ac983f8aa19c8507cdce8b9ba1e446e849fdee1746",
"status": "present"
},
{
"bytes": 5792,
"path": "web/workspace/runtime.mjs",
"role": "workspace_runtime",
"sha256": "4553e5e7c7b3f869b8fb3ce2fd344f22dbbacb0607e4fbdae790dc8911c92aa3",
"status": "present"
},
{
"bytes": 7054,
"path": "web/workspace/configuration.mjs",
"role": "configuration",
"sha256": "89509d6604d8f3bcddc46c084f058c232bc56142e0e7dd01726b96f920b2585e",
"status": "present"
}
],
"failure_samples": [],
"implementation_status": "verified",
"known_boundaries": [
"P2-03 HAL/tool/program/Python/VCP resolver"
],
"outputs": [
{
"bytes": 5036,
"path": "web/workspace/ini-parser.mjs",
"role": "ini_parser",
"sha256": "e7b1cd12773f0c3e92cf76c0021e43888d586a475900c4acfa4234bbee4fdea6",
"status": "present"
},
{
"bytes": 1846,
"path": "web/worker/test_ini_parser.mjs",
"role": "worker_test",
"sha256": "9cb7664938a06d283d3453d42ba76b4c4758520bfd90c0035f81e8240517a21e",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "6228a76912dd0bd59d29d329d714476cd83aa505b00897f0ae98ed7a60f7e6c3",
"schema": "ini-parser-report.v1",
"status": "passed",
"task_id": "P2-02",
"tests": {
"configuration_preflight": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "27f51a643e31903d55310440f83e7fc3758399aab8420c1fa4b809821037abf4"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "27f51a643e31903d55310440f83e7fc3758399aab8420c1fa4b809821037abf4"
},
"status": "passed"
},
"ini_worker": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "600b0fd0bd19fb4e68adbea95df09c401cb9ae1905979078ebafd5d2878aa860"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "600b0fd0bd19fb4e68adbea95df09c401cb9ae1905979078ebafd5d2878aa860"
},
"status": "passed"
},
"workspace_runtime": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "33168e892bb5d6580937ea24a7c103e7a90274b26ec9ab904d080a57ede99448"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "33168e892bb5d6580937ea24a7c103e7a90274b26ec9ab904d080a57ede99448"
},
"status": "passed"
}
}
}

View File

@@ -0,0 +1,62 @@
{
"boundaries": [
"duplicate",
"missing",
"late_ack",
"tick_regression",
"timeout",
"too_late_abort",
"checkpoint_hash"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"determinism": {
"duplicate_side_effects": 0,
"random": false,
"replay_state_hash": true,
"wall_clock": false
},
"known_boundaries": [
"transport-specific ack adapters remain virtual",
"real hardware timeout is REAL-EXCLUDED"
],
"outputs": [
{
"bytes": 3567,
"path": "web/worker/io-ack.mjs",
"sha256": "a68fe56c8b8c7b44ff585a7c7c1fa5ca942f59197ef51651abf59ae4cc1eaec5"
},
{
"bytes": 53849,
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"bytes": 1929,
"path": "web/worker/test_io_ack.mjs",
"sha256": "d36d6cfdbbad3e2bd7cd3fac5e79d5bc288c03297b739968e3d2bb4069923349"
}
],
"protocol": {
"deadline_tick": true,
"issued_tick": true,
"operation_id": true,
"schema": "sim_io_ack.v1",
"side_effect_count": true
},
"report_sha256": "cbc89aa0bf4f4187406282a314e974b8e73a7a38b98410c8b562e24fbcad3833",
"schema": "io-ack-report.v1",
"states": [
"pending",
"acked",
"timed_out",
"aborted"
],
"status": "verified",
"task_id": "P4-05",
"test": {
"command": "node web/worker/test_io_ack.mjs",
"status": "verified",
"stderr": "",
"stdout": "io_ack=passed timeout=timed_out worker=io_ack_late hash=fnv1a64:d017728dd8296b29\n"
}
}

View File

@@ -179,7 +179,7 @@
"artifacts": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "verified"
},
{
@@ -266,7 +266,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
}
],
@@ -292,14 +292,14 @@
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "9b55de44782ac77b58d4c7d0709bdbcc9647fdc550137883755c3fef83aa2d91",
"report_sha256": "d01884df05489c053a1cf9cc75edb191196d942a05c1e1b88a41e4058ded8211",
"schema": "k8-milestone-closeout.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",

View File

@@ -0,0 +1,94 @@
{
"checks": [
"forward_inverse_roundtrip",
"coordinates_case_fold",
"duplicate_axis_mapping",
"extra_joint_mapping",
"limits",
"unknown_type",
"unknown_name",
"capability_mask",
"parameter_mask"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"families": [
"trivkins",
"corexykins",
"gantry mapping"
],
"known_boundaries": [
"5/6-axis, robot, parallel, switchkins and userk are P3-07",
"official kinematics oracle remains release blocker"
],
"native_motion": {
"command": "/home/mes006/linuxcncWebWASM/build-native/sim_kinematics_test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "47296355,7.000000000],\"inverse\":[2.000000000,7.000000000,190.000000000],\"branch\":1,\"state_hash\":2438572543122669123},\"maxkins\":{\"pose\":[-4.000000000,3.000000000,5.000000000],\"inverse\":[3.000000000,4.000000000,5.000000000,0.000000000,30.000000000,90.000000000],\"state_hash\":9619955171041365392},\"rotatekins\":{\"pose\":[4.000000000,-3.000000000,5.000000000],\"inverse\":[3.000000000,4.000000000,5.000000000,0.000000000,0.000000000,90.000000000],\"state_hash\":4875770340631299468},\"fiveaxiskins\":{\"pose\":[118.967490359,111.434580971,76.850293016],\"inverse\":[10.000000000,20.000000000,30.000000000,35.000000000,40.000000000,-2.000000000,20.000000000],\"state_hash\":7748142909372720337},\"xyzac_trt\":{\"pose\":[142.826706376,9.689621386,163.102540378],\"inverse\":[100.000000000,50.000000000,200.000000000,30.000000000,45.000000000],\"state_hash\":13756563895642799233},\"xyzbc_trt\":{\"pose\":[44.740352549,25.970325570,227.671759760],\"inverse\":[100.000000000,50.000000000,200.000000000,30.000000000,45.000000000],\"state_hash\":16201786080257949760},\"scara\":{\"pose\":[590.460310444,130.945742721,465.000000000],\"inverse\":[-3.644300703,40.000000000,25.000000000,-31.355699297,5.000000000,-3.000000000],\"state_hash\":16144366080292311245},\"puma\":{\"pose\":[450.112320486,207.114833215,-612.180622409],\"inverse\":[10.000000000,20.000000000,-30.000000000,40.000000000,25.000000000,-15.000000000],\"state_hash\":3358632253473456540},\"scorbot\":{\"pose\":[366.786994761,171.035584569,191.173940759],\"inverse\":[25.000000000,35.000000000,-20.000000000,10.000000000,-5.000000000],\"state_hash\":7814353589808450675},\"genser\":{\"pose\":[619.051467462,30.411237800,-349.855537721],\"inverse\":[0.000000000,10.000000000,-20.000000000,29.999999999,15.000000000,-9.999999999],\"state_hash\":7456282805679296496,\"iterations\":0,\"residual\":0.000000000000},\"lineardelta\":{\"pose\":[0.000000000,0.000000000,64.636584194],\"inverse\":[300.000000000,300.000000000,300.000000000],\"state_hash\":5975346607623231017},\"rotarydelta\":{\"pose\":[0.000000000,0.000000000,-3.793360169],\"inverse\":[10.000000000,10.000000000,10.000000000],\"state_hash\":2370894419412951220},\"tripod\":{\"pose\":[2.000000000,3.000000000,4.000000000],\"inverse\":[5.385164807,9.433981132,6.447715952],\"state_hash\":15608486964708188096},\"genhex\":{\"pose\":[10.000000000,-5.000000000,60.000000000,4.999999999,-3.000000001,10.000000000],\"inverse\":[68.274402001,63.007928550,63.783820692,65.475127133,60.456723205,68.231500501],\"state_hash\":7575268797291078131,\"iterations\":14,\"residual\":0.000000000857},\"pentapod\":{\"pose\":[0.000000000,500.000000000,300.000000000,0.010000000,-0.010000000],\"inverse\":[625.895566556,649.261562588,754.767615986,338.490149644,341.118326622],\"state_hash\":13978136356142463125,\"iterations\":12,\"residual\":0.000000001000},\"delta_edges\":{\"lineardelta\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[-0.000000000,-0.000000000,535.363415806],\"no_solution\":-702,\"limit_error\":-702,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"rotarydelta\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[-0.000000000,-0.000000000,0.320396615],\"singular\":-704,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"tripod\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[2.000000000,3.000000000,-4.000000000],\"no_solution\":-702,\"singular\":-704,\"limit_error\":-702,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"genhex\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[10.000000000,-5.000000000,-60.000000000],\"nonpositive\":-702,\"iteration_limit\":-702,\"max_error\":-702,\"singular\":-704,\"limit_error\":-702,\"branch\":0,\"iterations\":14,\"residual\":0.000000000857},\"pentapod\":{\"alternate_status\":-702,\"alternate_branch\":1,\"alternate_pose\":[0.000000000,0.000000000,0.000000000],\"alternate_iterations\":1,\"nonpositive\":-702,\"nonpositive_iterations\":0,\"iteration_limit\":-702,\"iteration_limit_iterations\":1,\"max_error\":-702,\"max_error_iterations\":1,\"singular\":-704,\"singular_iterations\":0,\"limit_error\":-702,\"branch\":0,\"iterations\":12,\"residual\":0.000000001000}}}\n"
},
"native_registry": {
"command": "/home/mes006/linuxcncWebWASM/build-native/sim_kinematics_registry_test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"kinematics-registry-samples.v1\",\"entries\":[{\"name\":\"trivkins\",\"type\":1,\"required\":\"\",\"min\":1,\"max\":9,\"capabilities\":119,\"parameters\":3},{\"name\":\"xyzac-trt-kins\",\"type\":2,\"required\":\"XYZAC\",\"min\":5,\"max\":9,\"capabilities\":115,\"parameters\":15},{\"name\":\"xyzbc-trt-kins\",\"type\":3,\"required\":\"XYZBC\",\"min\":5,\"max\":9,\"capabilities\":115,\"parameters\":15},{\"name\":\"xyzbcw\",\"type\":4,\"required\":\"XYZBCW\",\"min\":6,\"max\":9,\"capabilities\":51,\"parameters\":19},{\"name\":\"corexykins\",\"type\":5,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":3},{\"name\":\"rosekins\",\"type\":6,\"required\":\"XYZ\",\"min\":3,\"max\":3,\"capabilities\":19,\"parameters\":3},{\"name\":\"maxkins\",\"type\":7,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":19},{\"name\":\"rotatekins\",\"type\":8,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":3},{\"name\":\"5axiskins\",\"type\":9,\"required\":\"XYZBCW\",\"min\":6,\"max\":9,\"capabilities\":115,\"parameters\":19},{\"name\":\"scarakins\",\"type\":10,\"required\":\"XYZCAB\",\"min\":6,\"max\":6,\"capabilities\":19,\"parameters\":35},{\"name\":\"pumakins\",\"type\":11,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":19,\"parameters\":35},{\"name\":\"scorbot-kins\",\"type\":12,\"required\":\"XYZAB\",\"min\":5,\"max\":5,\"capabilities\":19,\"parameters\":35},{\"name\":\"genserkins\",\"type\":13,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":27,\"parameters\":195},{\"name\":\"lineardeltakins\",\"type\":14,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"rotarydeltakins\",\"type\":15,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"tripodkins\",\"type\":16,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"genhexkins\",\"type\":17,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":27,\"parameters\":171},{\"name\":\"pentakins\",\"type\":18,\"required\":\"XYZAB\",\"min\":5,\"max\":5,\"capabilities\":27,\"parameters\":171}],\"count\":18,\"verified\":18,\"capability_union\":127,\"parameter_union\":255,\"registry_hash\":3966926008000628109,\"lookup_status\":0,\"iterative_require\":0,\"capability_error\":-711,\"parameter_error\":-711,\"type_mismatch\":-703,\"coordinate_error\":-703,\"joint_error\":-703,\"unknown_name\":-705,\"path_name\":-712,\"range_error\":-702}\n"
},
"oracle": {
"reason": "locked source does not contain linuxcnc/unit_tests/kinematics/**; no official golden is fabricated",
"status": "blocked"
},
"outputs": [
{
"bytes": 12375,
"path": "wasm-core/include/sim_kinematics.h",
"sha256": "34b08db612056432e08705951032418bf6f6cd2c285bde5743515588fbe484ec"
},
{
"bytes": 76636,
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "316fe74604180b6e9ae7f66369f084278f1b54b7c4545ec9efa870186adc9600"
},
{
"bytes": 6495,
"path": "wasm-core/src/sim_kinematics_registry.c",
"sha256": "fa852e370b5fa52006afb9c04bd6bc4ebba798d9b1ab7f060d52ecf98326d97d"
},
{
"bytes": 43608,
"path": "wasm-core/tests/sim_kinematics_test.c",
"sha256": "715882c28ec242be652357d330a4b56d60f8e93f2e821193133911576e400aac"
},
{
"bytes": 3572,
"path": "wasm-core/tests/sim_kinematics_registry_test.c",
"sha256": "42d0952fdb94340e33b4a86a5f0707aa3330302ae3c5e2573785bf29ee8ac243"
}
],
"registry": {
"abi_version": 1,
"capability_union": 127,
"entry_count": 18,
"parameter_union": 255,
"state_hash_identical": true,
"verified_entries": 18
},
"report_sha256": "660a3083aae978f5c08ae561fbc32d7c0ccae3b57f8050dd7147cdcdb3b8db78",
"schema": "kinematics-base-report.v1",
"status": "verified",
"task_id": "P3-06",
"wasm_motion": {
"command": "node build-wasm/sim_kinematics_wasm_test.js",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "47296355,7.000000000],\"inverse\":[2.000000000,7.000000000,190.000000000],\"branch\":1,\"state_hash\":2438572543122669123},\"maxkins\":{\"pose\":[-4.000000000,3.000000000,5.000000000],\"inverse\":[3.000000000,4.000000000,5.000000000,0.000000000,30.000000000,90.000000000],\"state_hash\":9619955171041365392},\"rotatekins\":{\"pose\":[4.000000000,-3.000000000,5.000000000],\"inverse\":[3.000000000,4.000000000,5.000000000,0.000000000,0.000000000,90.000000000],\"state_hash\":4875770340631299468},\"fiveaxiskins\":{\"pose\":[118.967490359,111.434580971,76.850293016],\"inverse\":[10.000000000,20.000000000,30.000000000,35.000000000,40.000000000,-2.000000000,20.000000000],\"state_hash\":7748142909372720337},\"xyzac_trt\":{\"pose\":[142.826706376,9.689621386,163.102540378],\"inverse\":[100.000000000,50.000000000,200.000000000,30.000000000,45.000000000],\"state_hash\":13756563895642799233},\"xyzbc_trt\":{\"pose\":[44.740352549,25.970325570,227.671759760],\"inverse\":[100.000000000,50.000000000,200.000000000,30.000000000,45.000000000],\"state_hash\":16201786080257949760},\"scara\":{\"pose\":[590.460310444,130.945742721,465.000000000],\"inverse\":[-3.644300703,40.000000000,25.000000000,-31.355699297,5.000000000,-3.000000000],\"state_hash\":16144366080292311245},\"puma\":{\"pose\":[450.112320486,207.114833215,-612.180622409],\"inverse\":[10.000000000,20.000000000,-30.000000000,40.000000000,25.000000000,-15.000000000],\"state_hash\":3358632253473456540},\"scorbot\":{\"pose\":[366.786994761,171.035584569,191.173940759],\"inverse\":[25.000000000,35.000000000,-20.000000000,10.000000000,-5.000000000],\"state_hash\":7814353589808450675},\"genser\":{\"pose\":[619.051467462,30.411237800,-349.855537721],\"inverse\":[0.000000000,10.000000000,-20.000000000,29.999999999,15.000000000,-9.999999999],\"state_hash\":7456282805679296496,\"iterations\":0,\"residual\":0.000000000000},\"lineardelta\":{\"pose\":[0.000000000,0.000000000,64.636584194],\"inverse\":[300.000000000,300.000000000,300.000000000],\"state_hash\":5975346607623231017},\"rotarydelta\":{\"pose\":[0.000000000,0.000000000,-3.793360169],\"inverse\":[10.000000000,10.000000000,10.000000000],\"state_hash\":2370894419412951220},\"tripod\":{\"pose\":[2.000000000,3.000000000,4.000000000],\"inverse\":[5.385164807,9.433981132,6.447715952],\"state_hash\":15608486964708188096},\"genhex\":{\"pose\":[10.000000000,-5.000000000,60.000000000,4.999999999,-3.000000001,10.000000000],\"inverse\":[68.274402001,63.007928550,63.783820692,65.475127133,60.456723205,68.231500501],\"state_hash\":7575268797291078131,\"iterations\":14,\"residual\":0.000000000857},\"pentapod\":{\"pose\":[0.000000000,500.000000000,300.000000000,0.010000000,-0.010000000],\"inverse\":[625.895566556,649.261562588,754.767615986,338.490149644,341.118326622],\"state_hash\":13978136356142463125,\"iterations\":12,\"residual\":0.000000001000},\"delta_edges\":{\"lineardelta\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[-0.000000000,-0.000000000,535.363415806],\"no_solution\":-702,\"limit_error\":-702,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"rotarydelta\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[-0.000000000,-0.000000000,0.320396615],\"singular\":-704,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"tripod\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[2.000000000,3.000000000,-4.000000000],\"no_solution\":-702,\"singular\":-704,\"limit_error\":-702,\"geometry_error\":-703,\"branch\":0,\"iterations\":0},\"genhex\":{\"alternate_status\":0,\"alternate_branch\":1,\"alternate_pose\":[10.000000000,-5.000000000,-60.000000000],\"nonpositive\":-702,\"iteration_limit\":-702,\"max_error\":-702,\"singular\":-704,\"limit_error\":-702,\"branch\":0,\"iterations\":14,\"residual\":0.000000000857},\"pentapod\":{\"alternate_status\":-702,\"alternate_branch\":1,\"alternate_pose\":[0.000000000,0.000000000,0.000000000],\"alternate_iterations\":1,\"nonpositive\":-702,\"nonpositive_iterations\":0,\"iteration_limit\":-702,\"iteration_limit_iterations\":1,\"max_error\":-702,\"max_error_iterations\":1,\"singular\":-704,\"singular_iterations\":0,\"limit_error\":-702,\"branch\":0,\"iterations\":12,\"residual\":0.000000001000}}}\n"
},
"wasm_registry": {
"command": "node build-wasm/sim_kinematics_registry_wasm_test.js",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "{\"schema\":\"kinematics-registry-samples.v1\",\"entries\":[{\"name\":\"trivkins\",\"type\":1,\"required\":\"\",\"min\":1,\"max\":9,\"capabilities\":119,\"parameters\":3},{\"name\":\"xyzac-trt-kins\",\"type\":2,\"required\":\"XYZAC\",\"min\":5,\"max\":9,\"capabilities\":115,\"parameters\":15},{\"name\":\"xyzbc-trt-kins\",\"type\":3,\"required\":\"XYZBC\",\"min\":5,\"max\":9,\"capabilities\":115,\"parameters\":15},{\"name\":\"xyzbcw\",\"type\":4,\"required\":\"XYZBCW\",\"min\":6,\"max\":9,\"capabilities\":51,\"parameters\":19},{\"name\":\"corexykins\",\"type\":5,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":3},{\"name\":\"rosekins\",\"type\":6,\"required\":\"XYZ\",\"min\":3,\"max\":3,\"capabilities\":19,\"parameters\":3},{\"name\":\"maxkins\",\"type\":7,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":19},{\"name\":\"rotatekins\",\"type\":8,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":3},{\"name\":\"5axiskins\",\"type\":9,\"required\":\"XYZBCW\",\"min\":6,\"max\":9,\"capabilities\":115,\"parameters\":19},{\"name\":\"scarakins\",\"type\":10,\"required\":\"XYZCAB\",\"min\":6,\"max\":6,\"capabilities\":19,\"parameters\":35},{\"name\":\"pumakins\",\"type\":11,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":19,\"parameters\":35},{\"name\":\"scorbot-kins\",\"type\":12,\"required\":\"XYZAB\",\"min\":5,\"max\":5,\"capabilities\":19,\"parameters\":35},{\"name\":\"genserkins\",\"type\":13,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":27,\"parameters\":195},{\"name\":\"lineardeltakins\",\"type\":14,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"rotarydeltakins\",\"type\":15,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"tripodkins\",\"type\":16,\"required\":\"XYZ\",\"min\":3,\"max\":9,\"capabilities\":51,\"parameters\":35},{\"name\":\"genhexkins\",\"type\":17,\"required\":\"XYZABC\",\"min\":6,\"max\":6,\"capabilities\":27,\"parameters\":171},{\"name\":\"pentakins\",\"type\":18,\"required\":\"XYZAB\",\"min\":5,\"max\":5,\"capabilities\":27,\"parameters\":171}],\"count\":18,\"verified\":18,\"capability_union\":127,\"parameter_union\":255,\"registry_hash\":3966926008000628109,\"lookup_status\":0,\"iterative_require\":0,\"capability_error\":-711,\"parameter_error\":-711,\"type_mismatch\":-703,\"coordinate_error\":-703,\"joint_error\":-703,\"unknown_name\":-705,\"path_name\":-712,\"range_error\":-702}\n"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,375 @@
{
"boundaries": [
"sampler/streamer/loadusr and realtime compiler paths remain explicit host/resource boundaries",
"userspace and dynamic .comp execution is HOST_EXCLUDED; custom component compile and relative headers are SOURCE_BLOCKED",
"native/WASM SimHAL golden is exact for the static component behavior exercised by the Worker fixtures"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"HOST_EXCLUDED": 3,
"PASSED": 3,
"SOURCE_BLOCKED": 2,
"fixture_files": 23,
"selected_cases": 8
},
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^sim_hal_test$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "dd405009db8d3592009fdbc1be37e423b599a00ec20cfbd10802469c7fbc2c5d"
},
"expected_checkresult_comparison": {
"compared_byte_for_byte": false,
"fixture_hashes_verified": true,
"reason": "source HAL expected/checkresult files are retained and hashed; host halrun/sampler logs are unavailable to this static Worker adapter",
"status": "SOURCE_BLOCKED"
},
"native_wasm": {
"golden_diff": {
"byte_identical": true,
"first_difference": null,
"native_stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332",
"status": "PASSED",
"wasm_stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"native": {
"command": [
"build-native/sim_hal_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_hal_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "86e28529b7a182b9109093a4130da51d6d51c1b005e4f4093622e2b4b1816332"
}
},
"report_sha256": "5a78e507bbbb6b97863a1038f6544def682147081c34b3931897b110af2f694c",
"schema": "linuxcnc-source-hal-execution.v1",
"scope": [
"HAL regression/functional",
"static SimHAL components",
".comp declaration preflight"
],
"status": "verified",
"task_id": "S5-05",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_source_hal_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "41bee32bf728cc58bf7f58acc3e483353a07909fc9d7b50f2f6948e57fa8828a"
},
"fixture_hashes_verified": true,
"golden": {
"aggregate_hash": "fnv1a64:524842c82f8b7d32",
"boundaries": [
"sampler/streamer/loadusr and realtime compiler paths remain explicit host/resource boundaries",
"userspace and dynamic .comp execution is HOST_EXCLUDED; relative-header compiler is SOURCE_BLOCKED",
"Worker static HAL behavior is compared with native/WASM SimHAL evidence by the report generator"
],
"cases": [
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 354,
"path": "linuxcnc/tests/abs.0/test.hal",
"sha256": "ef6f60aa59d0efe54d8768b598d7e31c2aeef3d1f3ba49600bdb1d5e3b0e53cd"
},
{
"bytes": 140,
"path": "linuxcnc/tests/abs.0/expected",
"sha256": "e22258aad35e5a576cbd0fbfe0b41c78619588a266eb06feacf70df7fba9593c"
}
],
"id": "source-test:linuxcnc/tests/abs.0/test.hal",
"result": {
"negative": 1,
"out": 0.25,
"pending_commands": [
"loadrt sampler cfg=ff depth=350",
"loadrt streamer cfg=f depth=350",
"loadusr -w sh runstreamer",
"start",
"loadusr -w halsampler -n 7"
],
"positive": 0,
"sign": 1,
"state_hash": "fnv1a64:356c61ad4ff79e30",
"tick": 1
},
"result_hash": "fnv1a64:101c5be3248936e3",
"status": "PASSED"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 604,
"path": "linuxcnc/tests/edge/rising/test.hal",
"sha256": "969b967cb577a1404b307a0c471e4ddff171071f6b430fdbd163df11bc434322"
},
{
"bytes": 70,
"path": "linuxcnc/tests/edge/rising/expected",
"sha256": "c8d3cc024d2d85f74d7dd36068ae8e1e96f29d4e6c1551ee4dce2dbfaf0c0256"
}
],
"id": "source-test:linuxcnc/tests/edge/rising/test.hal",
"result": {
"first": 0,
"last_input": 1,
"pending_commands": [
"loadrt sampler cfg=bbb depth=500",
"loadrt streamer cfg=b depth=500",
"loadusr -w sh runstreamer",
"start",
"loadusr -w halsampler -n 10"
],
"rising_output": 1,
"state_hash": "fnv1a64:353dd327aa5cb286",
"tick": 2
},
"result_hash": "fnv1a64:d7d6a30ed1ea1903",
"status": "PASSED"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 604,
"path": "linuxcnc/tests/edge/rising-starting-high/test.hal",
"sha256": "969b967cb577a1404b307a0c471e4ddff171071f6b430fdbd163df11bc434322"
},
{
"bytes": 70,
"path": "linuxcnc/tests/edge/rising-starting-high/expected",
"sha256": "ffb7fd80c715f57eed253cdef5d5d46f37aa45eccd0807f6545d8ddc32a999c2"
}
],
"id": "source-test:linuxcnc/tests/edge/rising-starting-high/test.hal",
"result": {
"first": 0,
"last_input": 1,
"pending_commands": [
"loadrt sampler cfg=bbb depth=500",
"loadrt streamer cfg=b depth=500",
"loadusr -w sh runstreamer",
"start",
"loadusr -w halsampler -n 10"
],
"rising_output": 0,
"state_hash": "fnv1a64:2b47c0543e0ecd06",
"tick": 2
},
"result_hash": "fnv1a64:8f373ab045e4eeb4",
"status": "PASSED"
},
{
"adapter": "SOURCE_BLOCKED",
"fixture": [
{
"bytes": 90,
"path": "linuxcnc/tests/halcompile/names/names_match.comp",
"sha256": "7fe23ec58d2a4be8a0e0df215cd5b546380981f5b262dfe2e3feb325bd0db766"
},
{
"bytes": 89,
"path": "linuxcnc/tests/halcompile/names/names_dont_match.comp",
"sha256": "3091d43ff90a3fc88365458e352eb779697271c8564d93c3e0e236f5850a1395"
},
{
"bytes": 0,
"path": "linuxcnc/tests/halcompile/names/expected",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"bytes": 578,
"path": "linuxcnc/tests/halcompile/names/test.sh",
"sha256": "9e51df39c0f19ed7bdb71deea9e2bba84bbb9550d07670bd799c209c45f8aab2"
}
],
"id": "source-test:linuxcnc/tests/halcompile/names/test.sh",
"reason": "custom .comp declarations require native halcompile and are not static Worker components",
"result": {
"matched": {
"component": "names_match",
"functions": 2,
"options": [],
"params": 0,
"pins": 1,
"state_hash": "fnv1a64:9cdea8f122f51aa4",
"status": "blocked"
},
"mismatch_expected": "compiler_component_name_mismatch",
"mismatch_parser": "blocked"
},
"result_hash": "fnv1a64:c1651e3c50532c78",
"status": "SOURCE_BLOCKED"
},
{
"adapter": "SOURCE_BLOCKED",
"fixture": [
{
"bytes": 102,
"path": "linuxcnc/tests/halcompile/relative-header/relative_header.comp",
"sha256": "1c90666b45e4676a2bcbe7fa70f3fa7a477bca7035f5dfa47738f8ccd7c77871"
},
{
"bytes": 12,
"path": "linuxcnc/tests/halcompile/relative-header/local.h",
"sha256": "4767235cb67f169cad00d920f225a05dcf4a11b3a71b215277b2ecc879ce82f0"
},
{
"bytes": 92,
"path": "linuxcnc/tests/halcompile/relative-header/checkresult",
"sha256": "943f82a615ec0a69017f39c789cb3310ea2dee034bfe780ba69445b39dd436d0"
},
{
"bytes": 61,
"path": "linuxcnc/tests/halcompile/relative-header/test.sh",
"sha256": "11b0cc0404485fd9687a25a005f7e3c307b3a51c61e8ef46050137046e7013c9"
}
],
"id": "source-test:linuxcnc/tests/halcompile/relative-header/test.sh",
"reason": "native halcompile and relative header compiler unavailable",
"result": {
"parser_component": "relative_header",
"parser_status": "blocked",
"reason": "native halcompile and relative header compiler unavailable"
},
"result_hash": "fnv1a64:bfc74683c16491c2",
"status": "SOURCE_BLOCKED"
},
{
"adapter": "HOST_EXCLUDED",
"fixture": [
{
"bytes": 642,
"path": "linuxcnc/tests/halcompile/userspace-count-names/userspace_count_names.comp",
"sha256": "db784654cc520c9b3a23fefec491937ad8a2ac1e70f96617f0ec6810542e3b34"
},
{
"bytes": 231,
"path": "linuxcnc/tests/halcompile/userspace-count-names/checkresult",
"sha256": "39a9312018e559f62ba2816e6c561a56d993a79d89f31e307a4150bbe6401dc3"
},
{
"bytes": 613,
"path": "linuxcnc/tests/halcompile/userspace-count-names/test.sh",
"sha256": "9efc72e95db53104da939ebd0d24073c23d3911e85ea31030ea9fc97a999d36b"
}
],
"id": "source-test:linuxcnc/tests/halcompile/userspace-count-names/test.sh",
"reason": "userspace component requires host process and signal APIs",
"result": {
"options": [
{
"line": 2,
"name": "userspace",
"value": null
},
{
"line": 3,
"name": "userinit",
"value": null
}
],
"parser_component": "userspace_count_names",
"parser_status": "blocked",
"reason": "userspace component requires host process and signal APIs"
},
"result_hash": "fnv1a64:ad700f5aa89d0110",
"status": "HOST_EXCLUDED"
},
{
"adapter": "HOST_EXCLUDED",
"fixture": [
{
"bytes": 117,
"path": "linuxcnc/tests/symbols.0/test_define.comp",
"sha256": "9b9b04545dc77d3778edb75c25082f91acf69c8c7766c51181856ba67ae7c384"
},
{
"bytes": 219,
"path": "linuxcnc/tests/symbols.0/checkresult",
"sha256": "605a58405e8f5d50058d582be1198f9d1c3492c4a1f0452248a8a5950c9be93d"
},
{
"bytes": 127,
"path": "linuxcnc/tests/symbols.0/test.sh",
"sha256": "ff7d6d72c87cc0f2529412c5f18d1724602552d1bbaeea8d8025a6b75a62b62f"
}
],
"id": "source-test:linuxcnc/tests/symbols.0/test.sh",
"reason": "source test invokes host halcompile/rtapi component compiler",
"result": {
"parser_component": "test_define",
"parser_status": "blocked",
"reason": "source test invokes host halcompile/rtapi component compiler"
},
"result_hash": "fnv1a64:03ce2699a48b08df",
"status": "HOST_EXCLUDED"
},
{
"adapter": "HOST_EXCLUDED",
"fixture": [
{
"bytes": 130,
"path": "linuxcnc/tests/symbols.1/test_define1.comp",
"sha256": "23de163894822c27be90f4af4076a924ab7dc8dbd41c1bdf4bf382a0c13f1a64"
},
{
"bytes": 199,
"path": "linuxcnc/tests/symbols.1/checkresult",
"sha256": "a6a00fca137dcef9d6d1bc5e22a787b1bc8ddd4840d558366523e3090e05ab3e"
},
{
"bytes": 126,
"path": "linuxcnc/tests/symbols.1/test.sh",
"sha256": "7a9a117668af8d87151a830a7c2c95ae6af81215647e1dbd28b71dae5077c8aa"
}
],
"id": "source-test:linuxcnc/tests/symbols.1/test.sh",
"reason": "source test invokes host halcompile/rtapi component compiler",
"result": {
"parser_component": "test_define1",
"parser_status": "blocked",
"reason": "source test invokes host halcompile/rtapi component compiler"
},
"result_hash": "fnv1a64:d1a01ae5002e23e6",
"status": "HOST_EXCLUDED"
}
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"HOST_EXCLUDED": 3,
"PASSED": 3,
"SOURCE_BLOCKED": 2
},
"fixture_file_count": 23,
"schema": "linuxcnc-source-hal-adapter.v1"
}
}
}

View File

@@ -0,0 +1,313 @@
{
"boundaries": [
"upstream canonical logger parity remains SOURCE_BLOCKED; DO/ENDDO and G64/G61 now have Worker adapters",
"remap/filter Python is represented only through allowlisted PythonCallbacks; host imports remain REAL-EXCLUDED",
"source expected/checkresult hashes are evidence inputs, not an unverified parity claim"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"fixture_files": 26,
"passed": 8,
"pending": 0,
"selected_cases": 8,
"worker_task_motion_pending": 0
},
"execution": {
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc"
},
"expected_checkresult_comparison": {
"compared_byte_for_byte": false,
"fixture_hashes_verified": true,
"reason": "locked source expected/checkresult files are hashed and retained; upstream canonical logger is unavailable in this Worker adapter",
"status": "SOURCE_BLOCKED"
},
"parse_error": null,
"pending_adapters": [],
"report_sha256": "a0cc9567e85814a69d43ab535f3c7826f66a0289bc3134519600fab35643b6aa",
"schema": "linuxcnc-source-interpreter-execution.v1",
"scope": [
"tests/interp/**",
"tests/remap/**",
"tests/oword/**",
"filter capability boundary"
],
"status": "verified",
"task_id": "S5-04",
"wasm_core": {
"logical_tick": false,
"runner": "build-wasm/linuxcnc-sim-core.wasm",
"status": "PASSED"
},
"worker_golden": {
"aggregate_hash": "fnv1a64:32ac09b142f254d0",
"boundaries": [
"G64/G61 modal motion is represented by the Worker motion_control state; upstream canonical logger parity remains SOURCE_BLOCKED",
"remap Python handlers are represented by allowlisted PythonCallbacks; host imports remain REAL-EXCLUDED",
"expected/checkresult bytes are hashed and never treated as passed without an adapter result"
],
"cases": [
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 180,
"path": "linuxcnc/tests/interp/oword-bug315/test.ngc",
"sha256": "a6d38015aab2a29b15911ac58953bf234d2d5e086867dc31246e5146957e4822"
},
{
"bytes": 660,
"path": "linuxcnc/tests/interp/oword-bug315/expected",
"sha256": "40aa501232fe5fe516341480fb35735076653fce2224b6a17f1b54b0a338b5b7"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/oword-bug315/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/oword-bug315/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":4,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:00000000270e6260",
"line": 14,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:e1da3f5c4c27be39"
},
"result_hash": "fnv1a64:a3127bfb71663529"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 236,
"path": "linuxcnc/tests/oword/sub.0/test.ngc",
"sha256": "91b6257cc40d83f39d7ceb39540d0e50819747515340a38947b90c37562e3614"
},
{
"bytes": 893,
"path": "linuxcnc/tests/oword/sub.0/expected",
"sha256": "ec31e8323062c27df87c8729ea0a4bb5bb973ae840f61b0e20221ddae9c10e02"
},
{
"bytes": 75,
"path": "linuxcnc/tests/oword/sub.0/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/oword/sub.0/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":7,\"modal_hash\":5485903789020828696,\"motion_mode\":0,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:000000009116a3c2",
"line": 17,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:6d93401fd98f128d"
},
"result_hash": "fnv1a64:7496ff11c7127f79"
},
{
"adapter": "PURE_FUNCTIONAL",
"fixture": [
{
"bytes": 31,
"path": "linuxcnc/tests/interp/oword-unwind/test.ngc",
"sha256": "2662d065bc501e05e7eee6bcc5941d93360a0d0ca0acf785d48232dd39492063"
},
{
"bytes": 625,
"path": "linuxcnc/tests/interp/oword-unwind/expected",
"sha256": "d49612c6b1b700b551f7d3bccf4794f0562e968fca052a45e6176d80ed611000"
},
{
"bytes": 92,
"path": "linuxcnc/tests/interp/oword-unwind/test.sh",
"sha256": "87e1fedef3a3fee58cc16e01091dab30d0d69fd74e4812d37ee31f64e8d16af6"
}
],
"id": "source-test:linuxcnc/tests/interp/oword-unwind/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":0,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":0,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "error",
"interpreter_state_hash": "fnv1a64:00000000dee1b045",
"line": 1,
"observed_detail": "program_subroutine_missing",
"observed_status": "error",
"source_hash": "fnv1a64:5ce70e6f0f9571f6"
},
"result_hash": "fnv1a64:26b54c1eccc3d617"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 658,
"path": "linuxcnc/tests/interp/do-while-break/test.ngc",
"sha256": "bdc3978b3fb61ff53febeb546fcc34713796a756483e0d1c883293e5ae3ad522"
},
{
"bytes": 790,
"path": "linuxcnc/tests/interp/do-while-break/expected",
"sha256": "c21310e5db7c1558243801485467f857af7cbf99f7813ede6dd439991ba0af61"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/do-while-break/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/do-while-break/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":13,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:0000000086efefe9",
"line": 30,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:23daa58d09abf802"
},
"result_hash": "fnv1a64:e03fcc463cf52b26"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 31,
"path": "linuxcnc/tests/interp/g6164/test.ngc",
"sha256": "9a4f69ca8a8facfbffc37018fc69b1591849ac8e1aadff9574db29f6c8395894"
},
{
"bytes": 963,
"path": "linuxcnc/tests/interp/g6164/expected",
"sha256": "6d7cbe913ade6f4308162b8708a5d65c67b44004ef5d073b57509b38ec6f91cf"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/g6164/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/g6164/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":1,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:000000000d869e05",
"line": 6,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:a53b92e907dba4f9"
},
"result_hash": "fnv1a64:1b07b54b1a8fd090"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 1429,
"path": "linuxcnc/tests/remap/oword-pycall/oword.py",
"sha256": "903751095b684c2105ea51aab9f011783439f3be6b73fe103bf4df818b7f25ba"
},
{
"bytes": 833,
"path": "linuxcnc/tests/remap/oword-pycall/subs.py",
"sha256": "d986503a92ab3ff12dd924cda39d18cc057d311c80f37ca1f228e00d5cf330e3"
},
{
"bytes": 103,
"path": "linuxcnc/tests/remap/oword-pycall/test.ini",
"sha256": "98c78807c8b691af357149778a3f022bd86e2d07d686eba18756427f47ef4b66"
},
{
"bytes": 1427,
"path": "linuxcnc/tests/remap/oword-pycall/expected",
"sha256": "6b2d0a541ec6c662d030ad5f71281b99f20b9e71a563af33716fe75dc2eaea07"
}
],
"id": "source-test:linuxcnc/tests/remap/oword-pycall/test.sh",
"result": {
"callbacks": 2,
"multiply": 210,
"square": 625,
"state_hash": "fnv1a64:6d520d540269ef1f"
},
"result_hash": "fnv1a64:6d470d5a25d09ced"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 989,
"path": "linuxcnc/tests/remap/fail/body-py/remap.py",
"sha256": "fe7a6d499d135df6dd879b3401b387909af0dae79c6c05a9423f45904fb6048d"
},
{
"bytes": 836,
"path": "linuxcnc/tests/remap/fail/body-py/subs.py",
"sha256": "2457646599354453f1852aa1ce41c25fb3de32a8674d4ae5f89196e36eef2836"
},
{
"bytes": 146,
"path": "linuxcnc/tests/remap/fail/body-py/test.ini",
"sha256": "81ff92b89640212738f9008fa9b1d911c98bc911226a8c096e034c01ace795f2"
},
{
"bytes": 495,
"path": "linuxcnc/tests/remap/fail/body-py/expected",
"sha256": "6fe4cabf0d7a62699b4c7c9208302d287fa8ecd45842cb7f7f05f51a004fef1b"
}
],
"id": "source-test:linuxcnc/tests/remap/fail/body-py/test.sh",
"result": {
"code": "callback_exception",
"state_hash": "fnv1a64:7872677acffee276",
"status": "blocked"
},
"result_hash": "fnv1a64:8ccaf50f9fc9ceca"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 1109,
"path": "linuxcnc/tests/remap/remap-io/remap.py",
"sha256": "5893f90e8f28f5887839926260a9bb91df105a0d8449388f7cedaa1e4f0d3950"
},
{
"bytes": 2566,
"path": "linuxcnc/tests/remap/remap-io/test-py.ini",
"sha256": "4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659"
},
{
"bytes": 5542,
"path": "linuxcnc/tests/remap/remap-io/expected",
"sha256": "64d216aaf7d78567423590088b31823e45ccea8e34b73da0fe675ee0749d024f"
}
],
"id": "source-test:linuxcnc/tests/remap/remap-io/test-py.ini",
"result": {
"blocked": "real_hardware_excluded",
"state_hash": "fnv1a64:443f0c72b715256a",
"status": "verified"
},
"result_hash": "fnv1a64:933bd136f99c4cd9"
}
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"PASSED": 8,
"WORKER_TASK_MOTION_PENDING": 0
},
"fixture_file_count": 26,
"pending": [],
"schema": "linuxcnc-source-interpreter-adapter.v1"
}
}

View File

@@ -0,0 +1,407 @@
{
"boundaries": [
"startup tool table resolution remains SOURCE_BLOCKED until full Task/configuration startup is available",
"motion logger abort remains WORKER_TASK_MOTION_PENDING",
"ClassicLadder and realtime hardware paths remain HOST_EXCLUDED",
"native/WASM IO and device outputs are byte-identical for static fixtures"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"HOST_EXCLUDED": 1,
"PASSED": 3,
"SOURCE_BLOCKED": 2,
"WORKER_TASK_MOTION_PENDING": 1,
"fixture_files": 30,
"selected_cases": 7
},
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^(sim_io_test|sim_device_io_test)$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "b238b3ab8e42620369a7cb4b081873cd08dbea19ceb849424c19ee82b439a65c"
},
"expected_checkresult_comparison": {
"compared_byte_for_byte": false,
"fixture_hashes_verified": true,
"reason": "source IO/startup/tool expected/checkresult files are retained and hashed; host GUI/configuration oracle is unavailable to the Worker adapter",
"status": "SOURCE_BLOCKED"
},
"native_wasm": {
"sim_device_io": {
"golden_diff": {
"byte_identical": true,
"first_difference": null,
"native_stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234",
"status": "PASSED",
"wasm_stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
},
"native": {
"command": [
"build-native/sim_device_io_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_device_io_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
}
},
"sim_io": {
"golden_diff": {
"byte_identical": true,
"first_difference": null,
"native_stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0",
"status": "PASSED",
"wasm_stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
},
"native": {
"command": [
"build-native/sim_io_test"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_io_wasm_test.js"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c8f4ca0cb1e8931b8a75d13b2d537629367aacb181bee261231fdd6f19afbdd0"
}
}
},
"report_sha256": "797162801950d212a5cebe0e4ba68f0e2d1dfaf04c390286a42c26ecefe9c3b4",
"schema": "linuxcnc-source-io-execution.v1",
"scope": [
"IO",
"startup tool table",
"toolchanger ack",
"hard limits",
"limit3",
"motion abort",
"ClassicLadder boundary"
],
"status": "verified",
"task_id": "S5-06",
"worker": {
"execution": {
"command": [
"node",
"web/worker/test_source_io_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "21f2950bff929b403137feddce1e4b27e7535e8b58bc7493b4bc4ca43dce359b"
},
"fixture_hashes_verified": true,
"golden": {
"aggregate_hash": "fnv1a64:77ddfb5c858175d5",
"boundaries": [
"startup tool table resolution remains SOURCE_BLOCKED until full Task/configuration startup is available",
"motion logger abort remains WORKER_TASK_MOTION_PENDING; no GUI or wall-clock result is promoted",
"ClassicLadder and realtime hardware paths remain HOST_EXCLUDED"
],
"cases": [
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 79,
"path": "linuxcnc/tests/hard-limits/test.sh",
"sha256": "bb5ddfad3ddc8437fe82d28ec0a3c0fe83e85b0fb6e7899c7bad2c419f1afed8"
},
{
"bytes": 1265,
"path": "linuxcnc/tests/hard-limits/hard-limits.ini",
"sha256": "891059113a5ca0ccf655d35fd0f658c55cb94041fb884deee9d9aef0d3e494c9"
},
{
"bytes": 486,
"path": "linuxcnc/tests/hard-limits/hard-limits.hal",
"sha256": "edd3f749b8cdcabd9a2372de84974ac07c17f089d5b69075660cdda960526851"
},
{
"bytes": 122,
"path": "linuxcnc/tests/hard-limits/checkresult",
"sha256": "928f7d32ba9bd32b991ffd9de98a75e824f8523a8cc38f69774065a929e33897"
}
],
"id": "source-test:linuxcnc/tests/hard-limits/test.sh",
"result": {
"axis": 0.01,
"fault": "limit",
"limit": true,
"state_hash": "fnv1a64:9425dd05174f8298",
"tick": 1
},
"result_hash": "fnv1a64:90ad1618f904ed4d",
"status": "PASSED"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 292,
"path": "linuxcnc/tests/limit3/limit-max-velocity/test.hal",
"sha256": "d439dee0b8daf92a498077162932acc6e9f16236a3d9acc7f94c8adff07fa101"
},
{
"bytes": 12472,
"path": "linuxcnc/tests/limit3/limit-max-velocity/expected",
"sha256": "9afb379fee3ce80cf7f314b083a101aa599644eca67c9fc1896fefd92140bc4d"
}
],
"id": "source-test:linuxcnc/tests/limit3/limit-max-velocity/test.hal",
"result": {
"axis": 0.5,
"fault": "following_error",
"following_error": 0.02,
"state_hash": "fnv1a64:ec92f105cb34c6da",
"tick": 1
},
"result_hash": "fnv1a64:5a1d18ec78bc0262",
"status": "PASSED"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 92,
"path": "linuxcnc/tests/toolchanger/m61/test.sh",
"sha256": "11aa8c2af0163b7c9a736507c3ea89bcdae717f30dcd86be61641e2ef1aa77bb"
},
{
"bytes": 67,
"path": "linuxcnc/tests/toolchanger/m61/checkresult",
"sha256": "c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa"
},
{
"bytes": 1971,
"path": "linuxcnc/tests/toolchanger/m61/m61-test.ini",
"sha256": "eee36d051ed62d0e3b47980001c1654b25616155a9b9d31547b13f333610e34d"
},
{
"bytes": 2056,
"path": "linuxcnc/tests/toolchanger/m61/mod_core_sim.hal",
"sha256": "ea61e3971fcf818ba590c4434672c0ef91cd39ddc3e847825e0057f7aee5f5cf"
},
{
"bytes": 8356,
"path": "linuxcnc/tests/toolchanger/m61/test-ui.py",
"sha256": "800b0ef1bd1f7fdeb77af4de22d1cededfc21cb0441c18c879b661acecdc93f7"
}
],
"id": "source-test:linuxcnc/tests/toolchanger/m61/test.sh",
"result": {
"command": {
"ack_tick": 1,
"deadline_tick": 2,
"issued_tick": 0,
"kind": "TOOL_CHANGE",
"operation_id": "tool-change-7",
"side_effect_count": 1,
"status": "acked"
},
"state_hash": "fnv1a64:7ad2320cbbbb8f5f"
},
"result_hash": "fnv1a64:a8cd1748e9f419af",
"status": "PASSED"
},
{
"adapter": "SOURCE_BLOCKED",
"fixture": [
{
"bytes": 2,
"path": "linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/expected-startup-tool-number",
"sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa"
},
{
"bytes": 79,
"path": "linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/tool.tbl.original",
"sha256": "1db74ae9166fe086158f4b19442a2360785b55202cb48bf7230df7b9da610f8c"
},
{
"bytes": 1834,
"path": "linuxcnc/tests/io-startup/nonrandom/test.ini",
"sha256": "76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3"
},
{
"bytes": 85,
"path": "linuxcnc/tests/io-startup/shared-test.sh",
"sha256": "e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006"
},
{
"bytes": 67,
"path": "linuxcnc/tests/io-startup/checkresult",
"sha256": "c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa"
}
],
"id": "source-test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-p0/test.sh",
"reason": "startup tool table requires full Task/configuration runtime",
"result": {
"expected_startup_tool": 0,
"reason": "startup tool table requires full Task/configuration runtime"
},
"result_hash": "fnv1a64:7c207a1152e52b38",
"status": "SOURCE_BLOCKED"
},
{
"adapter": "SOURCE_BLOCKED",
"fixture": [
{
"bytes": 2,
"path": "linuxcnc/tests/io-startup/nonrandom/tool-in-P0/expected-startup-tool-number",
"sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa"
},
{
"bytes": 79,
"path": "linuxcnc/tests/io-startup/nonrandom/tool-in-P0/tool.tbl.original",
"sha256": "509dee0e1ce678f6aa08c6612fae0f537959885f0858f0d94faa32d388c887c1"
},
{
"bytes": 1834,
"path": "linuxcnc/tests/io-startup/nonrandom/test.ini",
"sha256": "76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3"
},
{
"bytes": 85,
"path": "linuxcnc/tests/io-startup/shared-test.sh",
"sha256": "e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006"
},
{
"bytes": 67,
"path": "linuxcnc/tests/io-startup/checkresult",
"sha256": "c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa"
}
],
"id": "source-test:linuxcnc/tests/io-startup/nonrandom/tool-in-p0/test.sh",
"reason": "startup tool table requires full Task/configuration runtime",
"result": {
"expected_startup_tool": 0,
"reason": "startup tool table requires full Task/configuration runtime"
},
"result_hash": "fnv1a64:7c207a1152e52b38",
"status": "SOURCE_BLOCKED"
},
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"fixture": [
{
"bytes": 183,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test.sh",
"sha256": "46f57af48221b1c3f17e3b9e68d6cdd1c55052a0d37b3aa4ef4afc197f22f913"
},
{
"bytes": 2212,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini",
"sha256": "4c38be12b4fed74481506483e6f30f87a8afc1a9e2d508fc3584fe196602ca0d"
},
{
"bytes": 650,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test-ui.py",
"sha256": "99790f9e239500ce02e8e45cacf8cd5566e419d0b4dd0484a6c8204720ed59eb"
},
{
"bytes": 263,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/nc_files/init.ngc",
"sha256": "80b41785f68766cb8e9ad0b5ff47bf3b51172888acf5601d40c28fc45395365a"
},
{
"bytes": 76,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/checkresult",
"sha256": "177380330f4a079d4e5e5198b43be508ccf9f335f5e3fe114dccb6c2dfc45fe6"
},
{
"bytes": 4182,
"path": "linuxcnc/tests/motion-logger/startup-gcode-abort/expected.motion-logger.in",
"sha256": "08a8034dc963f5a94a6da49e9a8b638255f82d3b66da0aadd5e26c63cd9b74a9"
}
],
"id": "source-test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.sh",
"reason": "motion logger and startup abort endpoint require Task/motion adapter",
"result": {
"session_tick": 0,
"task_hash": "fnv1a64:d293ad8f8d4bdf13",
"task_program_status": "aborted"
},
"result_hash": "fnv1a64:5b4bf8fb347cf008",
"status": "WORKER_TASK_MOTION_PENDING"
},
{
"adapter": "HOST_EXCLUDED",
"fixture": [
{
"bytes": 259,
"path": "linuxcnc/tests/classicladder/estop/test.sh",
"sha256": "c84df79ae64ca9d8c5e5604699d47303874e76c4b0a484379ae7249bf83e754c"
},
{
"bytes": 645,
"path": "linuxcnc/tests/classicladder/estop/classicladder-estop.ini",
"sha256": "7c6c95f5d6d70e0508e05b8cf5754fda32f55fee7ed16bbff2760b77373c4cd0"
},
{
"bytes": 1683,
"path": "linuxcnc/tests/classicladder/estop/classicladder-estop.hal",
"sha256": "aec927b5809f5dd1425ed783ec5ef687070636186217a475fdcb919760b63f23"
},
{
"bytes": 4448,
"path": "linuxcnc/tests/classicladder/estop/classicladder-estop.clp",
"sha256": "e5ab35ca25d65868b976e9e6ddc9af241160c158f5084c938d9501ace9c2f157"
},
{
"bytes": 1558,
"path": "linuxcnc/tests/classicladder/estop/classicladder-estop-ui.py",
"sha256": "c998e3ddf86894c9603e633023ffc85d742784b963e18a4c4f57f21a80a513d6"
},
{
"bytes": 121,
"path": "linuxcnc/tests/classicladder/estop/checkresult",
"sha256": "583883dc785e6aab0f1313cfc20ed86e9c362082b5c47514264abbbbf973c80e"
}
],
"id": "source-test:linuxcnc/tests/classicladder/estop/test.sh",
"reason": "ClassicLadder GUI/runtime is host excluded",
"result": {
"reason": "ClassicLadder GUI/runtime is host excluded"
},
"result_hash": "fnv1a64:6d24438783646acd",
"status": "HOST_EXCLUDED"
}
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"HOST_EXCLUDED": 1,
"PASSED": 3,
"SOURCE_BLOCKED": 2,
"WORKER_TASK_MOTION_PENDING": 1
},
"fixture_file_count": 30,
"schema": "linuxcnc-source-io-adapter.v1"
}
}
}

View File

@@ -0,0 +1,327 @@
{
"boundaries": [
"first divergence is null for all implemented native/WASM/Worker static goldens and endpoint replay modes",
"SOURCE_BLOCKED, HOST_EXCLUDED and WORKER_TASK_MOTION_PENDING remain separate from passed counts",
"recovery equality covers logical checkpoint/replay/trace import; browser OPFS crash oracle remains blocked"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"coverage": {
"configuration_blocked": 208,
"configuration_entries": 264,
"configuration_ready": 56,
"native_pure_baseline_passed": 12,
"source_matrix_entries": 264,
"source_matrix_entrypoints": 233,
"unit_adapter_cases": 9
},
"difference_summary": {
"all_native_wasm_static_goldens_equal": true,
"first_divergence": null,
"native_wasm_golden": {
"S5-03": true,
"S5-05": true,
"S5-06": true
},
"pending_or_blocked": {
"S5-01": {
"HOST_EXCLUDED": 57,
"PURE_FUNCTIONAL": 22,
"PURE_REGRESSION": 107,
"SOURCE_BLOCKED": 3,
"WORKER_SIM_ADAPTER": 71
},
"S5-02": {
"FAILED": 0,
"PASSED": 12,
"TIMEOUT": 0
},
"S5-04": {
"fixture_files": 26,
"passed": 8,
"pending": 0,
"selected_cases": 8,
"worker_task_motion_pending": 0
},
"S5-05": {
"HOST_EXCLUDED": 3,
"PASSED": 3,
"SOURCE_BLOCKED": 2,
"fixture_files": 23,
"selected_cases": 8
},
"S5-06": {
"HOST_EXCLUDED": 1,
"PASSED": 3,
"SOURCE_BLOCKED": 2,
"WORKER_TASK_MOTION_PENDING": 1,
"fixture_files": 30,
"selected_cases": 7
},
"S5-07": {
"BLOCKED": 208,
"READY": 56,
"sim_configs": 216,
"test_configs": 48,
"total": 264
}
}
},
"official_oracle": {
"reason": "locked source lacks official kinematics/recovery oracle and full desktop source runner",
"status": "SOURCE_BLOCKED"
},
"recovery_endpoints": {
"checkpoint_hash": "fnv1a64:4cdc2375892b77e5",
"continuous_hash": "fnv1a64:04f657933df9677c",
"first_divergence": null,
"mode_equal": true,
"recovered_hash": "fnv1a64:04f657933df9677c",
"recovery_equal": true,
"status": "verified",
"trace_hash": "fnv1a64:4fb723efd6fc794e",
"trace_import_equal": true
},
"repeat_execution": {
"commands": {
"endpoint_replay": {
"runs": [
{
"command": [
"node",
"web/worker/test_endpoint_replay_s4.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0f080b6ed7aae27332ff0a12fa59529d80f50aa79009a30786b3f014122d27e7"
},
{
"command": [
"node",
"web/worker/test_endpoint_replay_s4.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "0f080b6ed7aae27332ff0a12fa59529d80f50aa79009a30786b3f014122d27e7"
}
],
"stable": true
},
"recovery": {
"runs": [
{
"command": [
"node",
"web/worker/test_recovery_s3.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e8c777040d3a2ae725b29b4b816560010cddef2ece0945f5e80191609ccd851a"
},
{
"command": [
"node",
"web/worker/test_recovery_s3.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e8c777040d3a2ae725b29b4b816560010cddef2ece0945f5e80191609ccd851a"
}
],
"stable": true
},
"source_config": {
"runs": [
{
"command": [
"node",
"web/worker/test_source_config_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c3d69c8e274b2aa9b530173dad4ee2324508a63f7ae8afae63089dc7d3d02254"
},
{
"command": [
"node",
"web/worker/test_source_config_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c3d69c8e274b2aa9b530173dad4ee2324508a63f7ae8afae63089dc7d3d02254"
}
],
"stable": true
},
"source_hal": {
"runs": [
{
"command": [
"node",
"web/worker/test_source_hal_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "41bee32bf728cc58bf7f58acc3e483353a07909fc9d7b50f2f6948e57fa8828a"
},
{
"command": [
"node",
"web/worker/test_source_hal_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "41bee32bf728cc58bf7f58acc3e483353a07909fc9d7b50f2f6948e57fa8828a"
}
],
"stable": true
},
"source_interpreter": {
"runs": [
{
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc"
},
{
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc"
}
],
"stable": true
},
"source_io": {
"runs": [
{
"command": [
"node",
"web/worker/test_source_io_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "21f2950bff929b403137feddce1e4b27e7535e8b58bc7493b4bc4ca43dce359b"
},
{
"command": [
"node",
"web/worker/test_source_io_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "21f2950bff929b403137feddce1e4b27e7535e8b58bc7493b4bc4ca43dce359b"
}
],
"stable": true
},
"source_parity": {
"runs": [
{
"command": [
"node",
"web/worker/test_source_parity_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f8f4874e925c2e2ecc92a5100cf893f2ad699af319d4e68a26ac3681363ed138"
},
{
"command": [
"node",
"web/worker/test_source_parity_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f8f4874e925c2e2ecc92a5100cf893f2ad699af319d4e68a26ac3681363ed138"
}
],
"stable": true
}
},
"runs_per_command": 2,
"stable": true
},
"report_sha256": "172165647fc5e88fbb3271c6a719e3a946a7bd611a99bd8b0cac126850d155eb",
"schema": "linuxcnc-source-parity-s5.v1",
"source_reports": [
{
"bytes": 459392,
"path": "coverage/linuxcnc-source-test-s5.report.json",
"schema": "linuxcnc-source-test-matrix.v1",
"sha256": "5e8be188f808cc95de2d18b76a33814ac045fb0d42a0f6bf8dc23af3af0fc7a5",
"status": "verified",
"task_id": "S5-01"
},
{
"bytes": 12170,
"path": "coverage/linuxcnc-source-test-execution-s5.report.json",
"schema": "linuxcnc-source-test-execution.v1",
"sha256": "49f911fc8ecf6ceaee25be2dc42b2f1ea331e3f0ac1a480335ffdd69c086d21b",
"status": "verified",
"task_id": "S5-02"
},
{
"bytes": 13338,
"path": "coverage/linuxcnc-source-unit-execution-s5.report.json",
"schema": "linuxcnc-source-unit-execution.v1",
"sha256": "d8a3cd57479d6000beea9ca7fe02ae70523c58a4999ca2e52625e83f8ed0e1c9",
"status": "verified",
"task_id": "S5-03"
},
{
"bytes": 12698,
"path": "coverage/linuxcnc-source-interp-s5.report.json",
"schema": "linuxcnc-source-interpreter-execution.v1",
"sha256": "d68df986bbb6e730b8fc1499146954776f782d677095d675f7a5dda6378af77a",
"status": "verified",
"task_id": "S5-04"
},
{
"bytes": 14049,
"path": "coverage/linuxcnc-source-hal-s5.report.json",
"schema": "linuxcnc-source-hal-execution.v1",
"sha256": "2e4c2b7ba2eb63951f2a22a97e2769b05525b5881e74e2dab008db126fd2093c",
"status": "verified",
"task_id": "S5-05"
},
{
"bytes": 15823,
"path": "coverage/linuxcnc-source-io-s5.report.json",
"schema": "linuxcnc-source-io-execution.v1",
"sha256": "098e471ef105e6c363f6e48ae180a5c7ea7a4f38417da8b4c2194d00fe0844f9",
"status": "verified",
"task_id": "S5-06"
},
{
"bytes": 134124,
"path": "coverage/linuxcnc-source-config-s5.report.json",
"schema": "linuxcnc-source-config-execution.v1",
"sha256": "baf06fbaf9d657253ca29fcee549b33bda61fb777a73c0ffb29170c9b0ae7c26",
"status": "verified",
"task_id": "S5-07"
}
],
"status": "verified",
"task_id": "S5-08"
}

View File

@@ -0,0 +1,332 @@
{
"boundaries": [
"this task establishes native LinuxCNC source baseline; WASM/Worker adapter execution is S5-03",
"HOST_EXCLUDED and SOURCE_BLOCKED entries are not counted as native candidates",
"no source test result is promoted to official oracle without exact adapter parity"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"FAILED": 0,
"PASSED": 12,
"TIMEOUT": 0
},
"report_sha256": "0270f33b4bc48d7586cd35999627960b911214b5242cee3f98ae1a7bef7f3e88",
"results": [
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/abs.0"
],
"expected_hash": "e22258aad35e5a576cbd0fbfe0b41c78619588a266eb06feacf70df7fba9593c",
"returncode": 0,
"source_hash": "cf32128ee875a994cacb4a3ff0a640616a138733a115681598afb1b17e806a45",
"source_id": "source-test:linuxcnc/tests/abs.0/test.hal",
"status": "PASSED",
"stderr_sha256": "bc2103c073cdbe312a3b89af4e711fcc67f0fe793023c6ada930ba5fefe135ce",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/abs.0",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/alias.0"
],
"expected_hash": "70bb80af9938f8eb9687f70ba4cd31fa5e5a4f771cdafd82639550a92f23015f",
"returncode": 0,
"source_hash": "f53032071917c96c49b0a0ee1d548cf69f13db2274d749825b8ec8f06beee8e2",
"source_id": "source-test:linuxcnc/tests/alias.0/test.hal",
"status": "PASSED",
"stderr_sha256": "f6aff748806473f06032218f9ed888851e89d7126b9426e7944feb0492d5e675",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/alias.0",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/and-or-not-mux.0"
],
"expected_hash": "defa17c429db04119e86120d3ccc50cdd13d7cd9bb97c77045795694939fd5ec",
"returncode": 0,
"source_hash": "e7da44eed680a2bf24213ffcf0c386e8c8dde80df60b3732380912db4cd5e182",
"source_id": "source-test:linuxcnc/tests/and-or-not-mux.0/test.hal",
"status": "PASSED",
"stderr_sha256": "4f89c3c5a39de28eaa465b0c554d21ae0741efa5bccae0f6886dea3e114b0ff5",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/and-or-not-mux.0",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/basic"
],
"expected_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"returncode": 0,
"source_hash": "9102e0c3ec8566bc60bdb78513b804c5f008c290019112d0f109de708aa608bc",
"source_id": "source-test:linuxcnc/tests/basic/test.hal",
"status": "PASSED",
"stderr_sha256": "53c387b59838a73518773c58e075a1991cba978da46809d36a090f6e9b3e4a47",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/basic",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/biquad"
],
"expected_hash": "ba38a3fc295aa78b167dfb4238649438e284e9c709e57a59bed61d5c93834235",
"returncode": 0,
"source_hash": "e10615f4f09267f9d134676d174c067933bfa74fb2a5f4cfc314cd67a0957cdb",
"source_id": "source-test:linuxcnc/tests/biquad/test.hal",
"status": "PASSED",
"stderr_sha256": "00516fe8b8315b39fd5002216df873b306383886ceffbea580ca8d22ba737258",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/biquad",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_REGRESSION",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/counter-encoder.0"
],
"expected_hash": "079e9762284dd63b50d8781ce112d88ad35a2f97b0855e4eec975d354cef2c30",
"returncode": 0,
"source_hash": "5928a3b6742b53daf6c8da48814df3718abe2c01421f74c7ed46b770da93fe1a",
"source_id": "source-test:linuxcnc/tests/counter-encoder.0/test.hal",
"status": "PASSED",
"stderr_sha256": "6c0c1a26bf441bfda4a3b6bc8c4baa18f8364c6eb26c09fb71c48d772fa7dfa0",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/counter-encoder.0",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/hal-link-unlink"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "d8070a1335d3e1d36bdd4bfbae31c5d3b5e59a1431bcef3cdb5252348f5c0168",
"source_id": "source-test:linuxcnc/tests/hal-link-unlink/test.sh",
"status": "PASSED",
"stderr_sha256": "c532503c82b1e0d7e31a9dfd36b261f024c812f5ca1f2e23e7d8ede65f57f2a6",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/hal-link-unlink",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/halcompile/extralib"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "ad4212018eab70cee48e59e2399b163263a6b7d969ac2d4e00a562a5e300fa56",
"source_id": "source-test:linuxcnc/tests/halcompile/extralib/test.sh",
"status": "PASSED",
"stderr_sha256": "430c3e52cc0bbe74cd5cc6932105b4d086055432332eaeba4ad22c3a9d263f97",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/halcompile/extralib",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/halcompile/relative-header"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "b70eb60a651f59483d30f158d3c0a0304dd42c0b26752ceef7ef25f269522b5b",
"source_id": "source-test:linuxcnc/tests/halcompile/relative-header/test.sh",
"status": "PASSED",
"stderr_sha256": "87b77ad5e94e10099c93c17cd35b98310335a4fb407779958437498fd73db327",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/halcompile/relative-header",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/halcompile/serial-out-of-tree"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "06efa04493a1af9090b2d946b5d3b7cdb26f66b52345f5a2d148457ed69e6754",
"source_id": "source-test:linuxcnc/tests/halcompile/serial-out-of-tree/test.sh",
"status": "PASSED",
"stderr_sha256": "983ef36947bfe50cf04b2fd8be888a047c9de953a99f3e1a240252527105c923",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/halcompile/serial-out-of-tree",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/halcompile/userspace"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "2d115eefa511a1c09100b38b5d8d9281558df633a526e65f66cf136be4cbbe29",
"source_id": "source-test:linuxcnc/tests/halcompile/userspace/test.sh",
"status": "PASSED",
"stderr_sha256": "b3ff532a437d4e99b106ce899783a99aaf1804809bdee08f0b9f0a0092d20c8b",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/halcompile/userspace",
"wasm_worker_status": "ADAPTER_PENDING"
},
{
"adapter": "PURE_FUNCTIONAL",
"command": [
"linuxcnc/scripts/runtests",
"-u",
"linuxcnc/tests/halcompile/userspace-count-names"
],
"expected_hash": null,
"returncode": 0,
"source_hash": "a9974534c374998b4d06f35a6f387e78916fcac61968ef51f07aa5dc4cd1c910",
"source_id": "source-test:linuxcnc/tests/halcompile/userspace-count-names/test.sh",
"status": "PASSED",
"stderr_sha256": "446b5c49d8e7e4190a5687b8cf20990288eb984cf73c500fead25093da203739",
"stdout_sha256": "0db56408c02d70aea810ab4859e76bf8f800ef530a02a7a42f39f9e119d33dde",
"summary": {
"expected": 0,
"failed": 0,
"skipped": 0,
"successful": 1,
"tests_run": 1
},
"test_directory": "linuxcnc/tests/halcompile/userspace-count-names",
"wasm_worker_status": "ADAPTER_PENDING"
}
],
"runner": {
"command": "linuxcnc/scripts/runtests -u <test_directory>",
"locale": "C",
"source_runner": "linuxcnc/scripts/runtests",
"timeout_seconds": 60
},
"schema": "linuxcnc-source-test-execution.v1",
"selection": {
"policy": "sorted PURE_REGRESSION and PURE_FUNCTIONAL, equal adapter share",
"requested": 12,
"selected": 12
},
"status": "verified",
"task_id": "S5-02",
"wasm_worker_pending": [
"source-test:linuxcnc/tests/abs.0/test.hal",
"source-test:linuxcnc/tests/alias.0/test.hal",
"source-test:linuxcnc/tests/and-or-not-mux.0/test.hal",
"source-test:linuxcnc/tests/basic/test.hal",
"source-test:linuxcnc/tests/biquad/test.hal",
"source-test:linuxcnc/tests/counter-encoder.0/test.hal",
"source-test:linuxcnc/tests/hal-link-unlink/test.sh",
"source-test:linuxcnc/tests/halcompile/extralib/test.sh",
"source-test:linuxcnc/tests/halcompile/relative-header/test.sh",
"source-test:linuxcnc/tests/halcompile/serial-out-of-tree/test.sh",
"source-test:linuxcnc/tests/halcompile/userspace/test.sh",
"source-test:linuxcnc/tests/halcompile/userspace-count-names/test.sh"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,355 @@
{
"adapter": {
"aggregate_hash": 10517164906509742927,
"case_count": 9,
"case_counts": {
"FAILED": 0,
"PASSED": 9
},
"golden_diff": {
"byte_identical": true,
"first_difference": null,
"json_equal": true,
"native_stdout_sha256": "1927646b14dd913567ae310f7ff2c653644e8b1f4eb0e2aeaab888c2afbf8c00",
"status": "PASSED",
"wasm_stdout_sha256": "1927646b14dd913567ae310f7ff2c653644e8b1f4eb0e2aeaab888c2afbf8c00"
},
"native": {
"command": [
"build-native/sim_source_unit_adapter_test"
],
"golden": {
"aggregate_hash": 10517164906509742927,
"cases": [
{
"id": "source-unit:interp/movement-linear",
"name": "Movement commands / Linear Feed",
"result_hash": 17001371408990351604,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/movement-rapid",
"name": "Movement commands / Rapid",
"result_hash": 9943136621400598074,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/movement-arc",
"name": "Movement commands / Clockwise circular",
"result_hash": 10833103554430804670,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/gcode-to-string",
"name": "convert G-codes to string",
"result_hash": 18096020171334179193,
"source": "linuxcnc/unit_tests/interp/test_string_conversion.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/g10-coordinate-offset",
"name": "G10 L2 / G54 coordinate offset",
"result_hash": 17323745786972651599,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/parameter-expression",
"name": "parameter expression assignment",
"result_hash": 2556672370144974761,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/modal-units",
"name": "G20 length/feed conversion",
"result_hash": 5877833076158448077,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:tp/pmCartCartParallel_numerical",
"name": "pmCartCartParallel_numerical",
"result_hash": 8528287329722895704,
"source": "linuxcnc/unit_tests/tp/test_blendmath.c",
"status": "PASSED"
},
{
"id": "source-unit:tp/pmCartCartAntiParallel_numerical",
"name": "pmCartCartAntiParallel_numerical",
"result_hash": 6154898365857503476,
"source": "linuxcnc/unit_tests/tp/test_blendmath.c",
"status": "PASSED"
}
],
"counts": {
"FAILED": 0,
"PASSED": 9
},
"pending": [
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "G64 blend/tolerance and abort endpoint require Worker Task plus motion queue",
"source_id": "source-test:linuxcnc/tests/abort/g64/test.sh"
},
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "abort/restart timing is owned by Worker Task and fixed-tick motion",
"source_id": "source-test:linuxcnc/tests/abort/feed-rate/test.sh"
}
],
"schema": "linuxcnc-source-unit-adapter.v1"
},
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "1927646b14dd913567ae310f7ff2c653644e8b1f4eb0e2aeaab888c2afbf8c00"
},
"wasm": {
"command": [
"node",
"build-wasm/sim_source_unit_adapter_wasm_test.js"
],
"golden": {
"aggregate_hash": 10517164906509742927,
"cases": [
{
"id": "source-unit:interp/movement-linear",
"name": "Movement commands / Linear Feed",
"result_hash": 17001371408990351604,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/movement-rapid",
"name": "Movement commands / Rapid",
"result_hash": 9943136621400598074,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/movement-arc",
"name": "Movement commands / Clockwise circular",
"result_hash": 10833103554430804670,
"source": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/gcode-to-string",
"name": "convert G-codes to string",
"result_hash": 18096020171334179193,
"source": "linuxcnc/unit_tests/interp/test_string_conversion.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/g10-coordinate-offset",
"name": "G10 L2 / G54 coordinate offset",
"result_hash": 17323745786972651599,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/parameter-expression",
"name": "parameter expression assignment",
"result_hash": 2556672370144974761,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:interp/modal-units",
"name": "G20 length/feed conversion",
"result_hash": 5877833076158448077,
"source": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"status": "PASSED"
},
{
"id": "source-unit:tp/pmCartCartParallel_numerical",
"name": "pmCartCartParallel_numerical",
"result_hash": 8528287329722895704,
"source": "linuxcnc/unit_tests/tp/test_blendmath.c",
"status": "PASSED"
},
{
"id": "source-unit:tp/pmCartCartAntiParallel_numerical",
"name": "pmCartCartAntiParallel_numerical",
"result_hash": 6154898365857503476,
"source": "linuxcnc/unit_tests/tp/test_blendmath.c",
"status": "PASSED"
}
],
"counts": {
"FAILED": 0,
"PASSED": 9
},
"pending": [
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "G64 blend/tolerance and abort endpoint require Worker Task plus motion queue",
"source_id": "source-test:linuxcnc/tests/abort/g64/test.sh"
},
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "abort/restart timing is owned by Worker Task and fixed-tick motion",
"source_id": "source-test:linuxcnc/tests/abort/feed-rate/test.sh"
}
],
"schema": "linuxcnc-source-unit-adapter.v1"
},
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "1927646b14dd913567ae310f7ff2c653644e8b1f4eb0e2aeaab888c2afbf8c00"
}
},
"boundaries": [
"upstream Meson test_interp/test_blendmath is independent source oracle and remains SOURCE_BLOCKED when Meson/dependencies are unavailable",
"adapter golden is exact for the nine portable source assertions listed in the suite records",
"G64 and abort are not promoted to interpreter parity; they remain Worker Task/motion work"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"ctest": {
"command": [
"ctest",
"--test-dir",
"build-native",
"-R",
"^sim_source_unit_adapter_test$",
"--output-on-failure"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "803d61c55826386b265f2a466ca1d32ebd17aecdd9c3e668ead540c0156ff3a9"
},
"pending_adapters": [
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "G64 blend/tolerance and abort endpoint require Worker Task plus motion queue",
"source_id": "source-test:linuxcnc/tests/abort/g64/test.sh"
},
{
"adapter": "WORKER_TASK_MOTION_PENDING",
"reason": "abort/restart timing is owned by Worker Task and fixed-tick motion",
"source_id": "source-test:linuxcnc/tests/abort/feed-rate/test.sh"
}
],
"report_sha256": "c2c90ad859f5ff38b2b7ca6b7b32a047ea04b509ad98f6c72f92029274767cda",
"schema": "linuxcnc-source-unit-execution.v1",
"source_inventory": {
"file_count": 8,
"files": [
{
"bytes": 1282,
"path": "linuxcnc/unit_tests/interp/interp_testing_util.hh",
"sha256": "18cb2d6075d163fff58e2892f84455f3cc3491e653e76c6531601eac39362d56"
},
{
"bytes": 179,
"path": "linuxcnc/unit_tests/interp/meson.build",
"sha256": "534b25743c0259e3757cc2b60fbe0edad23473a5262bc988992d576fb364385e"
},
{
"bytes": 23093,
"path": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"sha256": "0929d736e50c854624102d70d673d0eb15ce93a05af7993429b6f19deff57e74"
},
{
"bytes": 3135,
"path": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"sha256": "c2c063b7255bb3b1a15ce2be34d5998a877235b18eca5435df487c8c87dfb81d"
},
{
"bytes": 637,
"path": "linuxcnc/unit_tests/interp/test_string_conversion.cc",
"sha256": "d6b056f762826da85385d0e235de4dc4d8f96a2b8ef64abe140c7baed09f6754"
},
{
"bytes": 595,
"path": "linuxcnc/unit_tests/interp/tests_main.cc",
"sha256": "f7ac2692b082bd9309535d2bebe11ace840395b00b63b64180b2857501956a4f"
},
{
"bytes": 48,
"path": "linuxcnc/unit_tests/tp/meson.build",
"sha256": "625c4249c225fed116bc998530cc539703c341cb3426851aedaae58f4291de3d"
},
{
"bytes": 2318,
"path": "linuxcnc/unit_tests/tp/test_blendmath.c",
"sha256": "0b2aaf0ec2506a4c2fd43a236f01c6c4e08fbf58998126926a8690a314d4d855"
}
]
},
"status": "verified",
"suites": [
{
"adapter_target": "sim_source_unit_adapter_test",
"source_files": [
{
"bytes": 1282,
"path": "linuxcnc/unit_tests/interp/interp_testing_util.hh",
"sha256": "18cb2d6075d163fff58e2892f84455f3cc3491e653e76c6531601eac39362d56"
},
{
"bytes": 179,
"path": "linuxcnc/unit_tests/interp/meson.build",
"sha256": "534b25743c0259e3757cc2b60fbe0edad23473a5262bc988992d576fb364385e"
},
{
"bytes": 23093,
"path": "linuxcnc/unit_tests/interp/test_interp_basics.cc",
"sha256": "0929d736e50c854624102d70d673d0eb15ce93a05af7993429b6f19deff57e74"
},
{
"bytes": 3135,
"path": "linuxcnc/unit_tests/interp/test_interp_block.cc",
"sha256": "c2c063b7255bb3b1a15ce2be34d5998a877235b18eca5435df487c8c87dfb81d"
},
{
"bytes": 637,
"path": "linuxcnc/unit_tests/interp/test_string_conversion.cc",
"sha256": "d6b056f762826da85385d0e235de4dc4d8f96a2b8ef64abe140c7baed09f6754"
},
{
"bytes": 595,
"path": "linuxcnc/unit_tests/interp/tests_main.cc",
"sha256": "f7ac2692b082bd9309535d2bebe11ace840395b00b63b64180b2857501956a4f"
}
],
"source_id": "source-unit:interp",
"source_root": "linuxcnc/unit_tests/interp",
"target": "test_interp",
"wasm_target": "sim_source_unit_adapter_wasm_test"
},
{
"adapter_target": "sim_source_unit_adapter_test",
"source_files": [
{
"bytes": 48,
"path": "linuxcnc/unit_tests/tp/meson.build",
"sha256": "625c4249c225fed116bc998530cc539703c341cb3426851aedaae58f4291de3d"
},
{
"bytes": 2318,
"path": "linuxcnc/unit_tests/tp/test_blendmath.c",
"sha256": "0b2aaf0ec2506a4c2fd43a236f01c6c4e08fbf58998126926a8690a314d4d855"
}
],
"source_id": "source-unit:tp",
"source_root": "linuxcnc/unit_tests/tp",
"target": "test_blendmath",
"wasm_target": "sim_source_unit_adapter_wasm_test"
}
],
"task_id": "S5-03",
"upstream_oracle": {
"command": "meson test -C build-linuxcnc test_interp test_blendmath",
"native_oracle_claim": false,
"reason": "meson_not_installed",
"required_executable": "meson",
"status": "SOURCE_BLOCKED"
}
}

View File

@@ -0,0 +1,176 @@
{
"boundaries": [
"lineardelta/rotarydelta representative cases only",
"official kinematics oracle remains blocked",
"TRT/robot/Tripod/Pentapod/Hexapod remain later machine-family slices"
],
"checks": {
"delta_joints": {
"lineardelta": [
300,
300,
300
],
"rotarydelta": [
10,
10,
10
],
"status": "verified"
},
"delta_startup": {
"status": "verified"
},
"mode_parity": {
"status": "verified"
},
"recovery_parity": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_machine_families_s8_08.mjs"
],
"returncode": 0,
"sample": {
"boundary": "Delta lineardelta/rotarydelta only; official kinematics oracle remains separately blocked; other machine families queued",
"cases": [
{
"checkpoint_hash": "fnv1a64:e707ac9e3ffac347",
"endpoint_hash": "fnv1a64:900a74795f5ed908",
"fast_endpoint_hash": "fnv1a64:900a74795f5ed908",
"joints": [
300.0000000002803,
300.0000000002803,
300.0000000002803
],
"mode_parity": {
"actual_hash": "fnv1a64:900a74795f5ed908",
"equal": true,
"expected_hash": "fnv1a64:900a74795f5ed908"
},
"path": "linuxcnc/configs/sim/axis/ldelta.ini",
"recovery": {
"actual_hash": "fnv1a64:81a5b31c84a8448f",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:81a5b31c84a8448f"
},
"startup": "TASK_READY",
"type": "lineardelta"
},
{
"checkpoint_hash": "fnv1a64:8b1d429af4f0d2ae",
"endpoint_hash": "fnv1a64:8a7036de80c3e018",
"fast_endpoint_hash": "fnv1a64:8a7036de80c3e018",
"joints": [
10.000000000717074,
10.000000000717074,
10.000000000717074
],
"mode_parity": {
"actual_hash": "fnv1a64:8a7036de80c3e018",
"equal": true,
"expected_hash": "fnv1a64:8a7036de80c3e018"
},
"path": "linuxcnc/configs/sim/axis/rdelta.ini",
"recovery": {
"actual_hash": "fnv1a64:9d2824fd7d1e3a07",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:9d2824fd7d1e3a07"
},
"startup": "TASK_READY",
"type": "rotarydelta"
}
],
"schema": "machine-families-s8-08-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "7abb856f6e5c1d27883e8230f8193a7cbff7f8a7795ac103f3de29ce57aa38e2"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 1082,
"path": "coverage/sim-display-families-s8-07.report.json",
"sha256": "9318c909e2274f005451900a480f280a2469fa3c667695e1b00a3f5ccc028cf4",
"status": "present"
},
{
"bytes": 186147,
"path": "coverage/sim-case-matrix-s8-06.report.json",
"sha256": "010b00aea1f37f1f91572d1618f455ed08a886aaca2b09f26fbde7b0fb545ff6",
"status": "present"
},
{
"bytes": 9944,
"path": "coverage/delta-kinematics.report.json",
"sha256": "c0402979c5783292c9eed353e94c6b308b861457e8fb73a6e6e06882b81939a2",
"status": "present"
},
{
"bytes": 2140,
"path": "linuxcnc/configs/sim/axis/ldelta.ini",
"sha256": "1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c",
"status": "present"
},
{
"bytes": 2530,
"path": "linuxcnc/configs/sim/axis/rdelta.ini",
"sha256": "53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508",
"status": "present"
},
{
"bytes": 1426,
"path": "linuxcnc/lib/hallib/sim_ldelta.hal",
"sha256": "d62d87d545f9f4e9cb90f47b38c46d0838b9529f004b14fae89436865488caf2",
"status": "present"
},
{
"bytes": 1562,
"path": "linuxcnc/lib/hallib/sim_rdelta.hal",
"sha256": "0bc5634ea0353213031c194f28fe94e9adf96d8ee54ab8f8b593fd9b39cc3e27",
"status": "present"
},
{
"bytes": 1666,
"path": "linuxcnc/configs/sim/axis/sim.var",
"sha256": "163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae",
"status": "present"
},
{
"bytes": 174,
"path": "linuxcnc/configs/sim/axis/sim.tbl",
"sha256": "52411645e06c20cf0e6c469e544a4d17de07d03254a6cb784e2468704e0a4a9e",
"status": "present"
},
{
"bytes": 9106,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "15f54c37b67d7e5f46a62a9dcfcb683a2c10a0a7cf6b60db671bdc30c416762e",
"status": "present"
},
{
"bytes": 9332,
"path": "web/worker/authoritative-runtime.mjs",
"sha256": "dcf390d548074d75837086cd2c55d18ee8172690dae74e6d63bc6811efab330f",
"status": "present"
},
{
"bytes": 4210,
"path": "web/worker/test_machine_families_s8_08.mjs",
"sha256": "52aec5080d80efb93fa77c60a40d721f5607fb935f061fdaa57a6bb8ca0c5875",
"status": "present"
}
],
"report_sha256": "3ecc682ca9b0aed10e3f0b58b3a6ab09d136c6424191170cc7ec62bdf8ecb802",
"schema": "machine-families-s8-08-report.v1",
"status": "verified",
"task_id": "S8-08"
}

View File

@@ -0,0 +1,52 @@
{
"authoritative_source": "Worker snapshot pose/joints/toolpath/stock/state_hash",
"canvas": {
"finite_input_policy": "zero_invalid",
"height": 320,
"layers": [
"axis_frame",
"toolpath",
"stock",
"pose",
"joints"
],
"nonblank": true,
"width": 640
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"known_boundaries": [
"WebGL/Three.js browser pixel matrix is P8-04",
"stock removal physics remains outside this view adapter"
],
"outputs": [
{
"bytes": 2083,
"path": "web/app/machine-view.mjs",
"sha256": "b3e0e8a75790eac3b3f3ee959f9d65a43e0d154c8de55300db502e0828c9e082"
},
{
"bytes": 1206,
"path": "web/app/test_machine_view.mjs",
"sha256": "49fcf674f2450eae24fb1e9580b083fa51e42f5013f6e550792340e8b310afe9"
},
{
"bytes": 1310,
"path": "web/app/test_frontend_m4.mjs",
"sha256": "e8a18358e82b63df0ef935ed760f68ae82290e5d0e53a9be21429214eb4d52b9"
}
],
"report_sha256": "f64763600bcbc3941552a49995612f43f52f6285ab098ee72e2d0ed4938de17f",
"schema": "machine-view-report.v1",
"status": "verified",
"task_id": "P7-04",
"tests": {
"frontend_m4": {
"status": "verified",
"stdout": "frontend_m4=passed panels=3\n"
},
"machine_view": {
"status": "verified",
"stdout": "machine_view=passed pixels=8 canvas=640x320\n"
}
}
}

View File

@@ -100031,7 +100031,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -100052,14 +100052,14 @@
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "b88b3978114cb7347f890c558ea0b6c948533b8a87d61bcee3806cd0912b0a6d",
"status": "present"
}
],
@@ -100072,7 +100072,7 @@
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_pending_manifest_review",
"report_sha256": "7ddd6e6af4264387c15f98f2cc9b923058ed29cfac0d8ca46f2587032c81a922",
"report_sha256": "5afeb0263ea51660bcd55a719159773412e1e4eab50bb79306b7c68ab59ac052",
"review_policy": {
"forbidden": [
"promote_to_accepted",

View File

@@ -0,0 +1,153 @@
{
"boundaries": [
"minimal XYZ/trivkins only",
"browser controls consume Worker authoritative state",
"real hardware timing remains excluded",
"other case families remain in queued/blocked tasks"
],
"checks": {
"checkpoint_recovery_parity": {
"endpoint_equal": true,
"status": "verified"
},
"estop_recover": {
"blocked_code": "sim_io_estop",
"status": "verified"
},
"frontend_authority_inputs": {
"sources": [
"web/app/app.mjs",
"web/app/state-panel.mjs",
"web/app/machine-view.mjs"
],
"status": "verified"
},
"home_jog_override": {
"status": "verified"
},
"program_pause_resume_abort_mdi": {
"status": "verified"
},
"startup_task_ready": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_minimal_xyz_vertical_s8_04.mjs"
],
"returncode": 0,
"sample": {
"case": "linuxcnc/configs/sim/axis/minimal_xyz.ini",
"checkpoint_hash": "fnv1a64:108856dd77bab16a",
"endpoint_hash": "fnv1a64:b28f69a38b7079a5",
"estop": {
"blocked_code": "sim_io_estop",
"recovered": "READY"
},
"jog": {
"tick": 10,
"x": 0.020000000000000004
},
"override": {
"feed": 0.5,
"spindle": 1.2
},
"program": {
"line": 5,
"mdi": "verified",
"status": "completed"
},
"recovery": {
"parity": {
"actual_hash": "fnv1a64:b28f69a38b7079a5",
"difference": null,
"equal": true,
"expected_hash": "fnv1a64:b28f69a38b7079a5"
},
"status": "recovered"
},
"schema": "minimal-xyz-vertical-s8-04-sample.v1",
"startup_state": "TASK_READY",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c40b8a018baca21133f7fa76f6110a866bc3fc6a480f03a0d8c3bdea82154168"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 6406,
"path": "coverage/sim-case-startup-s8-02.report.json",
"sha256": "6a3f759416a61cd49f012a27bebbfa9a0321d1c40ae02ec2ca2fb7f6c85c1d13",
"status": "present"
},
{
"bytes": 868,
"path": "linuxcnc/configs/sim/axis/minimal_xyz.ini",
"sha256": "63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a",
"status": "present"
},
{
"bytes": 6962,
"path": "linuxcnc/configs/sim/axis/minimal_xyz_cmds.hal",
"sha256": "fbfdc3939bbff8316f3a44aef81a7d63db07ef5ea5b3fa558bd9a718d32eac1a",
"status": "present"
},
{
"bytes": 1666,
"path": "linuxcnc/configs/sim/axis/sim.var",
"sha256": "163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae",
"status": "present"
},
{
"bytes": 174,
"path": "linuxcnc/configs/sim/axis/tool.tbl",
"sha256": "52411645e06c20cf0e6c469e544a4d17de07d03254a6cb784e2468704e0a4a9e",
"status": "present"
},
{
"bytes": 8490,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "5b17353cf2446c98d0eb04e6dafb8a3876f74b8f527e6721a577db1e71deaadc",
"status": "present"
},
{
"bytes": 57994,
"path": "web/worker/sim-session.mjs",
"sha256": "47c0918797b6a60ed72dce6014fb3f365f620e31be34d8d66f5311971dbe16fd",
"status": "present"
},
{
"bytes": 6107,
"path": "web/worker/test_minimal_xyz_vertical_s8_04.mjs",
"sha256": "d504eb92ae04c5fa1daaf58e1b691d677c39f27d4ea3663fa451a0d6f02f0daf",
"status": "present"
},
{
"bytes": 15877,
"path": "web/app/app.mjs",
"sha256": "81cf18b3d342d02e574120bfb4f0e2b5ca98bc8cf87e40f30631028b792a55b7",
"status": "present"
},
{
"bytes": 4451,
"path": "web/app/state-panel.mjs",
"sha256": "e147f8102167377f92678b2f0095e274c478a230eda8c722a34d699087a8ebc9",
"status": "present"
},
{
"bytes": 2083,
"path": "web/app/machine-view.mjs",
"sha256": "b3e0e8a75790eac3b3f3ee959f9d65a43e0d154c8de55300db502e0828c9e082",
"status": "present"
}
],
"report_sha256": "cf39faa03d2750b75d0927f5117b2b9dcccffc79ce4156c136a6b88959a55115",
"schema": "minimal-xyz-vertical-s8-04-report.v1",
"status": "verified",
"task_id": "S8-04"
}

View File

@@ -0,0 +1,70 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
"jog",
"override",
"home",
"joint limits",
"following error",
"estop fault",
"FK feedback",
"IK motion adapter"
],
"outputs": [
{
"bytes": 5388,
"path": "web/worker/motion-state.mjs",
"sha256": "142c7ff71507478ff8e6f374315e68247bbcc62157d55bbaedfab9bae70d9593"
},
{
"bytes": 2222,
"path": "web/worker/test_motion_state.mjs",
"sha256": "deef16755cd18a1d2391efb4140eb98fcd348ee076971242cd60a161a36d890d"
},
{
"bytes": 8574,
"path": "wasm-core/src/sim_kinematics_motion.c",
"sha256": "1e9bd5404acfe7ab20eca5b3bb76111bf43c442feee0dc2d4c3f9249ba916a88"
},
{
"bytes": 4823,
"path": "wasm-core/src/sim_kinematics_feedback.c",
"sha256": "c690fc420d58b5e60958e4d0745b9a6bca678c5283eb9e74c50a11ca61faa93a"
},
{
"bytes": 6029,
"path": "wasm-core/src/sim_kinematics_home_limit.c",
"sha256": "7f59d1722cd2ca54f346168b4a13d9e8377bb6035c9f5866c3a3fbb7115bb996"
}
],
"report_sha256": "f9548c26cedba73ba49b8ed12c897f93596af18bbd8fb0ba7e85789b6feabb2f",
"schema": "motion-s1-report.v1",
"status": "verified",
"task_id": "S1-03",
"tests": {
"feedback": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e98e4c0c95c9fcbcf8b009864918cfa3bad85860515bd6a435cf56957d2ba185"
},
"home_limit": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "9f1cc04116a289602e9b39c79f1d01bac6ceb5b282c9db5530c59d778f1b7673"
},
"motion": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a810896f35b2027d32eef8049584c390110784953ea40f04e422dc284dd820b6"
},
"worker": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a846de304d6b8aa34f6a314bf184b7d40924bc51b1feb390de87327831948a00"
}
}
}

View File

@@ -0,0 +1,83 @@
{
"commands": [
"HOME",
"JOG_START",
"JOG_STOP",
"SET_OVERRIDE",
"LIMIT_SET",
"FOLLOWING_ERROR",
"ESTOP"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"determinism": {
"native_kinematics_adapters": [
"sim_kinematics_motion",
"sim_kinematics_feedback",
"sim_kinematics_home_limit"
],
"random": false,
"wall_clock": false,
"worker_hash_replay": true
},
"faults": [
"motion_unhomed",
"motion_faulted",
"limit",
"following_error",
"estop",
"position_range"
],
"known_boundaries": [
"kinematics family registry remains P3-06/P3-07",
"real hardware transport is REAL-EXCLUDED"
],
"limits": {
"following_error_trip": 0.01,
"jog_speed": [
0,
1000000
],
"override": [
0,
2
],
"position": 1000000000
},
"outputs": [
{
"bytes": 5388,
"path": "web/worker/motion-state.mjs",
"sha256": "142c7ff71507478ff8e6f374315e68247bbcc62157d55bbaedfab9bae70d9593"
},
{
"bytes": 36559,
"path": "web/worker/sim-session.mjs",
"sha256": "f1dfd42cc9e43aaeff1a15af3cf03412e374dea240c7f39a1453d63f5bb65768"
},
{
"bytes": 2222,
"path": "web/worker/test_motion_state.mjs",
"sha256": "deef16755cd18a1d2391efb4140eb98fcd348ee076971242cd60a161a36d890d"
}
],
"report_sha256": "18fe48ffd88bfebf8c234c2f3c22da04f67b0c4379a083cc98780120019f1aa6",
"schema": "motion-state-report.v1",
"state": {
"axes": [
"x",
"y",
"z"
],
"fixed_cycle_distance": 0.001,
"joints": 3,
"state_hash": "fnv1a64 canonical motion state"
},
"status": "verified",
"task_id": "P3-05",
"test": {
"command": "node web/worker/test_motion_state.mjs",
"status": "verified",
"stderr": "",
"stdout": "motion_state=passed jog_x=0.02 fault=limit hash=fnv1a64:858bfb8944cbc2f9\n"
}
}

View File

@@ -0,0 +1,143 @@
{
"boundaries": [
"temporary fixture files are not source-owned inputs",
"non-realtime POSIX run is simulation-only and cannot validate hardware timing",
"installed package is 2.10.0~pre1 while locked source is 2.10.0~pre0",
"this report does not promote browser runtime or release status"
],
"cases": {
"corexy_missing_resources": {
"case": "corexy_by_kins_missing",
"command": [
"timeout",
"--signal=TERM",
"5s",
"linuxcnc",
"-r",
"/tmp/linuxcnc-case-conditions-0ndtla0l/corexy_by_kins_missing/corexy_by_kins.ini"
],
"display_started": false,
"expected_timeout_running": true,
"fixture_resources": false,
"generated_files": [
"linuxcnc.var.bak"
],
"marker_flags": {
"Starting DISPLAY program": false,
"Starting LinuxCNC": true,
"Starting LinuxCNC server program": false,
"Starting TASK program": false,
"task:": true
},
"output_excerpt": "Starting LinuxCNC...\n Falling back to POSIX non-realtime.\nNote: Using POSIX non-realtime\nemc/tooldata/tooldata_common.cc, 315: Failed to open tool table file 'tool.tbl': No such file or directory\nemc/task/taskclass.cc 219: can't load tool table.\nemc/tooldata/tooldata_common.cc, 315: Failed to open tool table file 'tool.tbl': No such file or directory\nlink (updating variable file): No such file or directory\ntask: 456 cycles, min=0.000004, max=0.011521, avg=0.009798, 0 latency excursions (> 10x expected cycle time of 0.010000s)",
"returncode": 124,
"started": true,
"stdout_sha256": "ad9b0dc499568c99137d902bd16c0ae1425d2d7a9afe74fe47092888b4392b15",
"task_ticks_observed": true
},
"corexy_with_temporary_fixture": {
"case": "corexy_by_kins_fixture",
"command": [
"timeout",
"--signal=TERM",
"5s",
"linuxcnc",
"-r",
"/tmp/linuxcnc-case-conditions-0ndtla0l/corexy_by_kins_fixture/corexy_by_kins.ini"
],
"display_started": false,
"expected_timeout_running": true,
"fixture_resources": true,
"generated_files": [
"linuxcnc.var.bak"
],
"marker_flags": {
"Starting DISPLAY program": false,
"Starting LinuxCNC": true,
"Starting LinuxCNC server program": false,
"Starting TASK program": false,
"task:": true
},
"output_excerpt": "Starting LinuxCNC...\n Falling back to POSIX non-realtime.\nNote: Using POSIX non-realtime\ntask: 456 cycles, min=0.000001, max=0.013335, avg=0.009790, 0 latency excursions (> 10x expected cycle time of 0.010000s)",
"returncode": 124,
"started": true,
"stdout_sha256": "518d0a31ee1725accf8272dde20c7b843db9dd0a171eb869a5e25fd5ec34a5b0",
"task_ticks_observed": true
},
"minimal_xyz": {
"case": "minimal_xyz",
"command": [
"timeout",
"--signal=TERM",
"5s",
"linuxcnc",
"-r",
"/tmp/linuxcnc-case-conditions-0ndtla0l/minimal_xyz/minimal_xyz.ini"
],
"display_started": false,
"expected_timeout_running": true,
"fixture_resources": false,
"generated_files": [
"minimal_xyz_cmds.hal",
"sim.var",
"sim.var.bak"
],
"marker_flags": {
"Starting DISPLAY program": false,
"Starting LinuxCNC": true,
"Starting LinuxCNC server program": false,
"Starting TASK program": false,
"task:": true
},
"output_excerpt": "Starting LinuxCNC...\n Falling back to POSIX non-realtime.\nNote: Using POSIX non-realtime\nemc/task/taskclass.cc 219: can't load tool table.\nlink (updating variable file): No such file or directory\ntask: 4058 cycles, min=0.000001, max=0.003443, avg=0.001068, 0 latency excursions (> 10x expected cycle time of 0.001000s)",
"returncode": 124,
"started": true,
"stdout_sha256": "663be5f91dcf3269b25e61203e8e6f1693e578860c29635164da3ab17bd3e0aa",
"task_ticks_observed": true
}
},
"conditions": {
"browser_equivalent_must_supply_explicit_workspace_files": true,
"case_directory_must_be_writable": true,
"current_kernel_realtime": "not_preempt_rt",
"gui_requires_display": true,
"parameter_files_are_runtime_state": true,
"simulation_requires_uspace_or_posix_fallback": true,
"tool_table_must_exist_for_tool_cases": true
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"environment": {
"axis": "/usr/bin/axis",
"display": ":1",
"display_available": true,
"halrun": "/usr/bin/halrun",
"linuxcnc": "/usr/bin/linuxcnc",
"qtvcp": "/usr/bin/qtvcp",
"xvfb": true
},
"inputs": [
{
"path": "context-lock.json",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
{
"path": "linuxcnc/VERSION",
"sha256": "afc5dc60d029cb477a28f476599249ba353d0164f8991d7b8326371998ac59a1"
},
{
"path": "linuxcnc/configs/sim/axis/minimal_xyz.ini",
"sha256": "63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a"
},
{
"path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini",
"sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a"
}
],
"installed_package": "linuxcnc-uspace 1:2.10.0~pre1",
"kernel": "Linux mes006-ThinkBook-14-G4-IAP 7.0.0-29-generic #29~24.04.2-Ubuntu SMP PREEMPT_DYNAMIC Wed Aug 12 17:25:56 UTC 2 x86_64 x86_64 x86_64 GNU/Linux",
"report_sha256": "834ba7b1e268fc357ba9b28a6eddea74269a77202d4b5d9fc7228c1c29417108",
"schema": "native-linuxcnc-case-conditions.v1",
"source_version": "2.10.0~pre0",
"status": "verified",
"task_id": "REAL-CASE-CONDITIONS-01"
}

View File

@@ -0,0 +1,72 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"golden_schema": {
"exact_fields": true,
"first_difference": [
"tick",
"field",
"expected",
"actual"
],
"schema": "native-golden.v1"
},
"known_boundaries": [
"P8-02 executes full startup matrix",
"P8-03 repeats execution modes"
],
"oracle_boundary": {
"reason": "official full LinuxCNC oracle inputs remain source-gated; derived tests are not accepted as official goldens",
"status": "blocked"
},
"outputs": [
{
"bytes": 10440,
"path": "scripts/native_runner.py",
"sha256": "7bc7e2c3a8ac172c25a9f99e026a34cd4957fe0cced87636f9b38336111c9b21"
},
{
"bytes": 1161,
"path": "coverage/golden-schema.json",
"sha256": "5513535b9480d7100ef3ef59ac933c4040bd7198dc419693a7ee68098171c423"
},
{
"bytes": 248673,
"path": "coverage/test-entries.jsonl",
"sha256": "86449838257a7aab7c9219e641a14d4493208b35d8c0cc092d1fa149352c7c37"
}
],
"report_sha256": "e230cd528f00a3a0238253aee935550b58d5680c66e6f1906201b70bddabdb32",
"runner": {
"artifact_capture": true,
"portable_env": true,
"stdout_stderr_hash": true,
"timeout": true,
"wall_clock_excluded_from_digest": true
},
"schema": "native-oracle-closure-report.v1",
"status": "verified",
"task_id": "P8-01",
"tests": {
"native_interpreter": {
"command": "./build-native/sim_interpreter_test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": ""
},
"self_test": {
"command": "python3 scripts/native_runner.py --self-test",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "native_runner=self-test status=passed\n"
},
"wasm_worker": {
"command": "node web/worker/test_sim_runner.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "sim_runner=passed mdi_x=3 tick_line=1 recovery=aborted\n"
}
}
}

View File

@@ -0,0 +1,60 @@
{
"budgets": {
"max_control_depth": 32,
"max_control_steps": 100000,
"max_expanded_lines": 100000,
"max_program_bytes": 1048576,
"max_program_lines": 10000
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"diagnostics": {
"host_filter": "blocked_without_host_execution",
"loop_budget": "program_loop_budget",
"missing_subroutine": "program_subroutine_missing",
"unclosed_structure": "program_control_unclosed"
},
"features": [
"O SUB/ENDSUB",
"O CALL/RETURN",
"M98 P/L and M99",
"IF/ELSEIF/ELSE/ENDIF",
"WHILE/ENDWHILE",
"REPEAT/ENDREPEAT",
"BREAK",
"CONTINUE"
],
"filter_policy": {
"device_path": "blocked",
"dynamic_module": "blocked",
"host_process": "blocked",
"network": "blocked",
"pure_worker_filter": "reserved_for_P5-03"
},
"implementation": "web/worker/program-runner.mjs",
"known_boundaries": [
"full Python/remap/filter callback lifecycle is P5-03",
"canonical/TP integration is P3-03"
],
"outputs": [
{
"bytes": 28577,
"path": "web/worker/program-runner.mjs",
"sha256": "e06a01d046d9b0127e1728b34c7413ea5d0af57343d0a01875f84482357706e2"
},
{
"bytes": 1848,
"path": "web/worker/test_program_control.mjs",
"sha256": "b44c5cdd5de07964398a8c84f2916c6dc9d9f25322c5b244872462c435174988"
}
],
"report_sha256": "fff8a63e869c95e311412d256808416a3766d169d3bc009d472a14544689b027",
"schema": "o-word-runtime-report.v1",
"status": "verified",
"task_id": "P3-02",
"test": {
"command": "node web/worker/test_program_control.mjs",
"status": "verified",
"stderr": "",
"stdout": "program_control=passed while=3 call=2 if=else depth_budget=verified\n"
}
}

View File

@@ -43,7 +43,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -71,21 +71,21 @@
"bytes": 11539,
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix.report",
"sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate.report",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "release_remediation_intake.report",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "b88b3978114cb7347f890c558ea0b6c948533b8a87d61bcee3806cd0912b0a6d",
"status": "present"
}
],
@@ -148,7 +148,7 @@
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "44b4bc2a64b9f43d0a4a0b4eb4afd176396cda938c733b70a5f257d9e5abd248",
"report_sha256": "ab2efdc651f8e9a5f29a41a5e0b9b189866ccebd9592795969713212c9c8c5a1",
"review_policy": {
"forbidden": [
"promote_matrixkins_to_official",

View File

@@ -0,0 +1,88 @@
{
"boundaries": [
"package_hash",
"content_hash",
"migration_round_trip",
"rollback_target",
"rollback_failure",
"offline_missing",
"offline_corrupted",
"online_degraded",
"context_mismatch"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"known_boundaries": [
"Service Worker/browser matrix is P8-04",
"release owner/browser/real device gates remain blocked"
],
"oracle": {
"reason": "official browser OPFS migration/offline oracle is absent from locked source",
"status": "blocked"
},
"outputs": [
{
"bytes": 12954,
"path": "web/workspace/migration.mjs",
"sha256": "0eed79497cb5b714a309f8730e8ec9f3bb0ae9582aa800ad97d2cf408760abd5"
},
{
"bytes": 8767,
"path": "web/workspace/recovery.mjs",
"sha256": "d4bae4220a3348d7bb66991472d1331045ab60bbe70c93f3b589bf0e8d05d14d"
},
{
"bytes": 6812,
"path": "web/workspace/journal.mjs",
"sha256": "a2d97ceac5e0dbb65d3dc9cafaa845b3acd115292717312d6eff69585bca98a7"
},
{
"bytes": 7484,
"path": "web/workspace/test_migration.mjs",
"sha256": "a42c32bca8af58263a121216ab647759447ebbea39b6aafdcd7fa6bfbe300be9"
},
{
"bytes": 2225,
"path": "coverage/workspace-migration.report.json",
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8"
},
{
"bytes": 3726,
"path": "coverage/workspace-rollback.package.json",
"sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f"
},
{
"bytes": 528,
"path": "coverage/offline-cache.package.json",
"sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922"
}
],
"packages": {
"migration_lossless": true,
"offline_schema": "offline-cache-package.v1",
"rollback_schema": "workspace-rollback.v1",
"workspace_versions": [
1,
2
]
},
"report_sha256": "c7b5539fba525477c29998f13312d766dd28e6f2be05023f0be4c1dd47e58e35",
"schema": "offline-migration-report.v1",
"status": "verified",
"task_id": "P6-03",
"tests": {
"fault_matrix": {
"command": "node web/worker/test_recovery_offline_faults.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "recovery_offline_faults=passed scenarios=5\n"
},
"migration": {
"command": "node web/workspace/test_migration.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "migration=passed source=fnv1a64:8e75915f5667dba2 target=fnv1a64:8af9c3e74b9cda3e rollback=fnv1a64:af7b012f458a6712\n"
}
}
}

View File

@@ -72,21 +72,21 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 9239,
"path": "coverage/remediation-evidence-roundup.report.json",
"role": "remediation_roundup",
"sha256": "6746fda47f7efc4cc0902478854dabbb91e42b0bd6e58fc62393b7c9ebc2d40e",
"sha256": "3600fe5d079057767bd9c7f05b8ded4664cefc00e037ec2e565b49f58658b746",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
@@ -100,7 +100,7 @@
"next_transition": "collect owner decisions, create a new context when locked inputs change, then regenerate closure/audit/gate",
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "5006286fd2d25bf73e262633e3a6d12b89b28af9d159ef84ad58132bb79e6de2",
"report_sha256": "01e5db9138cc6b1a1f471dbd2a30f88451ee7fac7ebafb295db8b2c7c4941563",
"review_status": "owner_input_required",
"schema": "owner-review-gate-refresh.v1",
"status": "blocked",

View File

@@ -0,0 +1,69 @@
{
"backpressure": [
"drop_newest",
"drop_oldest",
"block"
],
"boundaries": [
"rung_capacity",
"register_capacity",
"sample_capacity",
"tick_regression",
"nonfinite",
"unsupported_rung",
"backpressure"
],
"classicladder": {
"resource": "linuxcnc/src/hal/classicladder",
"status": "capability_boundary",
"unsupported_host_features": "blocked"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"known_boundaries": [
"full ClassicLadder XML/GUI editor is outside Worker core",
"real device transport remains REAL-EXCLUDED"
],
"operations": [
"SET",
"ADD",
"AND",
"OR",
"NOT",
"TIMER",
"COUNTER"
],
"outputs": [
{
"bytes": 5753,
"path": "web/worker/plc-runtime.mjs",
"sha256": "9377c84858ed8cebfa84eac3b094d624fdb308d0d6295816d81686d76c72ea62"
},
{
"bytes": 38058,
"path": "web/worker/sim-session.mjs",
"sha256": "2679b80a30fe3d0a2f6ef216b5a83cc6f4e3bad54719bb2d09428aff268b6fa5"
},
{
"bytes": 2243,
"path": "web/worker/test_plc_runtime.mjs",
"sha256": "d04a5c15f19f5072f80ca8829963416d47288349bdbd2091adc2b261fd2c4644"
}
],
"report_sha256": "c8b12349fd4aa6e2ce48f0bda8e5b123ddfc190b7b7c3f1e101915eeb55623f8",
"runtime": {
"fixed_tick": true,
"max_registers": 256,
"max_rungs": 256,
"max_sample_capacity": 1024,
"scan_order": "configuration order"
},
"schema": "plc-runtime-report.v1",
"status": "verified",
"task_id": "P4-03",
"test": {
"command": "node web/worker/test_plc_runtime.mjs",
"status": "verified",
"stderr": "",
"stdout": "plc_runtime=passed count=2 dropped=0 worker_tick=1\n"
}
}

View File

@@ -255,16 +255,16 @@
"status": "verified"
},
{
"actual": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"actual": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"evidence": "coverage/release-evidence-index.json",
"expected": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"name": "context_lock_hash",
"status": "verified"
},
{
"actual": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"evidence": "coverage/release-closure.report.json",
"expected": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"expected": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"name": "closure_compatibility_report_hash",
"status": "verified"
},
@@ -276,16 +276,16 @@
"status": "verified"
},
{
"actual": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"actual": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"evidence": "coverage/release-closure.report.json",
"expected": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"expected": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"name": "closure_evidence_index_report_hash",
"status": "verified"
},
{
"actual": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"evidence": "coverage/release-evidence-index.json",
"expected": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"expected": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"name": "index_compatibility_report_hash",
"status": "verified"
},
@@ -357,36 +357,36 @@
"comparisons": [
{
"actual_bytes": 7647,
"actual_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"actual_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
},
{
"actual_bytes": 1945,
"actual_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"actual_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"expected_bytes": 1945,
"expected_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"expected_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
},
{
"actual_bytes": 1435099,
"actual_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"actual_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"expected_bytes": 1435099,
"expected_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"expected_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
},
{
"actual_bytes": 11539,
"actual_sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"actual_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"expected_bytes": 11539,
"expected_sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"expected_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"status": "verified"
@@ -460,26 +460,26 @@
"report_self_hashes": {
"reports": [
{
"actual": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"declared": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"actual": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"declared": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
},
{
"actual": "26b10dd3747ec06a29b6188dca47a9aeb7d83ceaa4821fe93261086848f2f5d1",
"declared": "26b10dd3747ec06a29b6188dca47a9aeb7d83ceaa4821fe93261086848f2f5d1",
"actual": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d",
"declared": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d",
"path": "coverage/release-closure.report.json",
"status": "verified"
},
{
"actual": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"declared": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"actual": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"declared": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"path": "coverage/release-evidence-index.json",
"status": "verified"
},
{
"actual": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"declared": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6",
"actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"declared": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2",
"path": "coverage/compatibility-matrix.report.json",
"status": "verified"
},
@@ -503,8 +503,8 @@
"status": "verified"
},
{
"actual": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"declared": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"actual": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"declared": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
}
@@ -529,36 +529,36 @@
"input_hash_comparison": [
{
"actual_bytes": 7647,
"actual_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"actual_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
},
{
"actual_bytes": 1945,
"actual_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"actual_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"expected_bytes": 1945,
"expected_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"expected_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
},
{
"actual_bytes": 1435099,
"actual_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"actual_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"expected_bytes": 1435099,
"expected_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"expected_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
},
{
"actual_bytes": 11539,
"actual_sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"actual_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"expected_bytes": 11539,
"expected_sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"expected_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"status": "verified"
@@ -632,14 +632,14 @@
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
}
],
@@ -670,14 +670,14 @@
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "2011f99b5e93b3d16697d0b347bdd55f572a99475ca518e9de9316baacf2b0aa",
"report_sha256": "61fa9c413b56f88d717e3fc472dd757b9da42cad1fee02131ae0e4af81e5e352",
"schema": "post-release-audit.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",

View File

@@ -55,28 +55,28 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "6794b4fd2b3b2ffb54b6a48d298265a8ac9b700bf5e1da434d80c9bb2a45f328",
"sha256": "67360195c796e1e6448a25567922c56cfee00312350df887841d8945871e251b",
"status": "present"
},
{
"bytes": 3467,
"path": "coverage/owner-review-gate-refresh.report.json",
"role": "owner_review",
"sha256": "33c49952650255a826bb0cf29e1063fcfd0a05a84a4b5e4273aa4fc7293b9774",
"sha256": "ab41b449d01ea12a9131f6c99ac5f686b787ea14c186dbb2a2095059e2aa661d",
"status": "present"
},
{
@@ -90,7 +90,7 @@
"next_transition": "WAIT-OWNER-01: pause until six owner decisions or a new locked context input arrives; no automatic retry",
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "9ab0a4b1cd523197e3fbf00022fc00d59aba569453b301a2f5c38187f8d55671",
"report_sha256": "c01efd36e7c88038f050a0044e56a0c0da6d07c562613bae0c879c05b7e25a16",
"schema": "project-task-readiness.v1",
"status": "partial",
"task_id": "GOV-01",
@@ -111,7 +111,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/hal-component-manifest.report.json",
"report_status": "partial",
"task_hash": "8976d0a253abaa81cfa83fe767d33f65bde1b8e8391ced0d622672cf97938096"
"task_hash": "e7a2fea5e236e73728ec6bf576406dba85118a7dabb3a7a49c193eec2d88998c"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -120,7 +120,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/virtual-device-fault-matrix.report.json",
"report_status": "partial",
"task_hash": "b36343aaeb80458509a906ae6228ac0653d390b20a8b0d88948e8b507e6f60c3"
"task_hash": "a5f271dd9f5ad84957cd930ab66aaaa26cd1bb64dd0aa7e9119f6dec2c35e0c5"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -129,7 +129,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/workspace-session-integration.report.json",
"report_status": "partial",
"task_hash": "ea056ee88cf32a8f206c2e94571b9223a2f72befe348af84f3d0692ae89370c8"
"task_hash": "5116c38fb9853899e2b9b63dd51f9afe1f8b6afaf1a6c5af429f6c3e78370dfd"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -138,7 +138,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/python-worker-bridge.report.json",
"report_status": "partial",
"task_hash": "f1727f19814d7a639e99fe1a2eca9c8e62be1c99aa18fc6ad9db3bf1f9958237"
"task_hash": "6e893c719193ecc01a76f57764cc2eecc2393763da15bcf995bdaf4d496fc055"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -147,7 +147,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m1.report.json",
"report_status": "partial",
"task_hash": "5180544f934f6a9a348ac321c1a9ef8a9b830ed416caef844c9e3a3d55b75cef"
"task_hash": "dbe633bea85b155e52f126cbb1feb5aaa19f5248bf26a17200315f94ad00c7b3"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -156,7 +156,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m2.report.json",
"report_status": "partial",
"task_hash": "0c57f73691a827289247e294587721d4bf694024b24aca297a6d653cb8c3b58c"
"task_hash": "9e20129559e077993830e58c6a88d34347b5bb178ad42de1cf6bf3d969889cc7"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -165,7 +165,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m3.report.json",
"report_status": "partial",
"task_hash": "740f81de42580a39b2232966812588f1b44f0de21bcc153d18985e20ae641998"
"task_hash": "d12aa2f0626d2e2353f3f03737eb800a7d2531039e3932d4710811a4f90d6e96"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -174,7 +174,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m4.report.json",
"report_status": "partial",
"task_hash": "3944dfaee264ebd7fdba05abc194fa5c01ac4b332370b995e9221cdebd3562f4"
"task_hash": "39995ee2f5cea423315a572b0cb3d122c8e400793f868a7e74bf2d42c6cf25e2"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -183,7 +183,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/full-configuration-startup-matrix.report.json",
"report_status": "partial",
"task_hash": "4b8817b2ba44bd2d1694c404c887b7a56799422123e02a714715c632f8035161"
"task_hash": "6c1a936377dbae52a9626171a9d64a213cbdb4919b50a13da5e4bdde184e8df0"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -192,7 +192,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/recovery-offline-fault-matrix.report.json",
"report_status": "partial",
"task_hash": "5ca81a3dbe4be9caa4a47ecbbb7540d424d66f858dc21d2250575c29411bc905"
"task_hash": "fdf946b6133f6e0f405ffd9b66189f55663c3dc45df4e6934e16b15565ecc9f2"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -201,7 +201,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/browser-performance-matrix.report.json",
"report_status": "partial",
"task_hash": "325c5ddaba4d4db51616ca73612345606936e184b236d49c1ff30d65ed8d1c08"
"task_hash": "db1be56cb41198b185fbf543f71d0bc2f61bfd93b3794dcb5e13851496415258"
}
]
}

View File

@@ -0,0 +1,140 @@
{
"apis": {
"INI": [
"find",
"findall",
"sections"
],
"gstat": [
"state",
"task",
"motion"
],
"hal": [
"component",
"pin",
"param",
"signal",
"thread"
],
"linuxcnc": [
"command",
"stat",
"error",
"ini"
],
"parameter": [
"get",
"set"
],
"tool": [
"get",
"set"
],
"virtual-clock": [
"now",
"tick",
"sleep"
],
"workspace": [
"read",
"write",
"list",
"stat",
"hash"
]
},
"boundaries": [
"Pyodide remains Worker-only and pinned",
"subprocess/socket/device/host path capabilities remain REAL-EXCLUDED",
"compatibility modules are virtual and do not alter the locked manifest"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "python-runtime/manifest.json",
"sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213"
},
{
"path": "web/worker/python-bridge.mjs",
"sha256": "2014c81d744ea9f60e60e75545a7b0ceb5ab7a94834235bd2db9075ffa596654"
},
{
"path": "web/worker/test_python_bridge.mjs",
"sha256": "02a82442a9644890fd501e4d915ee0b169e53a651eaa48a613796c5345779431"
},
{
"path": "web/worker/test_python_api_s3.mjs",
"sha256": "98b50ffc93698d80d7d89a65b1452fab7d331ee346d39126ce5ed49297d95788"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
}
],
"limits": {
"clock_step_ticks": 1000000,
"max_calls": 256,
"max_source_bytes": 65536,
"workspace_bytes": 16777216,
"workspace_files": 256
},
"report_sha256": "1ba33dda68e9dd0f5b3702a5a0c2a436895b76872576ce295a02d1c34aeb8718",
"runtime": {
"abi_version": "2025_0",
"manifest_unchanged": true,
"name": "Pyodide",
"python_version": "3.13.2",
"version": "0.29.4"
},
"schema": "python-api-s3-report.v1",
"status": "verified",
"task_id": "S3-01",
"tests": {
"api": {
"command": [
"node",
"web/worker/test_python_api_s3.mjs"
],
"returncode": 0,
"sample": {
"bridge_hash": "fnv1a64:0b74fea2bb927042",
"checkpoint_hash": "fnv1a64:b473672ab06b5d60",
"manifest_version": "0.29.4",
"restored_hash": "fnv1a64:0b74fea2bb927042",
"schema": "python-api-s3-sample.v1",
"session_tick": 0,
"status": "verified"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "2891005086c5f8e143bc19f23e61aa269274cef54c115f0fcb4b272906c5e0bf"
},
"bridge": {
"command": [
"node",
"web/worker/test_python_bridge.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "fc8f0fe87b0f5108877980686b1ea3abbfe415a27d60d126ed0a2f52d4aa3209"
},
"session": {
"command": [
"node",
"web/worker/test_python_session.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "674713609dc1f223896f18a058acec083c0369adaa1ce6bc432ea68fb89dda29"
}
}
}

View File

@@ -0,0 +1,91 @@
{
"apis": {
"INI": [
"find",
"findall",
"sections"
],
"hal": [
"component",
"pin",
"param",
"signal",
"thread"
],
"linuxcnc": [
"command",
"stat",
"error"
],
"parameter": [
"get",
"set"
],
"tool": [
"get",
"set"
]
},
"bridge": {
"command": "node web/worker/test_python_bridge.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "python_bridge=passed calls=7 errors=4 hash=fnv1a64:f0973db0f20de8bf\n"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"errors": [
"invalid_module",
"invalid_symbol",
"invalid_argument",
"source_limit",
"call_limit",
"clock_regression",
"host_capability_denied",
"ini_shape",
"tool_number",
"parameter_name"
],
"known_boundaries": [
"remap/filter/VCP callback lifecycle is P5-03",
"Pyodide artifact remains pinned by P5-01"
],
"outputs": [
{
"bytes": 11540,
"path": "web/worker/python-bridge.mjs",
"sha256": "e40ea06131c4346b4f396bb11d044e7a94ee5f7ca1dcb23528eb167e3c824348"
},
{
"bytes": 1861,
"path": "web/worker/test_python_bridge.mjs",
"sha256": "02a82442a9644890fd501e4d915ee0b169e53a651eaa48a613796c5345779431"
},
{
"bytes": 1532,
"path": "web/worker/test_python_session.mjs",
"sha256": "8abd0fbb95bf30e548a97716a3c70182ee9a8ccf9c716ec7a048391e75bdf266"
},
{
"bytes": 2036,
"path": "python-runtime/compat.mjs",
"sha256": "1ffe4b0410b64e834212aa6f573ccbdda38a18fad5da601ab873ba379c1a70c5"
}
],
"report_sha256": "774d7f9c85027dd490bdfc69b1a28baf6757a17e9b283452d65c45667732c9f7",
"schema": "python-api-report.v1",
"session": {
"command": "node web/worker/test_python_session.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "python_session=passed hash=fnv1a64:26a34dca82ccd695\n"
},
"state": {
"checkpoint": true,
"logical_clock": true,
"state_hash": "fnv1a64 bridge imports/calls/api state"
},
"status": "verified",
"task_id": "P5-02"
}

View File

@@ -0,0 +1,93 @@
{
"boundaries": [
"subprocess/socket/device paths/host paths are REAL-EXCLUDED",
"VCP UI rendering remains outside this task",
"callback handlers are Worker-local and not persisted as executable code"
],
"callbacks": {
"filter": [
"source_allowlist",
"budget",
"exception_isolation"
],
"remap": [
"prolog",
"epilog"
],
"vcp": [
"descriptor",
"typed_pin",
"callback",
"rollback_on_failure"
]
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "web/worker/python-callbacks.mjs",
"sha256": "2351fb79254da15c1e97d9be7c7f3d5f5bde1478780f5f6d98ee9270d56562ec"
},
{
"path": "web/worker/test_python_callbacks.mjs",
"sha256": "0b78e429adf695483b39d68ec3561eab9ed5b4c3cc13841ef6f9eb91ef775fb7"
},
{
"path": "web/worker/test_python_callbacks_s3.mjs",
"sha256": "fa75a69bd57e24ba171dfc1999a962994b5b0b64a12d555e57563ff2621bbd82"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"path": "linuxcnc/configs/sim/axis/remap/cycle/python/remap.py",
"sha256": "6d0dc507dd443b1edcfdf9cb3b2bcc4601ae0c92f8effb3f1bbcf305fbe9a21b"
}
],
"limits": {
"max_callbacks": 256,
"max_source_bytes": 65536,
"reentrant": "blocked",
"vcp_pins": 256
},
"report_sha256": "56c26965b234032f413eacad1d5c58023312ecb79eb6a7368ac229d789c27de6",
"schema": "python-callbacks-s3-report.v1",
"status": "verified",
"task_id": "S3-02",
"tests": {
"legacy": {
"command": [
"node",
"web/worker/test_python_callbacks.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "531b7be35a842a946c7cac8bebfef9d45756969fdae33fa470598fe353d4be78"
},
"s3": {
"command": [
"node",
"web/worker/test_python_callbacks_s3.mjs"
],
"returncode": 0,
"sample": {
"callback_hash": "fnv1a64:67e7a5316f57b53d",
"calls": 3,
"checkpoint_hash": "fnv1a64:913e7b44c12d48a7",
"errors": 8,
"schema": "python-callbacks-s3-sample.v1",
"status": "verified",
"worker_hash": "fnv1a64:88c1a0e2e868fbc4"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "069f9e88fb730cbd1c818814c54650eb73bc7f79103112d26124a67505e7501b"
}
}
}

View File

@@ -0,0 +1,59 @@
{
"callbacks": [
"remap_prolog",
"remap_epilog",
"filter",
"vcp_pin"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"denied": [
"subprocess",
"socket",
"os.system",
"device_paths",
"arbitrary_host_paths"
],
"determinism": {
"checkpoint_state_hash": true,
"logical_tick": true,
"random": false,
"wall_clock": false
},
"known_boundaries": [
"full VCP UI descriptor rendering is P7-03",
"Pyodide artifact and API compatibility are P5-01/P5-02"
],
"limits": {
"exception": "isolated",
"max_callbacks": 256,
"max_source_bytes": 65536,
"reentrant": "blocked"
},
"outputs": [
{
"bytes": 7227,
"path": "web/worker/python-callbacks.mjs",
"sha256": "2351fb79254da15c1e97d9be7c7f3d5f5bde1478780f5f6d98ee9270d56562ec"
},
{
"bytes": 53849,
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"bytes": 2120,
"path": "web/worker/test_python_callbacks.mjs",
"sha256": "0b78e429adf695483b39d68ec3561eab9ed5b4c3cc13841ef6f9eb91ef775fb7"
}
],
"report_sha256": "35cd8687c11ddd2e3135d0573a3caedc432a5f0c1087982fefd75c1b29fd876f",
"schema": "python-callbacks-report.v1",
"status": "verified",
"task_id": "P5-03",
"test": {
"command": "node web/worker/test_python_callbacks.mjs",
"status": "verified",
"stderr": "",
"stdout": "python_callbacks=passed remap=3 errors=1 worker=real_hardware_excluded\n"
}
}

View File

@@ -0,0 +1,90 @@
{
"allowlist": {
"allowed_packages": [],
"denied_capabilities": [
"os.system",
"subprocess",
"socket",
"select",
"multiprocessing",
"threading",
"ctypes",
"fcntl",
"pty",
"termios",
"device_paths",
"arbitrary_host_paths"
],
"virtual_modules": [
"INI",
"gstat",
"hal",
"linuxcnc"
]
},
"bridge_test": {
"command": "node web/worker/test_python_bridge.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "python_bridge=passed calls=1 errors=4 hash=fnv1a64:0e9249f6f3181f41\n"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"known_boundaries": [
"P5-02 implements full linuxcnc/hal/INI/tool/parameter compatibility API",
"P5-03 implements remap/filter/VCP lifecycle"
],
"limits": {
"clock": "logical_tick * 0.001 seconds",
"max_calls": 256,
"max_source_bytes": 65536
},
"outputs": [
{
"bytes": 1902,
"path": "python-runtime/manifest.json",
"sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213"
},
{
"bytes": 5655,
"path": "web/worker/python-bridge.mjs",
"sha256": "a9c2c9bf8b9b26d0de4cd82cd8d38038e67ea4fe4e223b6b3a2ddaaa1130a3b6"
},
{
"bytes": 1221,
"path": "web/worker/test_python_bridge.mjs",
"sha256": "2ca59d55f48eb92117ea1121f659b156fcfa0a12e7ae04103328f08c1a56936f"
},
{
"bytes": 2217,
"path": "python-runtime/test_runtime.mjs",
"sha256": "d4c9706690e26204106c1ee4ee3313312dd781bf941d5752b9c417773ea1f54b"
}
],
"report_sha256": "5ef0fd9d5b2ce7389c8c3c4328bdc124aa34bd3b6c037c1d724827c08ab2df91",
"runtime": {
"abi_version": "2025_0",
"name": "Pyodide",
"offline_required": true,
"python_version": "3.13.2",
"version": "0.29.4",
"worker_only": true
},
"runtime_test": {
"command": "node python-runtime/test_runtime.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "python_runtime=passed version=0.29.4 modules=4\n"
},
"schema": "python-runtime-closure-report.v1",
"session_test": {
"command": "node web/worker/test_python_session.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "python_session=passed hash=fnv1a64:df775b9bc5996a80\n"
},
"status": "verified",
"task_id": "P5-01"
}

View File

@@ -26,7 +26,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -47,20 +47,20 @@
"bytes": 3685,
"path": "coverage/workspace-session-integration.report.json",
"role": "workspace_session_integration",
"sha256": "19a5701dd49877153cfa0dc7fa886b5c0e72baadb5023143cef61bc9f94ca13b",
"sha256": "92f571fff86f378726ea4009ab40c80b3a0fbdf36f7794f65031b18598e2bf89",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
}
],
"next_transition": "execute FE-M1 minimal real frontend vertical slice",
"release_action": "STOP_RELEASE",
"report_sha256": "f1727f19814d7a639e99fe1a2eca9c8e62be1c99aa18fc6ad9db3bf1f9958237",
"report_sha256": "59f9a29b62a109207e565c9c18836bd97d3341f9b43c13f61dd8866a06f12f22",
"runtime": {
"abi_version": "2025_0",
"artifacts": [
@@ -146,15 +146,15 @@
"exit_code": 0,
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout": "python_bridge=passed calls=1 errors=3 hash=fnv1a64:b05c4bdd90382502",
"stdout_sha256": "d99404df34b1e6f8e113b4dc354ccf8d2148d878651200b204521fa755fc4fbb"
"stdout": "python_bridge=passed calls=7 errors=4 hash=fnv1a64:21646389b3adc61b",
"stdout_sha256": "5a0211cf093d9c498f4ddf4009190833332ec1226310f5e5e2eace604a5e9060"
},
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout": "python_bridge=passed calls=1 errors=3 hash=fnv1a64:b05c4bdd90382502",
"stdout_sha256": "d99404df34b1e6f8e113b4dc354ccf8d2148d878651200b204521fa755fc4fbb"
"stdout": "python_bridge=passed calls=7 errors=4 hash=fnv1a64:21646389b3adc61b",
"stdout_sha256": "5a0211cf093d9c498f4ddf4009190833332ec1226310f5e5e2eace604a5e9060"
}
},
"schema": "python-worker-bridge.v1",

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,101 @@
{
"boundaries": [
"desktop GTK/Qt/Tk windows are Web-equivalent workflows, not copied windows",
"license/NOTICE aggregation remains final delivery work and does not block implementation",
"full family acceptance still requires source/config/native/WASM/Worker/browser evidence"
],
"checks": {
"boundary_labels": {
"labels": [
"WEB-EQUIV",
"PY-WASM",
"SIM-DEVICE",
"REAL-EXCLUDED"
],
"status": "verified"
},
"command_mapping": {
"commands": 23,
"status": "verified"
},
"family_panel_matrix": {
"families": 12,
"status": "verified"
},
"opfs_boundary": {
"owner": "Worker/WorkspaceRuntime",
"status": "verified"
},
"worker_authority": {
"state_source": "FrontendState reducer from protocol.v1 envelopes",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"domain_model": {
"commands": [
"PROGRAM_RUN",
"PROGRAM_PAUSE",
"PROGRAM_RESUME",
"PROGRAM_STEP",
"PROGRAM_RESTART",
"PROGRAM_ABORT",
"PROGRAM_LOAD",
"MDI_EXECUTE",
"JOG_START",
"JOG_STOP",
"HOME",
"SET_OVERRIDE",
"ESTOP",
"IO_RECOVER",
"SPINDLE_COMMAND",
"COOLANT_COMMAND",
"TOOL_PREPARE",
"TOOL_CHANGE",
"PROBE_CONFIG",
"SNAPSHOT_REQUEST",
"CHECKPOINT",
"RECOVER"
],
"families": [
"axis",
"gmoccapy",
"touchy",
"gscreen",
"qtvcp",
"qtdragon",
"pyvcp",
"gladevcp",
"vismach",
"ngcgui",
"qtplasmac",
"plasma"
],
"path": "web/react/src/gui-domain.ts",
"sha256": "aa31acabe0144fac1f9952f4c97b70181fbe85528ef7956b669e287b965a6329"
},
"implementation_status": "verified",
"report_sha256": "52ec9752db5237ec057d4057fcfda1374782dddbfc6b9ae7b26a76bde4a3d4af",
"schema": "react-gui-domain-fe-m4-report.v1",
"source_inventory": {
"families": {
"axis": 844,
"gladevcp": 49,
"gmoccapy": 187,
"gscreen": 204,
"ngcgui": 4,
"pyvcp": 5,
"qtdragon": 56,
"qtplasmac": 30,
"qtvcp": 240,
"shared": 159,
"touchy": 58,
"vismach": 1
},
"path": "coverage/gui-source-inventory-fe-m4.report.json",
"records": 1837,
"sha256": "7e749cc0c2a65548038c2f1ce66dfa1c2eebc63323834b439ba38fb83636448c"
},
"status": "verified",
"task_id": "FE-M4-GUI-02"
}

View File

@@ -0,0 +1,91 @@
{
"boundaries": [
"schema mismatch",
"hash mismatch",
"half commit",
"duplicate operation",
"duplicate event",
"unconfirmed operation",
"failed operation"
],
"checkpoint": {
"context": true,
"schema": "simulation-checkpoint.v1",
"state_hash": true,
"timeline_prefix": true
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"journal": {
"hash": "fnv1a64 content/prepare/data",
"schema": "workspace-journal.v1",
"states": [
"prepare",
"commit",
"abort"
]
},
"known_boundaries": [
"OPFS migration/offline cache is P6-03",
"browser recovery UX is P7-05"
],
"operations": {
"aborted": "ABORTED result",
"committed": "replayed without side effect",
"failed": "blocked",
"pending": "requires reconcile callback"
},
"outputs": [
{
"bytes": 6812,
"path": "web/workspace/journal.mjs",
"sha256": "a2d97ceac5e0dbb65d3dc9cafaa845b3acd115292717312d6eff69585bca98a7"
},
{
"bytes": 8767,
"path": "web/workspace/recovery.mjs",
"sha256": "d4bae4220a3348d7bb66991472d1331045ab60bbe70c93f3b589bf0e8d05d14d"
},
{
"bytes": 4349,
"path": "web/worker/operation-ledger.mjs",
"sha256": "555cc27e176b8ea10890e952e147f2c2ba4a99d5005ec54be4b7895cb315fd01"
},
{
"bytes": 43953,
"path": "web/worker/sim-session.mjs",
"sha256": "8ee3abd8e339465c8f80bac03bdb4b3a26ff8cbb3e78df05726efba754a2cf3d"
},
{
"bytes": 1793,
"path": "web/worker/test_device_recovery.mjs",
"sha256": "36248086f33ff12af8141a7b3a8734569a7aef0ece6ca57963244f7f07a2eddb"
}
],
"report_sha256": "1afafb9d6f944e2d6c76ef8867a45b94fedb00976c01d4a6ac0d7b406e72af8e",
"schema": "reconciliation-report.v1",
"status": "verified",
"task_id": "P6-02",
"tests": {
"device_recovery": {
"command": "node web/worker/test_device_recovery.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "device_recovery=passed state_hash=fnv1a64:cbe6e101047659e5\n"
},
"fault_matrix": {
"command": "node web/worker/test_recovery_offline_faults.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "recovery_offline_faults=passed scenarios=5\n"
},
"workspace_recovery": {
"command": "node web/workspace/test_recovery.mjs",
"returncode": 0,
"status": "verified",
"stderr": "",
"stdout": "workspace_recovery=passed commit=1\n"
}
}
}

View File

@@ -31,21 +31,21 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"role": "full_configuration_matrix",
"sha256": "ab270bb11acc0825ee0a7b61f06751a88a8808e2061eea531162780043cf4a77",
"sha256": "eefde49a278a077e374b751d0d0ed59b1294ce399a757a665e3cc14f569f7656",
"status": "present"
},
{
"bytes": 3685,
"path": "coverage/workspace-session-integration.report.json",
"role": "workspace_session_integration",
"sha256": "19a5701dd49877153cfa0dc7fa886b5c0e72baadb5023143cef61bc9f94ca13b",
"sha256": "92f571fff86f378726ea4009ab40c80b3a0fbdf36f7794f65031b18598e2bf89",
"status": "present"
},
{
@@ -66,13 +66,13 @@
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
}
],
"next_transition": "execute REG-04 browser and performance matrix",
"release_action": "STOP_RELEASE",
"report_sha256": "5ca81a3dbe4be9caa4a47ecbbb7540d424d66f858dc21d2250575c29411bc905",
"report_sha256": "a380d0ce4d4824acf924ffe8679099ecf1f005b98593772c8aa7d2a47e4df3fa",
"sample": {
"first": {
"exit_code": 0,

View File

@@ -0,0 +1,81 @@
{
"boundaries": [
"OPFS/Service Worker browser-specific transport remains represented by deterministic storage adapters",
"official crash/browser oracle remains blocked",
"real filesystem and wall clock are excluded"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
"logical Worker crash/restart",
"checkpoint event replay and operation reconciliation",
"journal atomic prepare/commit/half-commit/quota",
"offline package ready/network_required/path/quota validation",
"deterministic migration and state hashes"
],
"inputs": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
{
"path": "web/worker/recovery-runtime.mjs",
"sha256": "b8c57718f54a9f345c7cd348337d9f2fb6e8dcb6cd593ea7b31af5cdf9b16543"
},
{
"path": "web/worker/test_recovery_s3.mjs",
"sha256": "c7364aad31ebd848298aa025ed0e7458fafd7d17b1904559e499d93f428e7ca4"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "715e3ce686e570514cd5549c26f1a7e272d344153ca8e47ec608b22c477b3cc2"
},
{
"path": "web/workspace/recovery.mjs",
"sha256": "d4bae4220a3348d7bb66991472d1331045ab60bbe70c93f3b589bf0e8d05d14d"
},
{
"path": "web/workspace/journal.mjs",
"sha256": "2c09054bac8b7b68aa774d6ce086ce32f642ab302e9f7d6fa5decb3ef2a8b7fb"
},
{
"path": "web/workspace/migration.mjs",
"sha256": "58430bc2982615eca93fe85c1e81abe529ea0970d2298ea56bf3bdad6a63f2e8"
}
],
"report_sha256": "2d9d4330fce3406a31f0cd2a088ee323ba612e395ec393fb07fb209e9984aca4",
"schema": "recovery-s3-report.v1",
"status": "verified",
"task_id": "S3-03",
"tests": {
"legacy_faults": {
"command": [
"node",
"web/worker/test_recovery_offline_faults.mjs"
],
"returncode": 0,
"sample": null,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "912523ab087f74502eb39173e61e687b63b413cb9aaa886a615455ce209afbf8"
},
"s3": {
"command": [
"node",
"web/worker/test_recovery_s3.mjs"
],
"returncode": 0,
"sample": {
"crash_count": 1,
"package_hash": "fnv1a64:06530a6164a3fcec",
"recovery_hash": "fnv1a64:763cd1217e060ddf",
"restart_count": 1,
"schema": "recovery-s3-sample.v1",
"state_hash": "fnv1a64:d7a8b5f5a048487f",
"status": "verified"
},
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e8c777040d3a2ae725b29b4b816560010cddef2ece0945f5e80191609ccd851a"
}
}
}

View File

@@ -0,0 +1,80 @@
{
"actions": {
"blocked": [
"retry",
"abort"
],
"half_commit": "explicit message",
"network_required": [
"retry_online"
],
"recovered": [
"continue"
]
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"diagnostics": [
"reason",
"state_hash",
"applied",
"half_commits",
"missing",
"corrupted",
"permission",
"quota"
],
"known_boundaries": [
"browser multi-engine fault matrix is P8-04",
"release gate remains STOP_RELEASE"
],
"outputs": [
{
"bytes": 1689,
"path": "web/app/recovery-panel.mjs",
"sha256": "e7b6951c9fbbfd6464ad9bf4c39bac7fde244bc7a50a714692224a707eccb495"
},
{
"bytes": 2238,
"path": "web/app/project-workflow.mjs",
"sha256": "dc043ab7150c38df40d63469f8325e549b245f0dfc163affe42034fd4c67e4b8"
},
{
"bytes": 8105,
"path": "web/app/app.mjs",
"sha256": "029534f14dd2efa218390a05ba978193806f03394a860329555efe6b3aca1d42"
},
{
"bytes": 1135,
"path": "web/app/test_recovery_ux.mjs",
"sha256": "d166eb1def271252d310a9965315580aaafcf30c5dd3ae8e4ee2d49b4d6ac88a"
},
{
"bytes": 12954,
"path": "web/workspace/migration.mjs",
"sha256": "0eed79497cb5b714a309f8730e8ec9f3bb0ae9582aa800ad97d2cf408760abd5"
}
],
"report_sha256": "a9c61fbb5dd98065d659bca5214853d6c05bbcfa79df0664a2ed988f5fb19f1c",
"schema": "recovery-ux-report.v1",
"states": [
"idle",
"validating",
"replaying",
"recovered",
"aborted",
"blocked",
"network_required"
],
"status": "verified",
"task_id": "P7-05",
"tests": {
"ux": {
"status": "verified",
"stdout": "recovery_ux=passed actions=2 retry=1\n"
},
"workflow": {
"status": "verified",
"stdout": "frontend_m3=passed files=2\n"
}
}
}

View File

@@ -1876,7 +1876,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -1890,35 +1890,35 @@
"bytes": 1435099,
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"status": "present"
},
{
"bytes": 4628776,
"path": "coverage/manifest-ownership-remediation.report.json",
"role": "manifest_ownership_remediation",
"sha256": "d9573847f82d1c138cd08ca9af9a4ed6d390876530bee4523f149de9fd34d203",
"sha256": "a2dc46e168eb43f2101be4995dc751e776b2660f8b13dc371632af51cb9c8284",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "b88b3978114cb7347f890c558ea0b6c948533b8a87d61bcee3806cd0912b0a6d",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_no_eligible_entries",
"report_sha256": "62e150f223606a6529c5a11b5f60def68f35249a773bdea39cb8f9b5cec6a207",
"report_sha256": "3a172bcdf52460f93ceb79aaea3611b16d1aeaf70788347acb55d0ab7ffa6ad2",
"schema": "release-acceptance-remediation.v1",
"status": "complete",
"task_id": "K8-REL-09"

View File

@@ -97,7 +97,7 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
@@ -105,7 +105,7 @@
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"schema": "release-closure-report.v1",
"sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"status": "blocked"
},
{
@@ -113,7 +113,7 @@
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"schema": "release-evidence-index.v1",
"sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"status": "blocked"
},
{
@@ -122,7 +122,7 @@
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"schema": "release-compatibility-matrix.v1",
"sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"status": "blocked"
},
{
@@ -208,14 +208,14 @@
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"report_sha256": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"schema": "release-candidate-gate.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",

View File

@@ -38,12 +38,12 @@
],
"compatibility": {
"path": "coverage/compatibility-matrix.report.json",
"sha256": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6"
"sha256": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"evidence_index": {
"path": "coverage/release-evidence-index.json",
"sha256": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1"
"sha256": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f"
},
"integrity": {
"all_affected_entries_have_required_evidence": true,
@@ -63,7 +63,7 @@
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8"
},
"release_decision": "blocked_not_release_candidate",
"report_sha256": "26b10dd3747ec06a29b6188dca47a9aeb7d83ceaa4821fe93261086848f2f5d1",
"report_sha256": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d",
"schema": "release-closure-report.v1",
"status": "blocked"
}

View File

@@ -37349,7 +37349,7 @@
],
"compatibility_report": {
"path": "coverage/compatibility-matrix.report.json",
"sha256": "82ba7df0a5ad50d72fd3b5f392d59623b2eac3ac6be26537a60b863b2fa4b5d6"
"sha256": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"context_lock": {
@@ -37362,7 +37362,7 @@
"snapshot": 1,
"workspace": 1
},
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e"
},
"integrity": {
"all_affected_entries_have_required_evidence": true,
@@ -37427,7 +37427,7 @@
]
},
"release_decision": "blocked_not_release_candidate",
"report_sha256": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"report_sha256": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"reports": [
{
"bytes": 497244,
@@ -37667,7 +37667,7 @@
"path": "coverage/runtime-mapping.report.json",
"role": "coverage_evidence",
"schema": "runtime-mapping-report.v1",
"sha256": "f4be10828fda8201ff9e69de95bc68e5def42fc7206a851b37474c21b4da0a17",
"sha256": "292749b6babf31bd3d4abdc6201b7704aa4b36d7ba935ff4b19d3e749a0c741d",
"status": "passed"
},
{
@@ -37791,7 +37791,7 @@
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"schema": "release-compatibility-matrix.v1",
"sha256": "1079e4da3d18044a98b38e4e083eff90b26c6adfaa0d4903a636d19988af963b",
"sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346",
"status": "blocked"
},
{

View File

@@ -60,51 +60,51 @@
"comparisons": [
{
"actual_bytes": 26665,
"actual_sha256": "6794b4fd2b3b2ffb54b6a48d298265a8ac9b700bf5e1da434d80c9bb2a45f328",
"actual_sha256": "67360195c796e1e6448a25567922c56cfee00312350df887841d8945871e251b",
"expected_bytes": 26665,
"expected_sha256": "6794b4fd2b3b2ffb54b6a48d298265a8ac9b700bf5e1da434d80c9bb2a45f328",
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"status": "verified"
"status": "blocked"
},
{
"actual_bytes": 7196,
"actual_sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"actual_sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"expected_bytes": 7196,
"expected_sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"status": "verified"
"status": "blocked"
},
{
"actual_bytes": 1945,
"actual_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"actual_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"expected_bytes": 1945,
"expected_sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
"status": "blocked"
},
{
"actual_bytes": 1435099,
"actual_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"actual_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"expected_bytes": 1435099,
"expected_sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
"status": "blocked"
},
{
"actual_bytes": 7647,
"actual_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"actual_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
}
],
"status": "verified"
"status": "blocked"
},
"no_reclassification": {
"status": "verified"
@@ -112,32 +112,32 @@
"source_report_self_hashes": {
"reports": [
{
"actual": "9b55de44782ac77b58d4c7d0709bdbcc9647fdc550137883755c3fef83aa2d91",
"declared": "9b55de44782ac77b58d4c7d0709bdbcc9647fdc550137883755c3fef83aa2d91",
"actual": "d01884df05489c053a1cf9cc75edb191196d942a05c1e1b88a41e4058ded8211",
"declared": "d01884df05489c053a1cf9cc75edb191196d942a05c1e1b88a41e4058ded8211",
"path": "coverage/k8-milestone-closeout.report.json",
"status": "verified"
},
{
"actual": "2011f99b5e93b3d16697d0b347bdd55f572a99475ca518e9de9316baacf2b0aa",
"declared": "2011f99b5e93b3d16697d0b347bdd55f572a99475ca518e9de9316baacf2b0aa",
"actual": "61fa9c413b56f88d717e3fc472dd757b9da42cad1fee02131ae0e4af81e5e352",
"declared": "61fa9c413b56f88d717e3fc472dd757b9da42cad1fee02131ae0e4af81e5e352",
"path": "coverage/post-release-audit.report.json",
"status": "verified"
},
{
"actual": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"declared": "9b75b848d1ab9c27cfe431776a59a3b5b15fab23c420c694a795c2db9f8fabc0",
"actual": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"declared": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
},
{
"actual": "26b10dd3747ec06a29b6188dca47a9aeb7d83ceaa4821fe93261086848f2f5d1",
"declared": "26b10dd3747ec06a29b6188dca47a9aeb7d83ceaa4821fe93261086848f2f5d1",
"actual": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d",
"declared": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d",
"path": "coverage/release-closure.report.json",
"status": "verified"
},
{
"actual": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"declared": "f6e86b87f39436c1bac0ceb30cb19cae670dc4782a51448b3f5bb6404c9136d1",
"actual": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"declared": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f",
"path": "coverage/release-evidence-index.json",
"status": "verified"
}
@@ -168,42 +168,42 @@
"bytes": 10299,
"path": "coverage/k8-milestone-closeout.report.json",
"role": "k8_milestone_closeout",
"sha256": "4fed8e96ae515e5c68c7c3c270cfe5bbab9416874260f19382a6085aa2490108",
"sha256": "6dd6004c6687f9cef63afa90fcb24661b0f9c877647e810d80da264879f7fb8f",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "6794b4fd2b3b2ffb54b6a48d298265a8ac9b700bf5e1da434d80c9bb2a45f328",
"sha256": "67360195c796e1e6448a25567922c56cfee00312350df887841d8945871e251b",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 1945,
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"sha256": "7dea93eaf2ae9edcdc53c484171629f8bed1904679c062a9a328ddc15fa74986",
"sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c",
"status": "present"
},
{
"bytes": 1435099,
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"sha256": "5eecf795a2d5a887a46ef0a0fcd0e9ea40de77a47553f582c8239da7d41161e5",
"sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
}
],
@@ -278,20 +278,20 @@
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "3b142c107e8174602c4d371b958b73c891cd3621b2142db0535213be0fac1e54",
"report_sha256": "a52cd3e8390beb7f15923f7c88be4f3e5c79197c32b2448e326911682eb1ae06",
"schema": "release-remediation-intake.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0"
},
"status": "complete",
"status": "blocked",
"work_items": [
{
"count": 6249,

View File

@@ -29,7 +29,7 @@
"context": "verified",
"path": "coverage/manifest-ownership-remediation.report.json",
"remediation_status": "blocked_pending_manifest_review",
"report_sha256": "7ddd6e6af4264387c15f98f2cc9b923058ed29cfac0d8ca46f2587032c81a922",
"report_sha256": "5afeb0263ea51660bcd55a719159773412e1e4eab50bb79306b7c68ab59ac052",
"self_hash": "verified",
"status": "complete"
},
@@ -37,7 +37,7 @@
"context": "verified",
"path": "coverage/release-acceptance-remediation.report.json",
"remediation_status": "blocked_no_eligible_entries",
"report_sha256": "62e150f223606a6529c5a11b5f60def68f35249a773bdea39cb8f9b5cec6a207",
"report_sha256": "3a172bcdf52460f93ceb79aaea3611b16d1aeaf70788347acb55d0ab7ffa6ad2",
"self_hash": "verified",
"status": "complete"
},
@@ -45,7 +45,7 @@
"context": "verified",
"path": "coverage/official-oracle-remediation.report.json",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "44b4bc2a64b9f43d0a4a0b4eb4afd176396cda938c733b70a5f257d9e5abd248",
"report_sha256": "ab2efdc651f8e9a5f29a41a5e0b9b189866ccebd9592795969713212c9c8c5a1",
"self_hash": "verified",
"status": "complete"
},
@@ -53,7 +53,7 @@
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "419cd1afd030105fc766849c3f79d461bc1894a40247ce40ea98744f0ce844c1",
"report_sha256": "3a0ba7fa4602a78d0e7f9ed8904ddfbbe8c27fb8636d629d8d2390cb1da8e8a5",
"self_hash": "verified",
"status": "complete"
},
@@ -61,7 +61,7 @@
"context": "verified",
"path": "coverage/browser-matrix-remediation.report.json",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "64c89092fe6dc4eeb86c33ee3984b320bf5aa05231415acbd835877cd5f1c7e8",
"report_sha256": "2f47276d3ea7ce985796881fb0ae6c009c5762c7f3ba199c7b101f9f63f4310a",
"self_hash": "verified",
"status": "complete"
},
@@ -69,7 +69,7 @@
"context": "verified",
"path": "coverage/implementation-license-remediation.report.json",
"remediation_status": "blocked_pending_owner_decision",
"report_sha256": "8cc56f6d59aba518e53e0c5b1dac8dfabd33f814776cdd4956326b309fb90591",
"report_sha256": "388f94bf33c9e0214097ceba4d168e3178f3d8c4aeee29184181190e8efec23c",
"self_hash": "verified",
"status": "complete"
}
@@ -88,77 +88,77 @@
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 15574,
"bytes": 15568,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "6e0e41e4f0ff3cb7f62ecfe60cf07863878539547296263a210f9b6b1765c881",
"sha256": "86ba1971fec3cbef1431fb211c9258b5ad568b3267aa8bbbd6f61706f3286b77",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "2092257cc0aea41c5988b19a0e7aef74ed6ccae09062213e1a98f44adc4314b1",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "6794b4fd2b3b2ffb54b6a48d298265a8ac9b700bf5e1da434d80c9bb2a45f328",
"sha256": "67360195c796e1e6448a25567922c56cfee00312350df887841d8945871e251b",
"status": "present"
},
{
"bytes": 10299,
"path": "coverage/k8-milestone-closeout.report.json",
"role": "k8_closeout",
"sha256": "4fed8e96ae515e5c68c7c3c270cfe5bbab9416874260f19382a6085aa2490108",
"sha256": "6dd6004c6687f9cef63afa90fcb24661b0f9c877647e810d80da264879f7fb8f",
"status": "present"
},
{
"bytes": 4628776,
"path": "coverage/manifest-ownership-remediation.report.json",
"role": "K8-REL-08",
"sha256": "d9573847f82d1c138cd08ca9af9a4ed6d390876530bee4523f149de9fd34d203",
"sha256": "a2dc46e168eb43f2101be4995dc751e776b2660f8b13dc371632af51cb9c8284",
"status": "present"
},
{
"bytes": 143970,
"path": "coverage/release-acceptance-remediation.report.json",
"role": "K8-REL-09",
"sha256": "93ee6c0544fba2c24efdf6686eb566f03ff8dcec74d899721f7253d3ad8bd899",
"sha256": "cbe1d67a603896ecdb098766f39ed8810f8af44574d2e747ba6713758ca14881",
"status": "present"
},
{
"bytes": 5541,
"path": "coverage/official-oracle-remediation.report.json",
"role": "K8-REL-10",
"sha256": "45c66d3704cba5da3499832c4993f2f11e847f1e5945a8afcf1e4d700627ee16",
"sha256": "b4bef9f289cdf6775d69acae30bb5969ca17df992db1165886aac24910b3eeca",
"status": "present"
},
{
"bytes": 754595,
"bytes": 759645,
"path": "coverage/configuration-resource-remediation.report.json",
"role": "K8-REL-11",
"sha256": "f07e88f3d49ca36232627238a68a61561beee35a1f3b8158fae57038263f3616",
"sha256": "d50bccf422d9b903b85634f31539f47ee72c93aa9525b06c3ab3f4b8a74ab812",
"status": "present"
},
{
"bytes": 6180,
"bytes": 6340,
"path": "coverage/browser-matrix-remediation.report.json",
"role": "K8-REL-12",
"sha256": "6f150474a385a41caf71b964d6c11133d34e742a211f985f207908687aecb37c",
"sha256": "1ba374b8ebfcdabe5363c519011ae73a6535a5e5643149810ac0279a955896a5",
"status": "present"
},
{
"bytes": 41237,
"path": "coverage/implementation-license-remediation.report.json",
"role": "K8-REL-13",
"sha256": "6dec4492d81ccebd7a25a3962e5cd8f0975795f8513f580324d3df0bef49ab68",
"sha256": "7fdc270333f2df98c1723ed45f30bda4aea605abe629250d653ee7c34ffcb6ef",
"status": "present"
}
],
@@ -195,7 +195,7 @@
"context": "verified",
"path": "coverage/manifest-ownership-remediation.report.json",
"remediation_status": "blocked_pending_manifest_review",
"report_sha256": "7ddd6e6af4264387c15f98f2cc9b923058ed29cfac0d8ca46f2587032c81a922",
"report_sha256": "5afeb0263ea51660bcd55a719159773412e1e4eab50bb79306b7c68ab59ac052",
"self_hash": "verified",
"status": "complete"
},
@@ -203,7 +203,7 @@
"context": "verified",
"path": "coverage/release-acceptance-remediation.report.json",
"remediation_status": "blocked_no_eligible_entries",
"report_sha256": "62e150f223606a6529c5a11b5f60def68f35249a773bdea39cb8f9b5cec6a207",
"report_sha256": "3a172bcdf52460f93ceb79aaea3611b16d1aeaf70788347acb55d0ab7ffa6ad2",
"self_hash": "verified",
"status": "complete"
},
@@ -211,7 +211,7 @@
"context": "verified",
"path": "coverage/official-oracle-remediation.report.json",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "44b4bc2a64b9f43d0a4a0b4eb4afd176396cda938c733b70a5f257d9e5abd248",
"report_sha256": "ab2efdc651f8e9a5f29a41a5e0b9b189866ccebd9592795969713212c9c8c5a1",
"self_hash": "verified",
"status": "complete"
},
@@ -219,7 +219,7 @@
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "419cd1afd030105fc766849c3f79d461bc1894a40247ce40ea98744f0ce844c1",
"report_sha256": "3a0ba7fa4602a78d0e7f9ed8904ddfbbe8c27fb8636d629d8d2390cb1da8e8a5",
"self_hash": "verified",
"status": "complete"
},
@@ -227,7 +227,7 @@
"context": "verified",
"path": "coverage/browser-matrix-remediation.report.json",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "64c89092fe6dc4eeb86c33ee3984b320bf5aa05231415acbd835877cd5f1c7e8",
"report_sha256": "2f47276d3ea7ce985796881fb0ae6c009c5762c7f3ba199c7b101f9f63f4310a",
"self_hash": "verified",
"status": "complete"
},
@@ -235,12 +235,12 @@
"context": "verified",
"path": "coverage/implementation-license-remediation.report.json",
"remediation_status": "blocked_pending_owner_decision",
"report_sha256": "8cc56f6d59aba518e53e0c5b1dac8dfabd33f814776cdd4956326b309fb90591",
"report_sha256": "388f94bf33c9e0214097ceba4d168e3178f3d8c4aeee29184181190e8efec23c",
"self_hash": "verified",
"status": "complete"
}
},
"report_sha256": "7258fe80e7bd4ea9e7adcdc1c6f64d414f046ce88b6eb928fb03e4643de10505",
"report_sha256": "dde615bdce9981a05ae34a27860e703af0410f41f3f94821c9c0bd52e5e82632",
"review_policy": {
"forbidden": [
"promote_blocked_to_accepted",

View File

@@ -0,0 +1,115 @@
{
"boundaries": [
"only DISPLAY.INTRO_GRAPHIC linuxcnc.gif uses this canonical shared asset",
"tool/parameter/HAL/program basename fallback remains blocked",
"208 configuration entries and official oracle remain independent blockers"
],
"checks": {
"canonical_asset_resolution": {
"status": "verified"
},
"deterministic_graph": {
"repeated_state_hash": "fnv1a64:754149e575838554",
"state_hash": "fnv1a64:754149e575838554",
"status": "verified"
},
"generic_basename_guard": {
"status": "verified"
},
"source_generator_basis": {
"source": "linuxcnc/src/emc/usr_intf/stepconf/build_INI.py",
"source_sha256": "487639b7fdc52127b13076a81eb0f1a599f527051011d798b19339487fe230f2",
"statement": "print(\"INTRO_GRAPHIC = linuxcnc.gif\", file=file)",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_resource_intro_graphic_s7_06.mjs"
],
"returncode": 0,
"sample": {
"boundaries": [
"only DISPLAY.INTRO_GRAPHIC linuxcnc.gif uses the canonical shared asset",
"generic basename and tool/parameter/HAL/program substitution remains blocked"
],
"resource": {
"asset_sha256": "6c6da4afc3ecdc1b812dd6878318da0120996bd6889b4dd2ddb480b905d9f4b1",
"bytes": 11,
"data_hash": "fnv1a64:074f2812443c9d8f",
"path": "linuxcnc/linuxcnc.gif",
"type": "image"
},
"resource_graph": {
"deterministic": true,
"repeated_state_hash": "fnv1a64:754149e575838554",
"state_hash": "fnv1a64:754149e575838554"
},
"schema": "resource-intro-graphic-s7-06-sample.v1",
"source_generator": {
"path": "linuxcnc/src/emc/usr_intf/stepconf/build_INI.py",
"sha256": "487639b7fdc52127b13076a81eb0f1a599f527051011d798b19339487fe230f2",
"statement": "print(\"INTRO_GRAPHIC = linuxcnc.gif\", file=file)"
},
"status": "verified",
"wrong_key": {
"code": "resource_missing",
"status": "blocked",
"type": "tool_table"
},
"wrong_section": {
"code": "resource_missing",
"status": "blocked",
"type": "image"
}
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a00f52be956390d89116a0b3256a2ee16a3407e23dd025698000d8cdce33e13e"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 4061,
"path": "coverage/configuration-corexy-s7-05.report.json",
"sha256": "08f71b0e4891954a3fe1d7eabfcbee7a8e55d1327db5e4bca9e59fd04a42a657"
},
{
"bytes": 759645,
"path": "coverage/configuration-resource-remediation.report.json",
"sha256": "d50bccf422d9b903b85634f31539f47ee72c93aa9525b06c3ab3f4b8a74ab812"
},
{
"bytes": 8718,
"path": "linuxcnc/linuxcnc.gif",
"sha256": "6c6da4afc3ecdc1b812dd6878318da0120996bd6889b4dd2ddb480b905d9f4b1"
},
{
"bytes": 17448,
"path": "linuxcnc/src/emc/usr_intf/stepconf/build_INI.py",
"sha256": "487639b7fdc52127b13076a81eb0f1a599f527051011d798b19339487fe230f2"
},
{
"bytes": 5659,
"path": "web/workspace/resource-resolver.mjs",
"sha256": "296f022cf5291dffe9a82f7c03a95fbbb91f7bf22fb0eed5834ae03d923e0a59"
},
{
"bytes": 3353,
"path": "web/worker/test_resource_intro_graphic_s7_06.mjs",
"sha256": "c727fd4c240480924c8909a3c7949653292e7d18d0fde640a37500a3ddbceea2"
}
],
"report_sha256": "eebc66e14403aef98472951535e416451c76b8a205eba5a917164a09c223025a",
"schema": "resource-intro-graphic-s7-06-report.v1",
"scope": {
"canonical_path": "linuxcnc/linuxcnc.gif",
"key": "DISPLAY.INTRO_GRAPHIC",
"mapping_policy": "explicit-key-only",
"raw_value": "linuxcnc.gif"
},
"status": "verified",
"task_id": "S7-06"
}

View File

@@ -0,0 +1,133 @@
{
"checks": {
"deterministic_graph_hash": {
"status": "passed"
},
"locked_contract_unchanged": {
"abi_protocol_schema_changes": false,
"status": "verified"
},
"missing_duplicate_ambiguous": {
"status": "passed"
},
"real_excluded_capability_diagnostics": {
"status": "passed"
},
"typed_resource_graph": {
"status": "passed",
"types": [
"hal",
"tool_table",
"parameter_file",
"program",
"python",
"vcp",
"classicladder"
]
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"direct_inputs": [
{
"bytes": 3940,
"path": "coverage/ini-parser.report.json",
"role": "ini_report",
"sha256": "1d542427354419bcd897c3f05dc3119aa81157abaa740edfb4a9b38e65103a3c",
"status": "present"
},
{
"bytes": 5792,
"path": "web/workspace/runtime.mjs",
"role": "workspace_runtime",
"sha256": "4553e5e7c7b3f869b8fb3ce2fd344f22dbbacb0607e4fbdae790dc8911c92aa3",
"status": "present"
},
{
"bytes": 5036,
"path": "web/workspace/ini-parser.mjs",
"role": "ini_parser",
"sha256": "e7b1cd12773f0c3e92cf76c0021e43888d586a475900c4acfa4234bbee4fdea6",
"status": "present"
}
],
"failure_samples": [],
"implementation_status": "verified",
"known_boundaries": [
"P2-04 unified configuration READY/BLOCKED startup state machine"
],
"outputs": [
{
"bytes": 4870,
"path": "web/workspace/resource-resolver.mjs",
"role": "resolver",
"sha256": "8578c373390445b943f362e2e8725f53537c9a94b028f45d25b6c8f25968f0d2",
"status": "present"
},
{
"bytes": 2006,
"path": "web/worker/test_resource_resolver.mjs",
"role": "worker_test",
"sha256": "f6c4a928f01bc98ca761d121b889efce77c7cd4918ffd43d72c0e3ca3610d9c9",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "1dc84b56ba77afc4f6b403d5ecf59b9c9152d4693fc28c57d656d32e3d2478c1",
"schema": "resource-resolver-report.v1",
"status": "passed",
"task_id": "P2-03",
"tests": {
"configuration_preflight": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "27f51a643e31903d55310440f83e7fc3758399aab8420c1fa4b809821037abf4"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "27f51a643e31903d55310440f83e7fc3758399aab8420c1fa4b809821037abf4"
},
"status": "passed"
},
"ini_worker": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "600b0fd0bd19fb4e68adbea95df09c401cb9ae1905979078ebafd5d2878aa860"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "600b0fd0bd19fb4e68adbea95df09c401cb9ae1905979078ebafd5d2878aa860"
},
"status": "passed"
},
"resolver_worker": {
"byte_identical": true,
"first": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "6914e071ac172f5f7eabd1703fb830d5b5bec3c65f4ed8388644974c64739d3e"
},
"runs": 2,
"second": {
"exit_code": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "6914e071ac172f5f7eabd1703fb830d5b5bec3c65f4ed8388644974c64739d3e"
},
"status": "passed"
}
}
}

View File

@@ -0,0 +1,190 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"diagnostics": {
"error_code": "stable SIM_INTERP_ERR_*",
"error_column": "1-based byte column in submitted block",
"transactional_block": true
},
"grammar": {
"comments": [
"parenthesized",
"semicolon",
"percent-delimiter"
],
"expressions": [
"+",
"-",
"*",
"/",
"**",
"MOD",
"#number",
"#[expression]",
"[expression]",
"ABS",
"SQRT",
"SIN",
"COS",
"TAN",
"ASIN",
"ACOS",
"ATAN",
"FIX",
"FUP",
"ROUND",
"EXP",
"LN"
],
"modal_extensions": [
"G40",
"G41",
"G42",
"G43",
"G49",
"G54",
"G55",
"G56",
"G57",
"G58",
"G59",
"G80",
"G81",
"G82",
"G83",
"G84",
"G85",
"G86",
"G87",
"G88",
"G89",
"M6",
"M7",
"M8",
"M9",
"M19",
"M48",
"M49",
"M50",
"M51",
"M52",
"M53",
"M62",
"M63",
"M64",
"M65",
"M66",
"M67",
"M68",
"M70",
"M71",
"M72",
"M73"
],
"parameter_range": [
1,
5399
],
"words": [
"G0",
"G1",
"G2",
"G3",
"G17",
"G18",
"G19",
"G20",
"G21",
"G90",
"G91",
"M2",
"M3",
"M4",
"M5",
"M30",
"N",
"X",
"Y",
"Z",
"A",
"B",
"C",
"U",
"V",
"W",
"F",
"S",
"I",
"J",
"K",
"L",
"P",
"Q",
"R",
"T",
"D",
"H",
"E"
]
},
"hashes": {
"block": "fnv1a64 submitted UTF-8 bytes",
"modal": "fnv1a64 units/distance/plane/motion/spindle/feed/speed",
"state": "fnv1a64 explicit state and numbered parameters"
},
"known_boundaries": [
"complete G/M/canned-cycle/coordinate compensation is S1-01B",
"canonical motion/TP is S1-02"
],
"native": {
"path": "/home/mes006/linuxcncWebWASM/build-native/sim_interpreter_test",
"returncode": 0,
"status": "verified",
"stderr": ""
},
"outputs": [
{
"bytes": 2486,
"path": "wasm-core/include/sim_interpreter.h",
"sha256": "c5feac77f9ee272fb66292317925c19b32f30ec49a57e99a4a8bf72f7136d7a6"
},
{
"bytes": 33432,
"path": "wasm-core/src/sim_interpreter.c",
"sha256": "5f8c3a1f61867d8ed4308e84b1276f7ecc3a9fc9e6e99ccc47c6f5e60947826a"
},
{
"bytes": 3999,
"path": "wasm-core/tests/sim_interpreter_test.c",
"sha256": "50b00d1d457ac06aaea08f5865818ead4b6bfe8b9bcb9124eecd91814b4a8511"
},
{
"bytes": 28885,
"path": "web/worker/program-runner.mjs",
"sha256": "b0ce1d6904a5d84e430e49c9c45086cb84508a60c8e20b0512a13ce7c071d5bc"
}
],
"report_sha256": "1c307632e14fa09b670dbbba49eba30841d9c85dda90d28c9cbbbd72e3a2c92a",
"schema": "rs274-interpreter-closure-report.v1",
"status": "verified",
"task_id": "S1-01A",
"wasm": {
"missing": [],
"path": "/home/mes006/linuxcncWebWASM/build-wasm/linuxcnc-sim-core.js",
"required_exports": [
"sim_interpreter_size",
"sim_interpreter_init",
"sim_interpreter_execute",
"sim_interpreter_modal_hash",
"sim_interpreter_error_column",
"sim_interpreter_parameter_set",
"sim_interpreter_parameter_get"
],
"status": "verified"
},
"worker": {
"error_diagnostics": true,
"real_wasm": true,
"status": "verified",
"test": "web/worker/test_sim_runner.mjs"
}
}

View File

@@ -0,0 +1,51 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"features": [
"G10 L2 coordinate offsets",
"G54-G59 coordinate selection",
"G40-G43 cutter/tool compensation",
"G80-G89 canned cycle modal",
"M6-M9 coolant/tool modal",
"M19 spindle orient",
"M48-M73 IO/override modal"
],
"known_boundaries": [
"full canned-cycle canonical expansion continues in S1-02",
"complete LinuxCNC M-code side effects continue in S2-03"
],
"outputs": [
{
"bytes": 34786,
"path": "wasm-core/src/sim_interpreter.c",
"sha256": "83c7980028bbf2bcf8b57571acc8097813f0af69f958ce9acb20debd975fd6ac"
},
{
"bytes": 4501,
"path": "wasm-core/tests/sim_interpreter_test.c",
"sha256": "74129da940e2b6306b809f8d13b1bd5c7daf8577ab7cc52978e4f60ca860cda5"
},
{
"bytes": 3399,
"path": "web/worker/test_sim_runner.mjs",
"sha256": "b1b330f212fdf4eba03123c1880dd9c7a7b4bb2290b7d7c6ae8d344561872907"
}
],
"report_sha256": "770138bf52414638e1bbac690ddfb5779813cd4474f60b428558a929b59382b7",
"schema": "rs274-s1b-report.v1",
"status": "verified",
"task_id": "S1-01B",
"tests": {
"native": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"worker": {
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "67a259f32dbea3ab4f18ed217a54e27cb4a7f861c9717f18a28d0d02ff916954"
}
}
}

View File

@@ -0,0 +1,164 @@
{
"boundaries": [
"host Python/dynamic loader/device paths remain explicit capability boundaries",
"official LinuxCNC canonical oracle remains separate",
"case-specific GUI plugin closure remains S8-10/browser work"
],
"checks": {
"capability_boundaries": {
"status": "verified"
},
"fixed_tick_extension_paths": {
"status": "verified"
},
"io_ack_and_recovery": {
"status": "verified"
},
"source_fixture_classification": {
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"failed": 0,
"passed": 10,
"runners": 10
},
"domains": {
"io_tool_probe": [
"test_device_io.mjs",
"test_io_ack.mjs",
"test_virtual_devices.mjs"
],
"plc": [
"test_plc_runtime.mjs"
],
"python_callbacks": [
"test_python_api_s3.mjs",
"test_python_callbacks_s3.mjs",
"test_python_bridge.mjs"
],
"remap_oword_filter": [
"test_source_interpreter_s5.mjs",
"test_source_do_s7_01.mjs",
"test_source_g6164_s7_02.mjs"
]
},
"execution": [
{
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc",
"stdout_tail": "6\"},\"result_hash\":\"fnv1a64:8ccaf50f9fc9ceca\"},{\"id\":\"source-test:linuxcnc/tests/remap/remap-io/test-py.ini\",\"adapter\":\"WORKER_SIM_ADAPTER\",\"fixture\":[{\"path\":\"linuxcnc/tests/remap/remap-io/remap.py\",\"bytes\":1109,\"sha256\":\"5893f90e8f28f5887839926260a9bb91df105a0d8449388f7cedaa1e4f0d3950\"},{\"path\":\"linuxcnc/tests/remap/remap-io/test-py.ini\",\"bytes\":2566,\"sha256\":\"4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659\"},{\"path\":\"linuxcnc/tests/remap/remap-io/expected\",\"bytes\":5542,\"sha256\":\"64d216aaf7d78567423590088b31823e45ccea8e34b73da0fe675ee0749d024f\"}],\"result\":{\"status\":\"verified\",\"blocked\":\"real_hardware_excluded\",\"state_hash\":\"fnv1a64:443f0c72b715256a\"},\"result_hash\":\"fnv1a64:933bd136f99c4cd9\"}],\"counts\":{\"PASSED\":8,\"WORKER_TASK_MOTION_PENDING\":0},\"fixture_file_count\":26,\"pending\":[],\"boundaries\":[\"G64/G61 modal motion is represented by the Worker motion_control state; upstream canonical logger parity remains SOURCE_BLOCKED\",\"remap Python handlers are represented by allowlisted PythonCallbacks; host imports remain REAL-EXCLUDED\",\"expected/checkresult bytes are hashed and never treated as passed without an adapter result\"],\"aggregate_hash\":\"fnv1a64:32ac09b142f254d0\"}\n"
},
{
"command": [
"node",
"web/worker/test_source_do_s7_01.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "69bd465d2249633e2b19c3425d3470751fc26ccb5d2a1657fdaed215762e6683",
"stdout_tail": "{\"schema\":\"linuxcnc-source-do-s7-01-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/do-while-break/test.ngc\",\"source_hash\":\"fnv1a64:23daa58d09abf802\"},\"normal\":{\"status\":\"completed\",\"steps\":19,\"named_parameters\":{\"one_pass\":1,\"two_pass\":1,\"three_pass\":1},\"interpreter_state_hash\":\"fnv1a64:0000000086efefe9\"},\"pause_resume\":{\"status\":\"completed\",\"steps\":19,\"hash_equal\":true},\"errors\":{\"malformed_enddo\":\"program_enddo_without_do\",\"depth\":\"program_control_depth\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:f581242f3cd81a99\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"G64/G61 remains S7 follow-up\",\"host/Python/real hardware paths unchanged\"]}\n"
},
{
"command": [
"node",
"web/worker/test_source_g6164_s7_02.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "320a8130b3e2121a1f8da02374cf8ed6d52998e41cbb34ee85f94bd6be132a0b",
"stdout_tail": "{\"schema\":\"linuxcnc-source-g6164-s7-02-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/g6164/test.ngc\",\"source_hash\":\"fnv1a64:a53b92e907dba4f9\"},\"controls\":[{\"line\":1,\"mode\":\"continuous\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":2,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":0},{\"line\":3,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":2},{\"line\":4,\"mode\":\"exact_path\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":5,\"mode\":\"exact_stop\",\"path_tolerance\":0,\"naive_cam_tolerance\":0}],\"final_motion_control_hash\":\"fnv1a64:e0364fe4a01823da\",\"errors\":{\"negative_tolerance\":\"program_motion_control_range\",\"unsupported_g61\":\"program_motion_control_syntax\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:6374004ebf3ac75b\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"TP blend/exact-stop numeric parity remains follow-up\",\"Safari/Firefox are out of scope\"]}\n"
},
{
"command": [
"node",
"web/worker/test_python_api_s3.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "7146142940719f923d7c8a3fbc5719d93086adc8cc50d937e5ba11710bf75eac",
"stdout_tail": "{\"schema\":\"python-api-s3-sample.v1\",\"status\":\"verified\",\"manifest_version\":\"0.29.4\",\"bridge_hash\":\"fnv1a64:0b74fea2bb927042\",\"restored_hash\":\"fnv1a64:0b74fea2bb927042\",\"session_tick\":0,\"checkpoint_hash\":\"fnv1a64:c441d82e62acc5a3\"}\n"
},
{
"command": [
"node",
"web/worker/test_python_callbacks_s3.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a10351a0a28a6fa409bc17c009b6dd4c013334ba4f12d323aa08a1969d87c7f2",
"stdout_tail": "{\"schema\":\"python-callbacks-s3-sample.v1\",\"status\":\"verified\",\"calls\":3,\"errors\":8,\"callback_hash\":\"fnv1a64:67e7a5316f57b53d\",\"worker_hash\":\"fnv1a64:88c1a0e2e868fbc4\",\"checkpoint_hash\":\"fnv1a64:7c556a9f10303d3b\"}\n"
},
{
"command": [
"node",
"web/worker/test_python_bridge.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "fc8f0fe87b0f5108877980686b1ea3abbfe415a27d60d126ed0a2f52d4aa3209",
"stdout_tail": "python_bridge=passed calls=7 errors=4 hash=fnv1a64:21646389b3adc61b\n"
},
{
"command": [
"node",
"web/worker/test_device_io.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "598ff9e07a3fe026fa74bd8235eed6ba85647529df00ecad7a766d28293f0fa2",
"stdout_tail": "{\"schema\":\"device-io-worker-sample.v1\",\"status\":\"verified\",\"tick\":12,\"count\":40,\"state_hash\":\"fnv1a64:d303b40b131396ff\",\"worker_tick\":2,\"worker_state_hash\":\"fnv1a64:128eb22bfba5d6f9\",\"checkpoint_hash\":\"fnv1a64:7e2d1d371e931b90\"}\n"
},
{
"command": [
"node",
"web/worker/test_io_ack.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "bfbcda8b9c187024c056226ae2e0e951cd3085494ccb9ef9a2c5a1d7dcfaacd1",
"stdout_tail": "io_ack=passed timeout=timed_out worker=io_ack_late hash=fnv1a64:d017728dd8296b29\n"
},
{
"command": [
"node",
"web/worker/test_virtual_devices.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a5a07a0d0e2b847212c0028807022fa4c6e28ba0d1d56c74d53653e821eb4059",
"stdout_tail": "code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"SPINDLE_COMMAND\",\"code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"ESTOP\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c103c846827f7ff5\"},{\"kind\":\"IO_RECOVER\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c94eac708756480a\"}],\"events\":25,\"state_hash\":\"fnv1a64:c94eac708756480a\",\"replay_state_hash\":\"fnv1a64:c94eac708756480a\",\"state_hash_equal\":true,\"final\":{\"ready\":true,\"estop\":false,\"fault\":false,\"fault_reason\":0,\"tick\":40,\"recovery_epoch\":1,\"spindle_count\":1,\"tool_capacity\":1001,\"spindles\":[{\"command_rpm\":0,\"speed_rpm\":0,\"at_speed\":true,\"enabled\":false,\"inhibit\":false,\"amp_fault\":false,\"brake\":true,\"orient\":false,\"locked\":false,\"is_oriented\":false,\"orient_angle\":0,\"orient_mode\":0,\"orient_fault\":0,\"index_enable\":false,\"revs\":40}],\"tool\":{\"state\":\"idle\",\"current\":7,\"prepared\":7,\"pocket\":3,\"prepare\":false,\"prepared_ack\":false,\"changed\":false,\"fault\":false,\"reason\":0},\"probe\":{\"state\":\"tripped\",\"type\":0,\"input\":true,\"tripped\":true,\"tick\":40,\"position\":{\"x\":1,\"y\":2,\"z\":3}},\"limits\":{\"x-positive\":true},\"last_error\":\"sim_io_ok\"}}\n"
},
{
"command": [
"node",
"web/worker/test_plc_runtime.mjs"
],
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "c6c6ee4249124b09e18b57630c7ea3ad53269c02a2a52edd0dc0f8e5c97ce440",
"stdout_tail": "plc_runtime=passed count=2 dropped=0 worker_tick=1\n"
}
],
"implementation_status": "verified",
"report_sha256": "ca1af4d50d33158133fad003f9a1759aff3e9e27defd07a9a3f974fbc8e88841",
"schema": "runtime-extensions-s8-09-report.v1",
"status": "verified",
"task_id": "S8-09"
}

View File

@@ -2,7 +2,7 @@
"schema": "runtime-mapping-report.v1",
"status": "passed",
"mapped_error_codes": 18,
"commands": 10,
"commands": 27,
"limits": 6,
"real_exclusions": 3
}

View File

@@ -0,0 +1,149 @@
{
"boundaries": [
"XZ identity/BOTH/AUTO only",
"runtime fixtures are copied from real LinuxCNC execution or the same case's xz.tbl",
"other cases with unresolved resources remain blocked",
"no ABI/protocol/schema change"
],
"checks": {
"fixture_hashes": {
"status": "verified"
},
"hal_preflight": {
"status": "verified"
},
"task_ready": {
"status": "verified"
},
"three_case_batch": {
"cases": 3,
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"execution": {
"command": [
"node",
"web/worker/test_sim_case_batch_s8_03.mjs"
],
"returncode": 0,
"sample": {
"boundary": "XZ identity/BOTH/AUTO cases share exact xz.var and xz.tbl inputs; unrelated cases remain outside this batch",
"cases": [
{
"generated_hal": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_cmds.hal",
"loader_hash": "fnv1a64:ac6bb635f7de1e65",
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini",
"startup_hash": "fnv1a64:56f596c8fa411397",
"state": "TASK_READY"
},
{
"generated_hal": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_cmds.hal",
"loader_hash": "fnv1a64:21e84877bb4577bf",
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini",
"startup_hash": "fnv1a64:75503e90f7838c58",
"state": "TASK_READY"
},
{
"generated_hal": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto_cmds.hal",
"loader_hash": "fnv1a64:6998a2e084e48833",
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini",
"startup_hash": "fnv1a64:1360a74237b2e63d",
"state": "TASK_READY"
}
],
"fixture_policy": "user-authorized-runtime-copy",
"schema": "sim-case-batch-s8-03-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "f4380e2b396993afdf53abc2d45259cdd3c1c7ebf817a97c8e7e609816bc02f2"
},
"fixture_policy": "user-authorized-runtime-copy",
"implementation_status": "verified",
"inputs": [
{
"bytes": 2903,
"path": "coverage/sim-case-catalog.report.json",
"sha256": "dba314a5e669358020d5032ca5215fb6b83309d1be94e35eb0bb32ed821bdf79",
"status": "present"
},
{
"bytes": 263,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini",
"sha256": "07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81",
"status": "present"
},
{
"bytes": 213,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini",
"sha256": "d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae",
"status": "present"
},
{
"bytes": 225,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini",
"sha256": "d94eae8d51a00027f75ff45b84f14e2721de466c4be1af3a5e15d7beeec58ac3",
"status": "present"
},
{
"bytes": 2172,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xzbase.inc",
"sha256": "fad0387bf37907ad3f541b0dca1893c0c0ee3d7154571624abb5e5763ec8dc07",
"status": "present"
},
{
"bytes": 1666,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.var",
"sha256": "163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae",
"status": "present"
},
{
"bytes": 69,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.tbl",
"sha256": "06fd24c26897d06c7c5b65cc81911a1854118900f791c692600ceeaa61d2026e",
"status": "present"
},
{
"bytes": 5681,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_cmds.hal",
"sha256": "e6adda4b0ae1fc21323709867048f41edc4436af98a1f03cb4e891c4e8815a65",
"status": "present"
},
{
"bytes": 5725,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_cmds.hal",
"sha256": "db7e762e3879146ecc83e58ca07e2d4147897d0f56a65033aa928de73cdfbc77",
"status": "present"
},
{
"bytes": 5755,
"path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto_cmds.hal",
"sha256": "02bd8543315da590c215dff8ee4fcb237afaa851a1014757ae97aa3ceca0ca21",
"status": "present"
},
{
"bytes": 8490,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "5b17353cf2446c98d0eb04e6dafb8a3876f74b8f527e6721a577db1e71deaadc",
"status": "present"
},
{
"bytes": 3395,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "94d80fd9a4e51492217ddce2b93157739df39cb7670437e8b5a6db5e58f874ae",
"status": "present"
},
{
"bytes": 2571,
"path": "web/worker/test_sim_case_batch_s8_03.mjs",
"sha256": "d4ac5d0e9830af424e190abad345679bc43f0b28f5f5c363cf3c99a23e7ecbd2",
"status": "present"
}
],
"report_sha256": "a4364e319198698dfd41cb375b6d3e5d9b869256b13508b2b29a8fa77dd4b8d5",
"schema": "sim-case-batch-s8-03-report.v1",
"status": "verified",
"task_id": "S8-03"
}

View File

@@ -0,0 +1,89 @@
{
"boundaries": [
"resource loading uses exact manifest paths and retains missing diagnostics",
"static READY is not promoted to runtime READY without Worker startup verification",
"host devices, unsupported dynamic loaders, and missing LinuxCNC source resources remain blocked"
],
"catalog": {
"catalog_sha256": "fc01e55d6f5af4f3e4e117abba89c572b45964da961bc0c9924a1de40fa9df19",
"module": "web/workspace/sim-case-catalog.mjs"
},
"counts": {
"cases": 235,
"files": 2090,
"indexed_blocked": 226,
"indexed_static_ready": 9
},
"implementation_status": "verified",
"inputs": [
{
"path": "coverage/full-configuration-startup-matrix.report.json",
"sha256": "eefde49a278a077e374b751d0d0ed59b1294ce399a757a665e3cc14f569f7656"
},
{
"path": "coverage/hal-component-manifest.report.json",
"sha256": "eec91d371461058b40d895877dd7d6ddb0f205334d00417d9ada1c086bb1d9ef"
}
],
"outputs": [
{
"bytes": 230051,
"path": "web/workspace/sim-case-catalog.mjs",
"sha256": "73ba963f5e5b501449e67e435392f253c30afce8af6d08e42ba733ddbc23c963",
"status": "present"
},
{
"bytes": 8866,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "bf4a5222d2f8d0795e5f90c2ca66a8a197e81a7342130bdfbd940e6e604e4d3c",
"status": "present"
},
{
"bytes": 3395,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "94d80fd9a4e51492217ddce2b93157739df39cb7670437e8b5a6db5e58f874ae",
"status": "present"
},
{
"bytes": 1851,
"path": "web/workspace/test_sim_case_loader.mjs",
"sha256": "b617cc93e7e5fec2f29d5c4efeff33fa8f4e4c2249184953d6997635da55b480",
"status": "present"
},
{
"bytes": 16269,
"path": "web/app/app.mjs",
"sha256": "78b1ed7e0261a187672126ed2c5bfd2461b02c37c6e0fb568fa69b80d73be4b6",
"status": "present"
},
{
"bytes": 4796,
"path": "web/app/styles.css",
"sha256": "ec77d0fe14b9863d7b64b2d1ec9c75691f9de38cf61fe6a6b8a03b8a0ec6fc00",
"status": "present"
},
{
"bytes": 2167,
"path": "web/app/test_frontend_m1.mjs",
"sha256": "f1160fa3da783dc3626c3e932c3c6bc05fbff31da89e03616b7c7b74c5806041",
"status": "present"
},
{
"bytes": 1863,
"path": "scripts/test_sim_case_catalog.py",
"sha256": "a6cdd9d3229b3425c9469d41e15e1a6c721c2e60a3472dd40c40990bc5b2b7b4",
"status": "present"
}
],
"report_sha256": "2d3fb17baad340f234eba8688b5646ffdf76bd25f6995453db5afaf05e680d31",
"schema": "linuxcnc-sim-case-catalog-report.v1",
"scope": "configs/sim case catalog and exact-path browser loader input",
"status": "verified",
"task_id": "S8-01",
"verification": {
"app_tests": "13/13",
"case_loader": "passed",
"native_ctest": "20/20",
"worker_tests": "50/50"
}
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More