Robonix Webots CI Report

ALL REPORTS >>

Generated on 2026-07-28T12:36:23+08:00

ResultFAIL
Scenarios15/18 passed
Failures3
Score83/100

LLM-Assisted Analysis

LLM analysis failed

Provider: deepseek · Model: deepseek-chat · Generated On: 2026-07-28T04:36:23+00:00 · Confidence: low

HTTP Error 402: Payment Required

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

Run Metadata

Generated On2026-07-28T12:36:23+08:00
Test Report Generated On2026-07-28T12:36:00+08:00
Run Id30328785101
WorkflowRobonix CI Bot
Eventissue_comment
Repositorysyswonder/robonix
Tested Commit8727deee5a87
Tested Commit SubjectMerge remote-tracking branch 'refs/remotes/robonix-pr/199/head' into agent/dev-next-portability
Tested Commit Authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Tested Commit Date2026-07-28T12:28:04+08:00
Pr Number#199
Pr Titlefix(scene): make object world state reliable and recoverable
Pr Authorenkerewpo
Pr Urlhttps://github.com/syswonder/robonix/pull/199
Pr Head Refagent/scene-object-management-177
Pr Head Reposyswonder/robonix
Triggered Byenkerewpo
Actorenkerewpo
Triggering Actorenkerewpo
Runner Namerobonix-runner-workpc-debian13-temp
Runner OsLinux
Runner ArchX64
Origin Urlhttps://github.com/syswonder/robonix
Run Attempt1
Refrefs/heads/dev
Shaefec93b93d76
Pr Base Refagent/dev-next-portability
Pr Head Sha062394099bc965b49cae608b5080df8f729f650f
Report Id30328785101
Test Refrefs/heads/agent/dev-next-portability

Test Environment

Hostnamededsec-amd0
Os Pretty NameDebian GNU/Linux 13 (trixie)
KernelLinux 6.12.90+deb13.1-amd64 x86_64 GNU/Linux
Archx86_64
Cpu ModelAMD Ryzen 5 7600X 6-Core Processor
Cpu Cores12
Mem Total30Gi
Gpu Summary0, NVIDIA GeForce RTX 2060, 6144 MiB, 580.95.05
Nvidia Driver580.95.05
Cuda Version13.0
Docker Version29.5.3
Docker Compose Version5.1.4
Webots Versionwebots package 2025a
Ros Distrohumble
Ros Domain Id91
Sim Containerci-30328785101-sim
Sim Imageci-30328785101-1-sim
Webots Stream Port23101
Webots Viewer Port24101
Python VersionPython 3.13.5
Rustc Versionrustc 1.95.0 (59807616e 2026-04-14)
Rbnx Versionrbnx 0.1.0

Scenarios

StatusSuiteScenarioRoundsDispatched contractsFailuresLog
PASSflowobject_navigation4
robonix/service/navigation/navigate
robonix/skill/explore/explore
robonix/system/scene/goal_near
robonix/system/scene/list_objects
-
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_label_stability1
robonix/system/executor/builtin/run_command
-
FAILcapscene_object_dropout1
robonix/system/executor/builtin/run_command
steps[0] did not match any plan round from 0; expected contracts=['robonix/system/executor/builtin/run_command']; observed round 0: calls=[('robonix/system/executor/builtin/run_command', '33:0')]; rtdl.children[0]: expected leaf 'robonix/system/executor/builtin/run_command' did not satisfy assertions: output JSON did not contain subset {'ok': True, 'reappeared_same_id': True}, got {'ok': False, 'error': 'Webots supervisor rejected fixture: {"success": false}'}
PASScapscene_object_fixture1
robonix/system/scene/list_objects
-
FAILcapscene_object_management5
robonix/system/scene/delete_object
robonix/system/scene/flush_objects
robonix/system/scene/list_objects
robonix/system/scene/update_object_geometry
robonix/system/scene/update_object_label
steps[2] did not match any plan round from 2; expected contracts=['robonix/system/scene/list_objects']; observed round 2: calls=[('robonix/system/scene/list_objects', '39:0')]; rtdl.children[0]: expected leaf 'robonix/system/scene/list_objects' did not satisfy assertions: checks[0] failed: select='$.objects[]' where={'all': [{'path': '$.id', 'op': 'eq', 'value': {'var': 'object_id'}}, {'path': '$.label', 'op': 'eq', 'value': 'ci_verified_object'}]} assert={'op': 'exists'} values=[] | round 3: calls=[('robonix/system/scene/update_object_label', '40:0')]; rtdl.children[0]: expected leaf contract='robonix/system/scene/list_objects' success=True, observed [('robonix/system/scene/update_object_label', True)] | round 4: calls=[('robonix/system/scene/update_object_geometry', '41:0'), ('robonix/system/scene/delete_object', '41:1'), ('robonix/system/scene/flush_objects', '41:2')]; planned 3 call(s), expected 1; rtdl.children[0]: expected leaf contract='robonix/system/scene/list_objects' success=True, observed [('robonix/system/scene/update_object_geometry', False), ('robonix/system/scene/delete_object', False), ('robonix/system/scene/flush_objects', False)]
FAILcapscene_object_quality1
robonix/system/executor/builtin/run_command
steps[0] did not match any plan round from 0; expected contracts=['robonix/system/executor/builtin/run_command']; observed round 0: calls=[('robonix/system/executor/builtin/run_command', '47:0')]; rtdl.children[0]: expected leaf 'robonix/system/executor/builtin/run_command' did not satisfy assertions: output JSON did not contain subset {'ok': True, 'off_map_count': 0, 'invalid_bbox_count': 0, 'background_label_count': 0, 'ground_truth_metrics': {'ok': True, 'label_accuracy': 1.0, 'stable_id_count': 1}}, got {'ok': False, 'require_scene_ground_truth': False, 'visible_objects': 11, 'off_map_count': 0, 'invalid_bbox_count': 0, 'background_label_count': 0, 'quality': {'healthy_frames': 361, 'masks_input': 2124, 'masks_retained': 881, 'depth_rejected_masks': 1243, 'map_bounds_rejected_detections': 0, 'oversized_bbox_rejected_detections': 0, 'accepted_frame_detections': 877, 'require_occupancy_bounds': True, 'frame_dbscan': True, 'depth_range_m': [0.15, 6.0], 'max_bbox_extent_m': 3.0, 'map_bounds_margin_m': 0.25, 'label_provisional_objects': 2, 'label_history_size': 20, 'allow_cross_class_merge': False}, 'off_map_ids': [], 'invalid_bbox_ids': [], 'background_label_ids': [], 'ground_truth_metrics': {'ok': False, 'failures': ['label_accuracy below 1.0'], 'ground_truth': {'label': 'potted_plant', 'center_m': [1.546367, 0.160477, 0.65], 'bbox_size_m': [0.3, 0.3, 1.3], 'yaw_rad': 2.355248}, 'sample_count': 8, 'expected_samples': 8, 'target_recall': 1.0, 'label_accuracy': 0.0, 'stable_id_count': 1, 'median_center_xy_error_m': 0.097483, 'max_center_xy_drift_m': 0.0, 'median_center_z_error_m': 0.263331, 'median_bbox_iou_3d': 0.25051, 'median_point_inlier_fraction': 0.863281, 'median_point_count': 1891.0, 'navigation_grade_fraction': 1.0}, 'scene_ground_truth_metrics': {'ok': False, 'failures': ['target_recall below 0.8', 'label_accuracy below 0.8', 'median_center_error_m above 0.25', 'median_yaw_error_rad above 0.52'], 'per_target': [{'node_type': 'Table', 'name': 'table(1)', 'expected_label': 'table', 'matched': False}, {'node_type': 'Monitor', 'name': 'monitor(1)', 'expected_label': 'monitor', 'matched': False}, {'node_type': 'Keyboard', 'name': 'keyboard(1)', 'expected_label': 'keyboard', 'matched': False}, {'node_type': 'OfficeChair', 'name': 'office chair(2)', 'expected_label': 'chair', 'matched': False}, {'node_type': 'Cabinet', 'name': 'cabinet(1)', 'expected_label': 'cabinet', 'matched': False}, {'node_type': 'PottedTree', 'name': 'potted tree(2)', 'expected_label': 'potted_plant', 'matched': True, 'object_id': 'scene.object.potted_plant_001', 'observed_label': 'ci_verified_object', 'label_correct': False, 'center_error_m': 0.257034, 'size_error_m': 0.811574, 'size_relative_error': 0.467013, 'yaw_error_rad': 0.552477}], 'object_count': 11, 'expected_object_count': 6, 'matched_object_count': 1, 'target_recall': 0.166667, 'duplicate_count': 0, 'unmatched_object_count': 10, 'ghost_count': 10, 'label_accuracy': 0.0, 'geometry_sample_count': 1, 'yaw_sample_count': 1, 'mean_center_error_m': 0.257034, 'median_center_error_m': 0.257034, 'mean_size_error_m': 0.811574, 'median_size_error_m': 0.811574, 'mean_size_relative_error': 0.467013, 'median_size_relative_error': 0.467013, 'mean_yaw_error_rad': 0.552477, 'median_yaw_error_rad': 0.552477}}
PASScapspeech_speak1
robonix/service/speech/speak
-
PASScapvoiceprint_list1
robonix/service/voiceprint/list
-
PASSflowfault_recovery2
robonix/service/memory/save
-
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.

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
FAIL2: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
PASS3:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": 0.02596972762351843, "y": 0.005617369156073764, "z": 0.0, "yaw": 0.6374836301638357, "last_seen_unix": 1785213174.16561…
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
PASS6:0robonix/system/scene/goal_nearargs {"object_id": "scene.object.potted_plant_001"}{ "reachable": true, "x": 1.050000013783574, "y": -0.31809708662331104, "yaw": 0.8394321770037797, "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
PASS7:0robonix/service/navigation/navigateargs {"goal": {"header": {"frame_id": "map","stamp": {"nanosec": 0,"sec": 0}},"pose": {"orientation": {"w": 0.9132046713917472,"x": 0.0,"y": 0.0,"z": 0.4075012001801848},"position": {"x": 1.050000013783574,"y": -0.31809708662331104,"z": 0.0}}}}{ "known": true, "state": "SUCCEEDED", "detail": "succeeded; distance_remaining=0.106m recoveries=0 last_pose=(0.958,-0.219)" }
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
FAIL9: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
PASS10:0robonix/system/executor/builtin/write_fileargs {"content": "recovered charlie-3","path": "ci_recovered.txt"}wrote 19 bytes to /home/wheatfox/actions-runner-robonix-temp/_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
PASS13: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
PASS15:0robonix/system/executor/builtin/write_fileargs {"content": "robonix ci probe alpha-7","path": "ci_probe.txt"}wrote 24 bytes to /home/wheatfox/actions-runner-robonix-temp/_work/robonix/robonix/examples/webots/ci_probe.txt
PASS15:1robonix/system/executor/builtin/read_fileargs {"path": "ci_probe.txt"}robonix ci probe alpha-7
PASS15:2robonix/system/executor/builtin/list_dirargs {"path": "."}dir config dir primitives dir rbnx-boot dir scripts dir services dir sim dir tests 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 fil…
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
PASS17: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
PASS19:0robonix/primitive/camera/snapshotargs {}{ "header": { "stamp": { "sec": 1785213185, "nanosec": 688960313 }, "frame_id": "head_front_camera_rgb_optical_frame" }, "height": 480, "width": 640, "encoding": "jpeg", "is_bigendian": 0, "step": 5218…
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
FAIL21: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
PASS22:0robonix/skill/explore/explore/statusargs {"run_id": ""}{ "known": true, "state": "TIMEOUT", "area_m2": 0.0, "frontiers_left": 13, "elapsed_s": 6.195574045181274, "eta_s": -1.0, "detail": "hit 5.0s ceiling" }
PASS22: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
PASS25:0robonix/primitive/lidar/snapshotargs {}{ "header": { "stamp": { "sec": 166, "nanosec": 700000000 }, "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
PASS27:0robonix/service/map/save_mapargs {"map_id": "ci_test_map","note": "robonix ci"}{ "ok": true, "map_id": "ci_test_map", "detail": "saved spatial map ci_test_map; rtabmap backup completed; source=rtabmap backup artifact; sqlite_backup=sqlite backup ok; published optimized global 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
PASS29:0robonix/service/memory/saveargs {"data": "ci-fact: the test beacon is alpha-7"}{ "data": "Memory saved and indexed." }
PASS29:1robonix/service/memory/searchargs {"data": "test beacon"}{ "data": "Relevant memories:\n- ci-fact: the test beacon is alpha-7" }
PASScap/scene_label_stability1 step(s), 1 leaf call(s)
step 0validate converged object labels across repeated frames1 leaf
sequence scene_label_stability_step
do executor.builtin_run_command verify_scene_label_stability args {"command": "python3 \"$(rbnx path root)/testing/verify_scene_label_stability.py\""} expect robonix/system/executor/builtin/run_command success
Observed plan round 0
PASS31:0robonix/system/executor/builtin/run_commandargs {"command": "python3 \"$(rbnx path root)/testing/verify_scene_label_stability.py\""}{"ok":true,"stable_object_count":9,"samples":8,"label_switch_count":0,"allow_cross_class_merge":false,"labels":{"scene.object.potted_plant_001":"potted_plant","scene.object.cabinet_001":"cabinet","scene.object.shelf_001":"shelf","scene.obj…
FAILcap/scene_object_dropout1 step(s), 1 leaf call(s)
step 0spawn, remove, re-observe, and expire a Webots fixture1 leaf
sequence scene_object_dropout_step
do executor.builtin_run_command verify_scene_object_dropout args {"command": "python3 \"$(rbnx path root)/testing/verify_scene_object_dropout.py\""} expect robonix/system/executor/builtin/run_command success
Observed plan round 0
PASS33:0robonix/system/executor/builtin/run_commandargs {"command": "python3 \"$(rbnx path root)/testing/verify_scene_object_dropout.py\""}{"ok":false,"error":"Webots supervisor rejected fixture: {\"success\": false}"}
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
PASS35:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": 0.9590171869459468, "y": -0.21978362842983368, "z": 0.0, "yaw": 2.7367118309251235, "last_seen_unix": 1785213297.550675…
FAILcap/scene_object_management5 step(s), 7 leaf call(s)
step 0capture a live object and optimistic concurrency token1 leaf
sequence select_scene_object_for_correction
do scene.scene_list_objects list_scene_objects_for_correction args {} expect robonix/system/scene/list_objects success
Observed plan round 0
PASS37:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": 0.9590181843142699, "y": -0.2197840558605167, "z": 0.0, "yaw": 2.736711727668759, "last_seen_unix": 1785213342.8850167 …
step 1update one live object label in the asserted epoch1 leaf
sequence update_scene_object_label
do scene.scene_update_object_label apply_temporary_scene_label args {"clear_override": false,"expected_generation": {"var": "scene_generation"},"expected_map_id": {"var": "scene_map_id"},"label": "ci_verified_object","object_id": {"var": "object_id"},"persist_to_snapshot": false} expect robonix/system/scene/update_object_label success
Observed plan round 1
PASS38:0robonix/system/scene/update_object_labelargs {"clear_override": false,"expected_generation": -1,"expected_map_id": "default","label": "ci_verified_object","object_id": "scene.object.potted_plant_001","persist_to_snapshot": false}{ "object": { "id": "scene.object.potted_plant_001", "label": "ci_verified_object", "x": 1.4529861738890961, "y": 0.18845888455671553, "z": 0.9133312765020125, "yaw": -1.3388221604138968, "last_seen_unix": 178…
step 2read back the temporary label1 leaf
sequence verify_scene_object_label
do scene.scene_list_objects list_corrected_scene_object args {} expect robonix/system/scene/list_objects success
Observed plan round 2
PASS39:0robonix/system/scene/list_objectsargs {}{ "objects": [ { "id": "scene.object.robot_001", "label": "robot", "x": 0.9590181888260457, "y": -0.2197840577940769, "z": 0.0, "yaw": 2.7367117271359493, "last_seen_unix": 1785213343.086052 …
step 3clear the operator label override before safety checks1 leaf
sequence restore_scene_object_label
do scene.scene_update_object_label clear_temporary_scene_label args {"clear_override": true,"expected_generation": {"var": "scene_generation"},"expected_map_id": {"var": "scene_map_id"},"label": "","object_id": {"var": "object_id"},"persist_to_snapshot": false} expect robonix/system/scene/update_object_label success
Observed plan round 3
PASS40:0robonix/system/scene/update_object_labelargs {"clear_override": true,"expected_generation": -1,"expected_map_id": "default","label": "","object_id": "scene.object.potted_plant_001","persist_to_snapshot": false}{ "object": { "id": "scene.object.potted_plant_001", "label": "potted_plant", "x": 1.4529861738890961, "y": 0.18845888455671553, "z": 0.9133312765020125, "yaw": -1.3388221604138968, "last_seen_unix": 178521334…
step 4reject bad geometry, unknown ids, and stale epochs3 leafs
parallel reject_unsafe_scene_object_mutations
do scene.scene_update_object_geometry reject_wrong_geometry_frame args {"expected_generation": {"var": "scene_generation"},"expected_map_id": {"var": "scene_map_id"},"frame_id": "__ci_wrong_frame__","object_id": {"var": "object_id"},"persist_to_snapshot": false,"size_x": 0.5,"size_y": 0.5,"size_z": 0.5,"x": 0.0,"y": 0.0,"yaw": 0.0,"z": 0.5} expect robonix/system/scene/update_object_geometry failure
do scene.scene_delete_object reject_unknown_object_delete args {"expected_generation": {"var": "scene_generation"},"expected_map_id": {"var": "scene_map_id"},"object_id": "scene.object.__ci_unknown_999","persist_to_snapshot": false} expect robonix/system/scene/delete_object failure
do scene.scene_flush_objects reject_stale_epoch_flush args {"expected_generation": -999999,"expected_map_id": {"var": "scene_map_id"},"persist_to_snapshot": false} expect robonix/system/scene/flush_objects failure
Observed plan round 4
FAIL41:0robonix/system/scene/update_object_geometryargs {"expected_generation": -1,"expected_map_id": "default","frame_id": "__ci_wrong_frame__","object_id": "scene.object.potted_plant_001","persist_to_snapshot": false,"size_x": 0.5,"size_y": 0.5,"size_z": 0.5,"x": 0.0,"y": 0.0,"yaw": 0.0,"z": 0.5}mcp tool error: Error executing tool update_object_geometry: geometry frame mismatch: requested '__ci_wrong_frame__', object pose='map', bbox='map'
FAIL41:1robonix/system/scene/delete_objectargs {"expected_generation": -1,"expected_map_id": "default","object_id": "scene.object.__ci_unknown_999","persist_to_snapshot": false}mcp tool error: Error executing tool delete_object: "unknown Scene object 'scene.object.__ci_unknown_999'"
FAIL41:2robonix/system/scene/flush_objectsargs {"expected_generation": -999999,"expected_map_id": "default","persist_to_snapshot": false}mcp tool error: Error executing tool flush_objects: Scene map epoch changed: requested ('default', -999999), current ('default', -1); refresh list_objects and retry
FAILcap/scene_object_quality1 step(s), 1 leaf call(s)
step 0validate label, center, 3D box, cloud, stability, and admission1 leaf
sequence scene_object_quality_step
do executor.builtin_run_command verify_scene_object_quality args {"command": "python3 \"$(rbnx path root)/testing/verify_scene_object_quality.py\""} expect robonix/system/executor/builtin/run_command success
Observed plan round 0
PASS47:0robonix/system/executor/builtin/run_commandargs {"command": "python3 \"$(rbnx path root)/testing/verify_scene_object_quality.py\""}{"ok":false,"require_scene_ground_truth":false,"visible_objects":11,"off_map_count":0,"invalid_bbox_count":0,"background_label_count":0,"quality":{"healthy_frames":361,"masks_input":2124,"masks_retained":881,"depth_rejected_masks":1243,"ma…
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
PASS49: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
PASS51:0robonix/service/voiceprint/listargs {}{ "users_json": "[]", "count": 0, "error": "" }
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
FAIL53: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
PASS54:0robonix/service/memory/saveargs {"data": "ci-flow recovered fact: beacon bravo-2"}{ "data": "Memory saved and indexed." }
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
PASS58:0robonix/primitive/camera/snapshotargs {}{ "header": { "stamp": { "sec": 1785213355, "nanosec": 524945974 }, "frame_id": "head_front_camera_rgb_optical_frame" }, "height": 480, "width": 640, "encoding": "jpeg", "is_bigendian": 0, "step": 2766…
PASS58:1robonix/primitive/lidar/snapshotargs {}{ "header": { "stamp": { "sec": 291, "nanosec": 840000000 }, "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
PASS59: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
PASS60: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 observation: snapshot captured at waypoint 1" }

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/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/delete_object
robonix/system/scenerobonix/system/scene/flush_objects
robonix/system/scenerobonix/system/scene/goal_near
robonix/system/scenerobonix/system/scene/list_objects
robonix/system/scenerobonix/system/scene/update_object_geometry
robonix/system/scenerobonix/system/scene/update_object_label