Generated on 2026-07-28T11:40:29+08:00
HTTP Error 402: Payment Required
LLM analysis was not available; deterministic logs remain embedded below.
| Generated On | 2026-07-28T11:40:29+08:00 |
|---|---|
| Test Report Generated On | 2026-07-28T11:40:07+08:00 |
| Run Id | 30326099913 |
| Workflow | Robonix CI Bot |
| Event | issue_comment |
| Repository | syswonder/robonix |
| Tested Commit | aea4e692fc8e |
| Tested Commit Subject | Merge remote-tracking branch 'refs/remotes/robonix-pr/199/head' into agent/dev-next-portability |
| Tested Commit Author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |
| Tested Commit Date | 2026-07-28T11:31:30+08:00 |
| Pr Number | #199 |
| Pr Title | fix(scene): make object world state reliable and recoverable |
| Pr Author | enkerewpo |
| Pr Url | https://github.com/syswonder/robonix/pull/199 |
| Pr Head Ref | agent/scene-object-management-177 |
| Pr Head Repo | syswonder/robonix |
| Triggered By | enkerewpo |
| Actor | enkerewpo |
| Triggering Actor | enkerewpo |
| Runner Name | robonix-runner-workpc-debian13-temp |
| Runner Os | Linux |
| Runner Arch | X64 |
| Origin Url | https://github.com/syswonder/robonix |
| Run Attempt | 1 |
| Ref | refs/heads/dev |
| Sha | efec93b93d76 |
| Pr Base Ref | agent/dev-next-portability |
| Pr Head Sha | 7bc7f6b5c8a8b7e61e1118f02741ce11656c2323 |
| Report Id | 30326099913 |
| Test Ref | refs/heads/agent/dev-next-portability |
| Hostname | dedsec-amd0 |
|---|---|
| Os Pretty Name | Debian GNU/Linux 13 (trixie) |
| Kernel | Linux 6.12.90+deb13.1-amd64 x86_64 GNU/Linux |
| Arch | x86_64 |
| Cpu Model | AMD Ryzen 5 7600X 6-Core Processor |
| Cpu Cores | 12 |
| Mem Total | 30Gi |
| Gpu Summary | 0, NVIDIA GeForce RTX 2060, 6144 MiB, 580.95.05 |
| Nvidia Driver | 580.95.05 |
| Cuda Version | 13.0 |
| Docker Version | 29.5.3 |
| Docker Compose Version | 5.1.4 |
| Webots Version | webots package 2025a |
| Ros Distro | humble |
| Ros Domain Id | 103 |
| Sim Container | ci-30326099913-sim |
| Sim Image | ci-30326099913-1-sim |
| Webots Stream Port | 23913 |
| Webots Viewer Port | 24913 |
| Python Version | Python 3.13.5 |
| Rustc Version | rustc 1.95.0 (59807616e 2026-04-14) |
| Rbnx Version | rbnx 0.1.0 |
| Status | Suite | Scenario | Rounds | Dispatched contracts | Failures | Log |
|---|---|---|---|---|---|---|
| PASS | flow | object_navigation | 4 | robonix/service/navigation/navigate robonix/skill/explore/explore robonix/system/scene/goal_near robonix/system/scene/list_objects | - | |
| PASS | builtin | fault_recovery_builtin | 3 | robonix/system/executor/builtin/read_file robonix/system/executor/builtin/write_file | - | |
| PASS | builtin | file_roundtrip | 1 | robonix/system/executor/builtin/list_dir robonix/system/executor/builtin/read_file robonix/system/executor/builtin/write_file | - | |
| PASS | builtin | run_command | 1 | robonix/system/executor/builtin/run_command | - | |
| PASS | cap | camera_snapshot | 1 | robonix/primitive/camera/snapshot | - | |
| PASS | cap | explore_smoke | 2 | robonix/skill/explore/explore robonix/skill/explore/explore/cancel robonix/skill/explore/explore/status | - | |
| PASS | cap | lidar_snapshot | 1 | robonix/primitive/lidar/snapshot | - | |
| PASS | cap | mapping_save | 1 | robonix/service/map/save_map | - | |
| PASS | cap | memory_roundtrip | 1 | robonix/service/memory/save robonix/service/memory/search | - | |
| PASS | cap | scene_label_stability | 1 | robonix/system/executor/builtin/run_command | - | |
| FAIL | cap | scene_object_dropout | 1 | 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', '34: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': 'Command \'[\'docker\', \'exec\', \'ci-30326099913-1-sim\', \'bash\', \'-lc\', \'set -e; source /opt/ros/humble/setup.bash; ros2 service call /spawn_node_from_string webots_ros2_msgs/srv/SpawnNodeFromString "$1"\', \'scene-dropout-verifier\', \'{"data": "OfficeChair { translation 0.0 -4.0 0 rotation 0 0 1 0 name \\\\"scene_dropout_fixture\\\\" }"}\']\' timed out after 20 seconds'} | |
| PASS | cap | scene_object_fixture | 1 | robonix/system/scene/list_objects | - | |
| FAIL | cap | scene_object_management | 24 | 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/update_object_geometry', '40:0'), ('robonix/system/scene/delete_object', '40:1'), ('robonix/system/scene/flush_objects', '40:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/list_objects' success=True, observed [('robonix/system/scene/update_object_geometry', False)] | round 3: calls=[('robonix/system/scene/update_object_geometry', '43:0'), ('robonix/system/scene/delete_object', '43:1'), ('robonix/system/scene/flush_objects', '43:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/list_objects' success=True, observed [('robonix/system/scene/update_object_geometry', False)] | round 4: calls=[('robonix/system/scene/update_object_geometry', '46:0'), ('robonix/system/scene/delete_object', '46:1'), ('robonix/system/scene/flush_objects', '46:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/list_objects' success=True, observed [('robonix/system/scene/update_object_geometry', False)] steps[3] did not match any plan round from 2; expected contracts=['robonix/system/scene/update_object_label']; observed round 2: calls=[('robonix/system/scene/update_object_geometry', '40:0'), ('robonix/system/scene/delete_object', '40:1'), ('robonix/system/scene/flush_objects', '40:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/update_object_label' success=True, observed [('robonix/system/scene/update_object_geometry', False)] | round 3: calls=[('robonix/system/scene/update_object_geometry', '43:0'), ('robonix/system/scene/delete_object', '43:1'), ('robonix/system/scene/flush_objects', '43:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/update_object_label' success=True, observed [('robonix/system/scene/update_object_geometry', False)] | round 4: calls=[('robonix/system/scene/update_object_geometry', '46:0'), ('robonix/system/scene/delete_object', '46:1'), ('robonix/system/scene/flush_objects', '46:2')]; planned 3 call(s), expected 1; produced 1 leaf result(s) for 3 call(s); rtdl.children[0]: expected leaf contract='robonix/system/scene/update_object_label' success=True, observed [('robonix/system/scene/update_object_geometry', False)] steps[4] did not match any plan round from 2; expected contracts=['robonix/system/scene/update_object_geometry', 'robonix/system/scene/delete_object', 'robonix/system/scene/flush_objects']; observed round 2: calls=[('robonix/system/scene/update_object_geometry', '40:0'), ('robonix/system/scene/delete_object', '40:1'), ('robonix/system/scene/flush_objects', '40:2')]; produced 1 leaf result(s) for 3 call(s); rtdl.children[1]: expected leaf contract='robonix/system/scene/delete_object' success=False, observed [('robonix/system/scene/update_object_geometry', False)]; rtdl.children[2]: expected leaf contract='robonix/system/scene/flush_objects' success=False, observed [('robonix/system/scene/update_object_geometry', False)] | round 3: calls=[('robonix/system/scene/update_object_geometry', '43:0'), ('robonix/system/scene/delete_object', '43:1'), ('robonix/system/scene/flush_objects', '43:2')]; produced 1 leaf result(s) for 3 call(s); rtdl.children[1]: expected leaf contract='robonix/system/scene/delete_object' success=False, observed [('robonix/system/scene/update_object_geometry', False)]; rtdl.children[2]: expected leaf contract='robonix/system/scene/flush_objects' success=False, observed [('robonix/system/scene/update_object_geometry', False)] | round 4: calls=[('robonix/system/scene/update_object_geometry', '46:0'), ('robonix/system/scene/delete_object', '46:1'), ('robonix/system/scene/flush_objects', '46:2')]; produced 1 leaf result(s) for 3 call(s); rtdl.children[1]: expected leaf contract='robonix/system/scene/delete_object' success=False, observed [('robonix/system/scene/update_object_geometry', False)]; rtdl.children[2]: expected leaf contract='robonix/system/scene/flush_objects' success=False, observed [('robonix/system/scene/update_object_geometry', False)] | |
| FAIL | cap | scene_object_quality | 1 | 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', '107: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, 'visible_objects': 6, 'off_map_count': 0, 'invalid_bbox_count': 0, 'background_label_count': 0, 'quality': {'healthy_frames': 434, 'masks_input': 419, 'masks_retained': 419, 'depth_rejected_masks': 0, 'map_bounds_rejected_detections': 0, 'oversized_bbox_rejected_detections': 0, 'accepted_frame_detections': 419, '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': 1, '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.083886, 'max_center_xy_drift_m': 0.0, 'median_center_z_error_m': 0.260826, 'median_bbox_iou_3d': 0.258163, 'median_point_inlier_fraction': 0.9375, 'median_point_count': 1229.0, 'navigation_grade_fraction': 1.0}} | |
| PASS | cap | speech_speak | 1 | robonix/service/speech/speak | - | |
| PASS | cap | voiceprint_list | 1 | robonix/service/voiceprint/list | - | |
| PASS | flow | fault_recovery | 2 | robonix/service/memory/save | - | |
| PASS | flow | patrol_observe | 3 | robonix/primitive/camera/snapshot robonix/primitive/lidar/snapshot robonix/service/memory/save robonix/service/memory/search | - |
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.
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.
No log selected.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.
| Area | Contract id |
|---|---|
| robonix/primitive/camera | robonix/primitive/camera/snapshot |
| robonix/primitive/lidar | robonix/primitive/lidar/snapshot |
| robonix/service/map | robonix/service/map/save_map |
| robonix/service/memory | robonix/service/memory/save |
| robonix/service/memory | robonix/service/memory/search |
| robonix/service/navigation | robonix/service/navigation/navigate |
| robonix/service/speech | robonix/service/speech/speak |
| robonix/service/voiceprint | robonix/service/voiceprint/list |
| robonix/skill/explore | robonix/skill/explore/explore |
| robonix/skill/explore | robonix/skill/explore/explore/cancel |
| robonix/skill/explore | robonix/skill/explore/explore/status |
| robonix/system/executor | robonix/system/executor/builtin/list_dir |
| robonix/system/executor | robonix/system/executor/builtin/read_file |
| robonix/system/executor | robonix/system/executor/builtin/run_command |
| robonix/system/executor | robonix/system/executor/builtin/write_file |
| robonix/system/scene | robonix/system/scene/delete_object |
| robonix/system/scene | robonix/system/scene/flush_objects |
| robonix/system/scene | robonix/system/scene/goal_near |
| robonix/system/scene | robonix/system/scene/list_objects |
| robonix/system/scene | robonix/system/scene/update_object_geometry |
| robonix/system/scene | robonix/system/scene/update_object_label |