{ "baseline": [ { "command": [ "python3", "scripts/test_axis3_tutorial_preview.py" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "preview", "output_sha256": "99849d55e84d7006ae3b4b7fd4779ef7fb5d160bb52a489ed71f83708fb65052", "output_tail": "{\"status\": \"verified\", \"program\": \"/home/mes006/linuxcncWebWASM/linuxcnc/nc_files/3dtest.ngc\", \"preview\": {\"schema\": \"wasm-preview.v1\", \"status\": \"verified\", \"source_path\": \"linuxcnc/nc_files/3dtest.ngc\", \"source_lines\": 55, \"segment_count\": 49, \"arc_lines\": [6, 23, 39], \"source\": \"wasm_interpreter_canonical_motion\"}}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_axis3_selected_case.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "selected_case_worker", "output_sha256": "2fac97a3555e431b1e836727ac5315c684e73aae9dea9d40472dd13f098b1963", "output_tail": "{\"schema\":\"axis3-selected-case-parity.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"machine\":{\"type\":\"cartesian_vismach\",\"axes\":[\"X\",\"Y\",\"Z\"],\"joints\":3,\"kinematics\":\"trivkins\",\"model\":\"3axis-tutorial\"},\"exact_files\":[\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\",\"linuxcnc/configs/nc_files/3dtest.ngc\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl\",\"linuxcnc/linuxcnc.gif\"],\"loader\":{\"fetched\":7,\"missing\":0,\"state_hash\":\"fnv1a64:94e21a5c7a684e63\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0},\"operation_sequence\":[\"HOME\",\"JOG_START\",\"SIM_STEP\",\"JOG_STOP\",\"SET_OVERRIDE\",\"PROGRAM_LOAD\",\"PROGRAM_RUN\",\"CHECKPOINT\",\"SPINDLE_COMMAND\",\"COOLANT_COMMAND\",\"TOOL_PREPARE\",\"TOOL_CHANGE\",\"ESTOP\",\"IO_RECOVER\",\"RECOVER\"],\"observed\":{\"jog_x\":0.016,\"program_status\":\"completed\",\"checkpoint_hash\":\"fnv1a64:048eca9e5dd4e2df\",\"recovery\":\"recovered\",\"final_hash\":\"fnv1a64:4509e2eaf38657d7\"}}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_axis3_visible_completion.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "visible_completion_worker", "output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e", "output_tail": "{\"schema\":\"axis3-visible-completion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"final_pose\":{\"x\":0,\"y\":0,\"z\":0},\"task_state\":\"STOPPED\",\"program_status\":\"completed\"}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_wasm_motion_event.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "wasm_motion_event", "output_sha256": "d2dbbe772565019da46acde28215f48c5ed3c58f5695d23f91ea2c7ee98d7106", "output_tail": "{\"schema\":\"wasm-motion-event.v1\",\"status\":\"verified\",\"events\":3,\"last_motion\":{\"source_line\":4,\"start\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":11,\"y\":6,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":120,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"}}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_wasm_motion_authority.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "wasm_motion_authority", "output_sha256": "34f090eef3d78d77d192658fbc279f0bdd72fa038eef44cfdc0138d6068d3d8c", "output_tail": "{\"schema\":\"wasm-motion-authority-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"motion_authority\":\"wasm\",\"paused_position\":{\"x\":1.073312629199899,\"y\":0.5366563145999494,\"z\":0},\"resumed_position\":{\"x\":2.146625258399798,\"y\":1.073312629199899,\"z\":0},\"abort_queue_depth\":0,\"js_authority_calls\":0}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_wasm_motion_checkpoint.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "wasm_motion_checkpoint", "output_sha256": "585c73a4f82d9b3e50de6a72279c0b01d21109d482f2f2f708ce8f5062127a0e", "output_tail": "{\"schema\":\"wasm-motion-checkpoint-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:47ff90f3ab07c4c6\",\"continuous_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"recovered_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"checkpoint_queue_depth\":1,\"blocked_damaged_checkpoint\":\"blocked\"}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_wasm_canonical_state.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "wasm_canonical_state", "output_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba", "output_tail": "{\"schema\":\"wasm-canonical-state-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"task_authority\":\"wasm_task_canonical\",\"home_authority\":\"wasm_home_limit\",\"home_sequence\":5,\"home_tick\":1,\"motion_tick\":3,\"home_limit_tick\":6,\"js_task_tamper_ignored\":true}\n", "returncode": 0, "status": "verified" }, { "command": [ "node", "web/worker/test_wasm_canonical_state_checkpoint.mjs" ], "cwd": "/home/mes006/linuxcncWebWASM", "name": "wasm_canonical_state_checkpoint", "output_sha256": "401cfde5f23e77d8d938689c3a3ac6fe7777bafb118d3075ff353e99993ccdf7", "output_tail": "{\"schema\":\"wasm-canonical-state-checkpoint-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:9d9ea2a624703b46\",\"continuous_hash\":\"fnv1a64:2d696fc22acbbd38\",\"recovered_hash\":\"fnv1a64:2d696fc22acbbd38\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"damaged_home_state\":\"blocked\"}\n", "returncode": 0, "status": "verified" }, { "command": [ "npm", "run", "typecheck" ], "cwd": "/home/mes006/linuxcncWebWASM/web/react", "name": "react_typecheck", "output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3", "output_tail": "\n> linuxcnc-web-wasm-react@0.1.0 typecheck\n> tsc --noEmit\n\n", "returncode": 0, "status": "verified" } ], "completed_slices": [ "T1_INTERPRETER_MOTION_EVENT", "T2_SELECTED_CASE_WASM_PREVIEW", "T3_WASM_MOTION_QUEUE_SNAPSHOT", "T3_SELECTED_MOTION_AUTHORITY", "T3_WASM_MOTION_CHECKPOINT", "T4_SELECTED_TASK_CANONICAL", "T4_SELECTED_HOME_LIMIT_CANONICAL" ], "js_authority_remaining": [ { "path": "web/worker/authoritative-runtime.mjs", "reason": "compatibility planner and pose mirror for non-selected cases", "sha256": "c2bdd03de958ffda38553ec6dbddb4b1f5c08b2cb636ba02f25f2b76bdd61604", "status": "compatibility_open" }, { "path": "web/worker/program-runner.mjs", "reason": "program scheduling and control flow mirror; canonical segments enter WASM queue", "sha256": "30f053429f8396b8f845e5faabe9912cb34aedb9440fcd35d7f507ba7e8975a2", "status": "open" }, { "path": "web/worker/motion-state.mjs", "reason": "home/jog/limit projection pending T4 canonical state", "sha256": "f22d4bb1a3993f29e923b9f59987ae6599ddfe0dcdbe7fcc171e899480fae851", "status": "open" }, { "path": "web/worker/sim-task.mjs", "reason": "task state mirror pending T4 canonical state", "sha256": "4b4b3aa4b86aba08e5afb8534d98d6ab11c845eeb891cf4793b5906a01de1599", "status": "open" } ], "open_tasks": [ "T1_FULL_CANONICAL_CALLBACKS", "T2_FULL_WASM_PREVIEW", "T3_NON_SELECTED_MOTION_AUTHORITY", "T4_HAL_IO_TOOL_PROBE_CANONICAL_STATE", "T5_FULL_MATRIX" ], "report_sha256": "77d15a3d51d9f14449c9cf31ef18249574b19ad7584f6c2b4f77c5c055d3daae", "schema": "wasm-only-source-audit.v1", "selected_case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", "selected_case_checkpoint_restore": "verified", "selected_case_home_limit_authority": "wasm_home_limit", "selected_case_motion_authority": "verified", "selected_case_motion_source": "wasm_motion_queue", "selected_case_task_authority": "wasm_task_canonical", "source_of_truth_target": "linuxcnc_source_to_wasm_core_only", "status": "blocked", "stop_reason": "selected-case task/motion/home-limit canonical state and queue recovery are verified; HAL/IO/tool/probe, compatibility, non-selected motion authority, and full parity remain open", "wasm_exports": { "count": 207, "domains": { "hal_io": [ "sim_device_ack_abort", "sim_device_ack_ack", "sim_device_ack_issue", "sim_device_ack_step", "sim_device_canonical", "sim_device_coolant_command", "sim_device_coolant_set_fault", "sim_device_door_set", "sim_device_encoder_set_config", "sim_device_encoder_set_index_enable", "sim_device_encoder_set_speed", "sim_device_estop_set", "sim_device_init", "sim_device_interlock_reset", "sim_device_interlock_set", "sim_device_reset", "sim_device_state_hash", "sim_device_step", "sim_hal_component_count", "sim_hal_connect", "sim_hal_function_calls", "sim_hal_function_count", "sim_hal_get_param", "sim_hal_get_pin", "sim_hal_param_count", "sim_hal_pin_count", "sim_hal_register_component", "sim_hal_register_function", "sim_hal_register_pin", "sim_hal_register_thread", "sim_hal_reset", "sim_hal_set_function_failure", "sim_hal_set_param", "sim_hal_set_pin", "sim_hal_step", "sim_hal_thread_count", "sim_hal_tick", "sim_io_canonical", "sim_io_init", "sim_io_probe_arm", "sim_io_probe_disarm", "sim_io_probe_update", "sim_io_read_state", "sim_io_recover", "sim_io_register_pins", "sim_io_reset", "sim_io_set_estop", "sim_io_spindle_command", "sim_io_spindle_orient", "sim_io_spindle_set_fault", "sim_io_spindle_set_feedback", "sim_io_spindle_set_index_enable", "sim_io_spindle_set_inhibit", "sim_io_spindle_set_oriented", "sim_io_state_hash", "sim_io_step", "sim_io_tool_abort", "sim_io_tool_change", "sim_io_tool_clear_fault", "sim_io_tool_prepare", "sim_io_tool_set_changed", "sim_io_tool_set_fault", "sim_io_tool_set_prepared" ], "interpreter": [ "sim_interpreter_block_hash", "sim_interpreter_canonical", "sim_interpreter_error_code", "sim_interpreter_error_column", "sim_interpreter_execute", "sim_interpreter_init", "sim_interpreter_modal_hash", "sim_interpreter_motion_size", "sim_interpreter_parameter_get", "sim_interpreter_parameter_set", "sim_interpreter_read_motion", "sim_interpreter_read_state", "sim_interpreter_reset", "sim_interpreter_size", "sim_interpreter_state_hash" ], "motion": [ "sim_interpreter_motion_size", "sim_interpreter_read_motion", "sim_kinematics_motion_depth", "sim_kinematics_motion_enqueue", "sim_kinematics_motion_init", "sim_kinematics_motion_pause", "sim_kinematics_motion_peek", "sim_kinematics_motion_pop", "sim_kinematics_motion_reset", "sim_kinematics_motion_state_hash", "sim_kinematics_motion_step", "sim_motion_canonical", "sim_motion_command_size", "sim_motion_enqueue", "sim_motion_init", "sim_motion_peek", "sim_motion_plan_hash", "sim_motion_queue_depth", "sim_motion_read_state", "sim_motion_reset", "sim_motion_set_lookahead", "sim_motion_set_profile", "sim_motion_size", "sim_motion_state_hash", "sim_motion_state_size", "sim_motion_step", "sim_tp_enqueue", "sim_tp_init", "sim_tp_read_state", "sim_tp_reset", "sim_tp_state_hash", "sim_tp_step" ], "task_scheduler": [ "sim_scheduler_canonical", "sim_scheduler_init", "sim_scheduler_read", "sim_scheduler_reset", "sim_scheduler_restore", "sim_scheduler_size", "sim_scheduler_state_hash", "sim_scheduler_step", "sim_scheduler_tick", "sim_task_attach", "sim_task_canonical", "sim_task_estop", "sim_task_fault", "sim_task_init", "sim_task_read_state", "sim_task_recover", "sim_task_reset", "sim_task_restore", "sim_task_set_command", "sim_task_set_mode", "sim_task_set_program", "sim_task_set_tick", "sim_task_size", "sim_task_state_hash", "sim_task_transition" ] }, "manifest": "/home/mes006/linuxcncWebWASM/build-wasm/build.ninja", "manifest_sha256": "ab5d54956c30989bad2b1eeed28092454b77f1e3c7474dcfe495bde8fd65a5de", "names": [ "sim_command", "sim_create", "sim_destroy", "sim_device_ack_abort", "sim_device_ack_ack", "sim_device_ack_issue", "sim_device_ack_step", "sim_device_canonical", "sim_device_coolant_command", "sim_device_coolant_set_fault", "sim_device_door_set", "sim_device_encoder_set_config", "sim_device_encoder_set_index_enable", "sim_device_encoder_set_speed", "sim_device_estop_set", "sim_device_init", "sim_device_interlock_reset", "sim_device_interlock_set", "sim_device_reset", "sim_device_state_hash", "sim_device_step", "sim_event_append", "sim_event_count", "sim_event_cursor", "sim_event_export", "sim_event_import", "sim_event_read", "sim_event_reset", "sim_export_state", "sim_hal_component_count", "sim_hal_connect", "sim_hal_function_calls", "sim_hal_function_count", "sim_hal_get_param", "sim_hal_get_pin", "sim_hal_param_count", "sim_hal_pin_count", "sim_hal_register_component", "sim_hal_register_function", "sim_hal_register_pin", "sim_hal_register_thread", "sim_hal_reset", "sim_hal_set_function_failure", "sim_hal_set_param", "sim_hal_set_pin", "sim_hal_step", "sim_hal_thread_count", "sim_hal_tick", "sim_import_state", "sim_interpreter_block_hash", "sim_interpreter_canonical", "sim_interpreter_error_code", "sim_interpreter_error_column", "sim_interpreter_execute", "sim_interpreter_init", "sim_interpreter_modal_hash", "sim_interpreter_motion_size", "sim_interpreter_parameter_get", "sim_interpreter_parameter_set", "sim_interpreter_read_motion", "sim_interpreter_read_state", "sim_interpreter_reset", "sim_interpreter_size", "sim_interpreter_state_hash", "sim_io_canonical", "sim_io_init", "sim_io_probe_arm", "sim_io_probe_disarm", "sim_io_probe_update", "sim_io_read_state", "sim_io_recover", "sim_io_register_pins", "sim_io_reset", "sim_io_set_estop", "sim_io_spindle_command", "sim_io_spindle_orient", "sim_io_spindle_set_fault", "sim_io_spindle_set_feedback", "sim_io_spindle_set_index_enable", "sim_io_spindle_set_inhibit", "sim_io_spindle_set_oriented", "sim_io_state_hash", "sim_io_step", "sim_io_tool_abort", "sim_io_tool_change", "sim_io_tool_clear_fault", "sim_io_tool_prepare", "sim_io_tool_set_changed", "sim_io_tool_set_fault", "sim_io_tool_set_prepared", "sim_kinematics_feedback_init", "sim_kinematics_feedback_read", "sim_kinematics_feedback_reset", "sim_kinematics_feedback_state_hash", "sim_kinematics_feedback_update", "sim_kinematics_forward", "sim_kinematics_forward_ex", "sim_kinematics_home", "sim_kinematics_home_limit_check", "sim_kinematics_home_limit_home", "sim_kinematics_home_limit_init", "sim_kinematics_home_limit_read", "sim_kinematics_home_limit_reset", "sim_kinematics_home_limit_state_hash", "sim_kinematics_init", "sim_kinematics_inverse", "sim_kinematics_inverse_ex", "sim_kinematics_motion_depth", "sim_kinematics_motion_enqueue", "sim_kinematics_motion_init", "sim_kinematics_motion_pause", "sim_kinematics_motion_peek", "sim_kinematics_motion_pop", "sim_kinematics_motion_reset", "sim_kinematics_motion_state_hash", "sim_kinematics_motion_step", "sim_kinematics_registry_count", "sim_kinematics_registry_find", "sim_kinematics_registry_get", "sim_kinematics_registry_require", "sim_kinematics_registry_state_hash", "sim_kinematics_registry_validate_config", "sim_kinematics_state_hash", "sim_kinematics_switch_abort", "sim_kinematics_switch_active", "sim_kinematics_switch_begin", "sim_kinematics_switch_commit", "sim_kinematics_switch_forward", "sim_kinematics_switch_init", "sim_kinematics_switch_inverse", "sim_kinematics_switch_register", "sim_kinematics_switch_select", "sim_kinematics_switch_state_hash", "sim_kinematics_user_bind_switch", "sim_kinematics_user_forward", "sim_kinematics_user_init", "sim_kinematics_user_inverse", "sim_kinematics_user_reject_dynamic", "sim_kinematics_user_state_hash", "sim_kinematics_validate_pose", "sim_load_workspace", "sim_motion_canonical", "sim_motion_command_size", "sim_motion_enqueue", "sim_motion_init", "sim_motion_peek", "sim_motion_plan_hash", "sim_motion_queue_depth", "sim_motion_read_state", "sim_motion_reset", "sim_motion_set_lookahead", "sim_motion_set_profile", "sim_motion_size", "sim_motion_state_hash", "sim_motion_state_size", "sim_motion_step", "sim_posemath_dot", "sim_posemath_hash_state", "sim_posemath_is_finite", "sim_posemath_line_point", "sim_posemath_normalize", "sim_posemath_pose_is_finite", "sim_posemath_pose_line_point", "sim_posemath_segment_point", "sim_posemath_segment_validate", "sim_protocol_accept", "sim_protocol_last_seq", "sim_protocol_pause", "sim_protocol_reset", "sim_protocol_resume", "sim_protocol_set_tick", "sim_protocol_state_value", "sim_protocol_tick", "sim_read_event", "sim_read_snapshot", "sim_scheduler_canonical", "sim_scheduler_init", "sim_scheduler_read", "sim_scheduler_reset", "sim_scheduler_restore", "sim_scheduler_size", "sim_scheduler_state_hash", "sim_scheduler_step", "sim_scheduler_tick", "sim_step", "sim_task_attach", "sim_task_canonical", "sim_task_estop", "sim_task_fault", "sim_task_init", "sim_task_read_state", "sim_task_recover", "sim_task_reset", "sim_task_restore", "sim_task_set_command", "sim_task_set_mode", "sim_task_set_program", "sim_task_set_tick", "sim_task_size", "sim_task_state_hash", "sim_task_transition", "sim_tp_enqueue", "sim_tp_init", "sim_tp_read_state", "sim_tp_reset", "sim_tp_state_hash", "sim_tp_step" ] } }