Robonix Webots CI Report

ALL REPORTS >>

Generated on 2026-07-03T20:05:23+08:00

ResultPASS
Scenarios14/14 passed
Failures0
Score100/100

LLM-Assisted Analysis

LLM analysis disabled

LLM analysis was not requested for this report.

LLM analysis was not available; deterministic logs remain embedded below.

Run Metadata

Generated On2026-07-03T20:05:23+08:00
Test Report Generated On2026-07-03T20:05:01+08:00
Run Id28658659882
WorkflowWebots Integration Tests
Eventpush
Repositorysyswonder/robonix
Tested Commita04150331358
Tested Commit Subjectci(webots): use stable Pages deploy actions
Tested Commit Authorwheatfox <wheatfox17@icloud.com>
Tested Commit Date2026-07-03T19:50:09+08:00
Triggered Byenkerewpo
Actorenkerewpo
Triggering Actorenkerewpo
Runner Namerobonix-runner-pku-rtx5090-x64
Runner OsLinux
Runner ArchX64
Origin Urlhttps://github.com/syswonder/robonix
Run Attempt1
Refrefs/heads/dev
Shaa04150331358
Report Id28658659882
Test Refrefs/heads/dev

Test Environment

Hostnameuser-NF5468M6
Os Pretty NameUbuntu 22.04.5 LTS
KernelLinux 6.8.0-124-generic x86_64 GNU/Linux
Archx86_64
Cpu ModelIntel(R) Xeon(R) Platinum 8368Q CPU @ 2.60GHz
Cpu Cores152
Mem Total125Gi
Gpu Summary0, NVIDIA GeForce RTX 5090, 32607 MiB, 580.65.06;1, NVIDIA GeForce RTX 5090, 32607 MiB, 580.65.06;2, NVIDIA GeForce RTX 5090, 32607 MiB, 580.65.06;3, NVIDIA GeForce RTX 5090, 32607 MiB, 580.65.06
Nvidia Driver580.65.06
Cuda Version13.0
Docker Version29.2.1
Docker Compose Version5.0.2
Webots Versionwebots package 2025a
Ros Distrohumble
Ros Domain Id172
Sim Containerci-28658659882-sim
Sim Imageci-28658659882-sim
Webots Stream Port23882
Webots Viewer Port24882
Python VersionPython 3.10.12
Rustc Versionrustc 1.95.0 (59807616e 2026-04-14)
Rbnx Versionrbnx 0.1.0

Scenarios

StatusSuiteScenarioRoundsDispatched contractsFailuresLog
PASSbuiltinfault_recovery_builtin3
robonix/system/executor/builtin/read_file
robonix/system/executor/builtin/write_file
-
PASSbuiltinfile_roundtrip1
robonix/system/executor/builtin/list_dir
robonix/system/executor/builtin/read_file
robonix/system/executor/builtin/write_file
-
PASSbuiltinrun_command1
robonix/system/executor/builtin/run_command
-
PASScapcamera_snapshot1
robonix/primitive/camera/snapshot
-
PASScapexplore_smoke2
robonix/skill/explore/explore
robonix/skill/explore/explore/cancel
robonix/skill/explore/explore/status
-
PASScaplidar_snapshot1
robonix/primitive/lidar/snapshot
-
PASScapmapping_save1
robonix/service/map/save_map
-
PASScapmemory_roundtrip1
robonix/service/memory/save
robonix/service/memory/search
-
PASScapscene_object_fixture1
robonix/system/scene/list_objects
-
PASScapspeech_speak1
robonix/service/speech/speak
-
PASScapvoiceprint_list1
robonix/service/voiceprint/list
-
PASSflowfault_recovery4
robonix/service/memory/save
-
PASSflowobject_navigation4
robonix/service/navigation/navigate
robonix/skill/explore/explore
robonix/system/scene/goal_near
robonix/system/scene/list_objects
-
PASSflowpatrol_observe3
robonix/primitive/camera/snapshot
robonix/primitive/lidar/snapshot
robonix/service/memory/save
robonix/service/memory/search
-

RTDL Plan Trees

Each scenario step is one VLM planning round. The tree below is the RTDL returned for that round; every do leaf has its own expected runtime contract and output checks.

PASSbuiltin/fault_recovery_builtin3 step(s), 3 leaf call(s)
step 0faulty read1 leaf
sequence faulty_read_step
do executor.builtin_read_file missing_read args {"path": "ci_never_created.txt"} expect robonix/system/executor/builtin/read_file failure
Observed plan round 0
FAIL1:0robonix/system/executor/builtin/read_fileargs {"path": "ci_never_created.txt"}No such file or directory (os error 2)
step 1recover by writing fallback1 leaf
sequence write_recovery_step
do executor.builtin_write_file write_recovery args {"content": "recovered charlie-3","path": "ci_recovered.txt"} expect robonix/system/executor/builtin/write_file success
Observed plan round 1
PASS2:0robonix/system/executor/builtin/write_fileargs {"content": "recovered charlie-3","path": "ci_recovered.txt"}wrote 19 bytes to /home/hanyulong/actions-runner/_work/robonix/robonix/examples/webots/ci_recovered.txt
step 2read fallback1 leaf
sequence read_recovery_step
do executor.builtin_read_file read_recovery args {"path": "ci_recovered.txt"} expect robonix/system/executor/builtin/read_file success
Observed plan round 2
PASS3:0robonix/system/executor/builtin/read_fileargs {"path": "ci_recovered.txt"}recovered charlie-3
PASSbuiltin/file_roundtrip1 step(s), 3 leaf call(s)
step 0write, read, and list probe file3 leafs
sequence file_roundtrip_tree
do executor.builtin_write_file write_probe args {"content": "robonix ci probe alpha-7","path": "ci_probe.txt"} expect robonix/system/executor/builtin/write_file success
do executor.builtin_read_file read_probe args {"path": "ci_probe.txt"} expect robonix/system/executor/builtin/read_file success
do executor.builtin_list_dir list_probe args {"path": "."} expect robonix/system/executor/builtin/list_dir success
Observed plan round 0
PASS1:0robonix/system/executor/builtin/write_fileargs {"content": "robonix ci probe alpha-7","path": "ci_probe.txt"}wrote 24 bytes to /home/hanyulong/actions-runner/_work/robonix/robonix/examples/webots/ci_probe.txt
PASS1:1robonix/system/executor/builtin/read_fileargs {"path": "ci_probe.txt"}robonix ci probe alpha-7
PASS1:2robonix/system/executor/builtin/list_dirargs {"path": "."}dir logs dir primitives dir rbnx-boot dir services dir sim file .gitignore file README.md file ci_probe.txt file ci_recovered.txt file robonix_manifest.ci.generated.yaml file robonix_manifest.yaml file start_rviz.sh
PASSbuiltin/run_command1 step(s), 1 leaf call(s)
step 0echo marker1 leaf
sequence echo_marker_step
do executor.builtin_run_command echo_marker args {"command": "echo robonix-ci-marker-bravo"} expect robonix/system/executor/builtin/run_command success
Observed plan round 0
PASS1:0robonix/system/executor/builtin/run_commandargs {"command": "echo robonix-ci-marker-bravo"}robonix-ci-marker-bravo
PASScap/camera_snapshot1 step(s), 1 leaf call(s)
step 0camera snapshot1 leaf
sequence camera_snapshot_step
do tiago_camera.camera_snapshot camera_snapshot args {} expect robonix/primitive/camera/snapshot success
Observed plan round 0
PASS1:0robonix/primitive/camera/snapshotargs {}{ "header": { "stamp": { "sec": 1783080092, "nanosec": 166778802 }, "frame_id": "head_front_camera_rgb_optical_frame" }, "height": 480, "width": 640, "encoding": "jpeg", "is_bigendian": 0, "step": 4450…
PASScap/explore_smoke2 step(s), 3 leaf call(s)
step 0start explore1 leaf
sequence start_explore_step
do explore.explore_explore start_explore args {"area_hint": "ci local room","max_speed_m_s": 0.1,"timeout_s": 5.0} expect robonix/skill/explore/explore failure
Observed plan round 0
FAIL1:0robonix/skill/explore/exploreargs {"area_hint": "ci local room","max_speed_m_s": 0.1,"timeout_s": 5.0}hit 5.0s ceiling
step 1poll and cancel explore2 leafs
sequence poll_cancel_explore
do explore.explore_status explore_status args {"run_id": ""} expect robonix/skill/explore/explore/status success
do explore.explore_cancel explore_cancel args {"run_id": ""} expect robonix/skill/explore/explore/cancel success
Observed plan round 1
PASS2:0robonix/skill/explore/explore/statusargs {"run_id": ""}{ "known": true, "state": "TIMEOUT", "area_m2": 0.9900000295042994, "frontiers_left": 16, "elapsed_s": 32.165980100631714, "eta_s": -1.0, "detail": "hit 5.0s ceiling" }
PASS2:1robonix/skill/explore/explore/cancelargs {"run_id": ""}{ "ok": true, "message": "task already in terminal state timeout (no-op)" }
PASScap/lidar_snapshot1 step(s), 1 leaf call(s)
step 0lidar snapshot1 leaf
sequence lidar_snapshot_step
do tiago_lidar.lidar_snapshot lidar_snapshot args {} expect robonix/primitive/lidar/snapshot success
Observed plan round 0
PASS1:0robonix/primitive/lidar/snapshotargs {}{ "header": { "stamp": { "sec": 143, "nanosec": 764297992 }, "frame_id": "hokuyo" }, "angle_min": -1.5700000524520874, "angle_max": 1.5700000524520874, "angle_increment": 0.0047647953033447266, "time_inc…
PASScap/mapping_save1 step(s), 1 leaf call(s)
step 0map save1 leaf
sequence map_save_step
do mapping.map_save_map map_save args {"map_id": "ci_test_map","note": "robonix ci"} expect robonix/service/map/save_map success
Observed plan round 0
PASS1:0robonix/service/map/save_mapargs {"map_id": "ci_test_map","note": "robonix ci"}{ "ok": true, "map_id": "ci_test_map", "database_path": "/mapping/maps/ci_test_map/rtabmap.db", "detail": "saved ci_test_map → /mapping/maps/ci_test_map" }
PASScap/memory_roundtrip1 step(s), 2 leaf call(s)
step 0memory save + search2 leafs
sequence memory_save_search
do memory.memory_save save_fact args {"data": "ci-fact: the test beacon is alpha-7"} expect robonix/service/memory/save success
do memory.memory_search search_fact args {"data": "test beacon"} expect robonix/service/memory/search success
Observed plan round 0
PASS1:0robonix/service/memory/saveargs {"data": "ci-fact: the test beacon is alpha-7"}{ "data": "Memory saved and indexed." }
PASS1:1robonix/service/memory/searchargs {"data": "test beacon"}{ "data": "Relevant memories:\n- ci-fact: the test beacon is alpha-7" }
PASScap/scene_object_fixture1 step(s), 1 leaf call(s)
step 0scene list objects1 leaf
sequence scene_objects_step
do scene.scene_list_objects list_scene_objects args {} expect robonix/system/scene/list_objects success
Observed plan round 0
PASS1:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": 0.8158368162792751, "y": 0.055218974341377555, "z": 0.0, "yaw": 0.006386706732537827, "last_seen_unix": 1783080216.6165…
PASScap/speech_speak1 step(s), 1 leaf call(s)
step 0speak1 leaf
sequence speech_speak_step
do speech.speech_speak speech_speak args {"target": "","text": "robonix continuous integration test"} expect robonix/service/speech/speak success
Observed plan round 0
PASS1:0robonix/service/speech/speakargs {"target": "","text": "robonix continuous integration test"}{ "ok": true, "detail": "spoke 35 chars on audio_driver" }
PASScap/voiceprint_list1 step(s), 1 leaf call(s)
step 0voiceprint list1 leaf
sequence voiceprint_list_step
do voiceprint.voiceprint_list voiceprint_list args {} expect robonix/service/voiceprint/list success
Observed plan round 0
PASS1:0robonix/service/voiceprint/listargs {}{ "users_json": "[]", "count": 0, "error": "db not initialised" }
PASSflow/fault_recovery2 step(s), 2 leaf call(s)
step 0faulty save1 leaf
sequence faulty_save_step
do memory.memory_save faulty_save args {} expect robonix/service/memory/save failure
Observed plan round 0
FAIL1:0robonix/service/memory/saveargs {}mcp tool error: Error executing tool save: 1 validation error for saveArguments data Field required [type=missing, input_value={}, input_type=dict] For further information visit https://errors.pydantic.dev/2.13/v/missing
step 1recover1 leaf
sequence recovery_save_step
do memory.memory_save recovery_save args {"data": "ci-flow recovered fact: beacon bravo-2"} expect robonix/service/memory/save success
Observed plan round 1
PASS2:0robonix/service/memory/saveargs {"data": "ci-flow recovered fact: beacon bravo-2"}{ "data": "Memory saved and indexed." }
PASSflow/object_navigation4 step(s), 4 leaf call(s)
step 0explore before object navigation1 leaf
sequence explore_before_navigation
do explore.explore_explore start_explore args {"area_hint": "ci local room","max_speed_m_s": 0.1,"timeout_s": 8.0} expect robonix/skill/explore/explore failure
Observed plan round 0
FAIL1:0robonix/skill/explore/exploreargs {"area_hint": "ci local room","max_speed_m_s": 0.1,"timeout_s": 8.0}hit 8.0s ceiling
step 1list scene objects during explored state1 leaf
sequence select_scene_object
do scene.scene_list_objects list_scene_objects args {} expect robonix/system/scene/list_objects success
Observed plan round 1
PASS2:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": -4.388331586762893, "y": 1.7538192093573932, "z": 0.0, "yaw": 0.012785249219192035, "last_seen_unix": 1783080275.38868 …
step 2resolve detected object approach pose1 leaf
sequence resolve_approach_pose
do scene.scene_goal_near goal_near_object args {"object_id": {"var": "object_id"}} expect robonix/system/scene/goal_near success
Observed plan round 2
PASS3:0robonix/system/scene/goal_nearargs {"object_id": "scene.object.potted_plant_001"}{ "reachable": true, "x": 0.4731028881039854, "y": 0.2636397152298505, "yaw": -0.05835562006779818, "reason": "approach pose for 'potted_plant' (scene.object.potted_plant_001)" }
step 3navigate to object approach pose1 leaf
sequence navigate_to_object
do nav2.navigation_navigate navigate_object_goal args {"goal": {"header": {"frame_id": "map","stamp": {"nanosec": 0,"sec": 0}},"pose": {"orientation": {"w": {"transform": "cos_half","var": "nav_yaw"},"x": 0.0,"y": 0.0,"z": {"transform": "sin_half","var": "nav_yaw"}},"position": {"x": {"var": "nav_x"},"y": {"var": "nav_y"},"z": 0.0}}}} expect robonix/service/navigation/navigate success
Observed plan round 3
PASS4:0robonix/service/navigation/navigateargs {"goal": {"header": {"frame_id": "map","stamp": {"nanosec": 0,"sec": 0}},"pose": {"orientation": {"w": 0.9995743578994404,"x": 0.0,"y": 0.0,"z": -0.029173670148299025},"position": {"x": 0.4731028881039854,"y": 0.2636397152298505,"z": 0.0}}}}{ "known": true, "state": "SUCCEEDED", "detail": "succeeded" }
PASSflow/patrol_observe3 step(s), 4 leaf call(s)
step 0parallel sensor capture2 leafs
parallel observe_step
do tiago_camera.camera_snapshot observe_snapshot args {} expect robonix/primitive/camera/snapshot success
do tiago_lidar.lidar_snapshot observe_lidar args {} expect robonix/primitive/lidar/snapshot success
Observed plan round 0
PASS1:0robonix/primitive/camera/snapshotargs {}{ "header": { "stamp": { "sec": 1783080297, "nanosec": 925618648 }, "frame_id": "head_front_camera_rgb_optical_frame" }, "height": 480, "width": 640, "encoding": "jpeg", "is_bigendian": 0, "step": 4842…
PASS1:1robonix/primitive/lidar/snapshotargs {}{ "header": { "stamp": { "sec": 277, "nanosec": 3773286 }, "frame_id": "hokuyo" }, "angle_min": -1.5700000524520874, "angle_max": 1.5700000524520874, "angle_increment": 0.0047647953033447266, "time_incre…
step 1remember1 leaf
sequence remember_step
do memory.memory_save remember_observation args {"data": "ci-flow observation: snapshot captured at waypoint 1"} expect robonix/service/memory/save success
Observed plan round 1
PASS2:0robonix/service/memory/saveargs {"data": "ci-flow observation: snapshot captured at waypoint 1"}{ "data": "Memory saved and indexed." }
step 2recall1 leaf
sequence recall_step
do memory.memory_search recall_observation args {"data": "waypoint 1"} expect robonix/service/memory/search success
Observed plan round 2
PASS3:0robonix/service/memory/searchargs {"data": "waypoint 1"}{ "data": "Relevant memories:\n- ci-fact: the test beacon is alpha-7\n\nci-flow recovered fact: beacon bravo-2\n\nci-flow recovered fact: beacon bravo-2\n\nci-flow recovered fact: beacon bravo-2\n\nci-flow observation: snapshot captured …

Logs

Select a log
-No log selected.

Runtime Contract Coverage

Contracts observed by the scenario runner in executor leaf results. This shows which runtime contract ids were exercised by this run; it is not a full API inventory.

AreaContract id
robonix/primitive/camerarobonix/primitive/camera/snapshot
robonix/primitive/lidarrobonix/primitive/lidar/snapshot
robonix/service/maprobonix/service/map/save_map
robonix/service/memoryrobonix/service/memory/save
robonix/service/memoryrobonix/service/memory/search
robonix/service/navigationrobonix/service/navigation/navigate
robonix/service/speechrobonix/service/speech/speak
robonix/service/voiceprintrobonix/service/voiceprint/list
robonix/skill/explorerobonix/skill/explore/explore
robonix/skill/explorerobonix/skill/explore/explore/cancel
robonix/skill/explorerobonix/skill/explore/explore/status
robonix/system/executorrobonix/system/executor/builtin/list_dir
robonix/system/executorrobonix/system/executor/builtin/read_file
robonix/system/executorrobonix/system/executor/builtin/run_command
robonix/system/executorrobonix/system/executor/builtin/write_file
robonix/system/scenerobonix/system/scene/goal_near
robonix/system/scenerobonix/system/scene/list_objects