Robonix Webots CI Report

ALL REPORTS >>

Generated on 2026-07-06T14:04:16+08:00

ResultPASS
Scenarios15/15 passed
Failures0
Score100/100

LLM-Assisted Analysis

All 15 scenarios passed — memgraph service added

Provider: deepseek · Model: deepseek-chat · Generated On: 2026-07-06T06:04:16+00:00 · Stage: success · Confidence: high

All 15 Webots integration scenarios passed (100%). The PR introduces a new memgraph (Scribe Mem) structured CKG memory service alongside the existing memsearch backend, adding three new contracts: remember, hybrid_search, and promote. Existing memory contracts (save, search, compact) are deprecated in favour of the new structured variants. The CI exercised all 15 scenarios including builtin file operations, sensor snapshots, exploration, navigation, speech, voiceprint, and memory round-trips — all passed without failures.

PR Changes

Test Result

Suggested Fix

Risks Or Watchouts

Evidence

SourceLineExcerpt
5"failed": 0,
2"total": 15,
3"passed": 15,
4"rate": 1.0,

Run Metadata

Generated On2026-07-06T14:04:16+08:00
Test Report Generated On2026-07-06T14:03:34+08:00
Run Id28770914888
WorkflowRobonix CI Bot
Eventissue_comment
Repositorysyswonder/robonix
Tested Commit709278175831
Tested Commit SubjectMerge remote-tracking branch 'refs/remotes/robonix-pr/121/head' into dev
Tested Commit Authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Tested Commit Date2026-07-06T13:56:58+08:00
Pr Number#121
Pr Titlefeat(memory): extend memory with causal knowledge graph model
Pr AuthorohhhHwH
Pr Urlhttps://github.com/syswonder/robonix/pull/121
Pr Head Refdev
Pr Head RepoohhhHwH/robonix
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
Sha6c707c20417f
Pr Base Refdev
Pr Head Shaba9e57f38f4aa30d7b4f27a76e2918692d1176de
Report Id28770914888
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 Id178
Sim Containerci-28770914888-sim
Sim Imageci-28770914888-sim
Webots Stream Port23888
Webots Viewer Port24888
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
-
PASSbuiltinplan_control_builtins1
robonix/system/executor/builtin/get_all_plans
robonix/system/executor/builtin/get_plan_status
robonix/system/executor/builtin/stop_plan_at
-
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_navigation5
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 scripts 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 soma.yaml file start_rviz…
PASSbuiltin/plan_control_builtins1 step(s), 4 leaf call(s)
step 0inspect and stop current plan4 leafs
sequence inspect_and_stop_plan
do executor.builtin_get_all_plans list_active_plans args {} expect robonix/system/executor/builtin/get_all_plans success
do executor.builtin_get_plan_status inspect_current_plan args {"plan_id": "1"} expect robonix/system/executor/builtin/get_plan_status success
do executor.builtin_stop_plan_at stop_current_plan_on_complete args {"op_id": "1","plan_id": "1","when": "on_complete"} expect robonix/system/executor/builtin/stop_plan_at success
do executor.builtin_get_all_plans list_armed_stop_point args {} expect robonix/system/executor/builtin/get_all_plans success
Observed plan round 0
PASS1:0robonix/system/executor/builtin/get_all_plansargs {}{"count":1,"plans":[{"cancelled":false,"description":"inspect_and_stop_plan","op_count":5,"plan_id":"1","stop_points":0}]}
PASS1:1robonix/system/executor/builtin/get_plan_statusargs {"plan_id": "1"}{"cancelled":false,"ops":[{"description":"inspect_and_stop_plan","kind":"sequence","op_id":"16","state":"pending","stop_point":null},{"description":"list_active_plans","kind":"do","op_id":"17","state":"succeeded","stop_point":null},{"descr…
PASS1:2robonix/system/executor/builtin/stop_plan_atargs {"op_id": "1","plan_id": "1","when": "on_complete"}Stop point set: RTDL plan '1' will be cancelled on_complete op_id=1.
PASS1:3robonix/system/executor/builtin/get_all_plansargs {}{"count":1,"plans":[{"cancelled":false,"description":"inspect_and_stop_plan","op_count":5,"plan_id":"1","stop_points":1}]}
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": 1783317647, "nanosec": 909407138 }, "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": 1, "elapsed_s": 6.137624740600586, "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": 104, "nanosec": 45138599 }, "frame_id": "hokuyo" }, "angle_min": -1.5700000524520874, "angle_max": 1.5700000524520874, "angle_increment": 0.0047647953033447266, "time_incr…
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.potted_plant_001", "label": "potted_plant", "x": 1.3982363049526056, "y": 0.18869705477517293, "z": 0.9401021265542551, "yaw": 0.08777041103538075, "last_…
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": 0.8192068860852337, "y": 0.056825114421275344, "z": 0.0, "yaw": 0.01715505612190172, "last_seen_unix": 1783317794.25883…
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/list_objectsargs {}{ "objects": [ { "id": "scene.object.potted_plant_001", "label": "potted_plant", "x": 1.4414962046361481, "y": 0.1866280394019964, "z": 0.9434292601821576, "yaw": -0.2440223522739533, "last_s…
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/system/scene/goal_nearargs {"object_id": "scene.object.potted_plant_001"}{ "reachable": true, "x": 0.541510522521532, "y": 0.18155142747186706, "yaw": 0.005640709834633549, "reason": "approach pose for 'potted_plant' (scene.object.potted_plant_001)" }
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": 1783317807, "nanosec": 950092315 }, "frame_id": "head_front_camera_rgb_optical_frame" }, "height": 480, "width": 640, "encoding": "jpeg", "is_bigendian": 0, "step": 4770…
PASS1:1robonix/primitive/lidar/snapshotargs {}{ "header": { "stamp": { "sec": 219, "nanosec": 425138599 }, "frame_id": "hokuyo" }, "angle_min": -1.5700000524520874, "angle_max": 1.5700000524520874, "angle_increment": 0.0047647953033447266, "time_inc…
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

Build stdout is embedded as sim_logs/build-webots-deployment.log when the build step starts. The deploy supervisor output with the Robonix boot banner is embedded as rbnx-boot.log.

Quick logs:
Select a log
Loading embedded Ace viewer; fallback log viewer is available if scripts are blocked.
-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/get_all_plans
robonix/system/executorrobonix/system/executor/builtin/get_plan_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/stop_plan_at
robonix/system/executorrobonix/system/executor/builtin/write_file
robonix/system/scenerobonix/system/scene/goal_near
robonix/system/scenerobonix/system/scene/list_objects