Repository navigation
fix(unitree): validate robot addresses before deployment - #5230
Conversation
[Low impact] The change is limited to missing-IP guidance in Go2 WebRTC setup. The PR appears safe to merge, with a non-blocking improvement needed to keep the new test independent of exported settings. Findings
SummaryReplaces the missing-IP assertion in
Reviews (1) · Last reviewed commit: "fix(go2): say how to run without a robot..." · Reviewed by Greptile |
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: 721a21a | Previous: 8512cd3 | Ratio |
|---|---|---|---|
peak memory |
1729.098 MB |
1724.516 MB |
1.00 |
peak threads |
382 threads |
383 threads |
1.00 |
network (transport) |
2731.578 MB |
2731.025 MB |
1.00 |
disk write |
1.625 MB |
1.672 MB |
0.97 |
instructions |
136.93 G |
138.808 G |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #5230 +/- ##
==========================================
+ Coverage 84.52% 84.55% +0.03%
==========================================
Files 1918 1925 +7
Lines 189261 189686 +425
Branches 15488 15511 +23
==========================================
+ Hits 159972 160393 +421
- Misses 25171 25236 +65
+ Partials 4118 4057 -61
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 15 files with indirect coverage changes 🚀 New features to boost your workflow:
|
`dimos run unitree-go2` with no robot IP ended in a bare `AssertionError: IP address must be provided` from make_connection(). Raise a ValueError that names the setting and the two ways to run without a robot, in the style of processed_robot_ips.
GlobalConfig() reads REPLAY and SIMULATION from the environment, so with either exported make_connection() took the replay or simulator branch and the test failed although the check works.
1d60e34 to
d85cae9
Compare
validate_module_config dropped every key that is not a config field, so a misspelled override passed validation silently. Only kwargs pinned on a blueprint can carry constructor arguments that are not config fields, and the parser already filters those. Filter them in the coordinator as well and validate everything else as given. The hosted Go2 teleop blueprint test now supplies a robot IP, which GO2Connection requires at parse time.
Running a Unitree WebRTC stack without a robot IP now fails during configuration validation, before deployment, with guidance naming the relevant settings. The CLI exits 2. Blank addresses and empty fleet lists also produce configuration errors instead of reaching WebRTC or raising unrelated exceptions.
Resolve the run's global settings before validating module configs, normalize fleet addresses before checking the primary IP, and preserve Go2 replay/simulation and scoped or namespaced IP overrides. Both G1 WebRTC paths receive hardware-specific guidance. Python builds and dynamic loads validate before starting new resources; hosted fragments validate against the destination host's environment. The introductory CLI examples now use replay.
Validation:
dimos --viewer none run unitree-go2case exits 2 with one configuration error before deployment.Fixes DIM-468.