Skip to content

Autodetect Go2 startup connectivity#2

Draft
kezaer wants to merge 1 commit into
feat/blueprint-preflightsfrom
feat/go2-startup-autodetect
Draft

Autodetect Go2 startup connectivity#2
kezaer wants to merge 1 commit into
feat/blueprint-preflightsfrom
feat/go2-startup-autodetect

Conversation

@kezaer
Copy link
Copy Markdown
Owner

@kezaer kezaer commented Jun 6, 2026

Stack:

  1. Add Go2 local Wi-Fi doctor dimensionalOS/dimos#2378 - Add Go2 local Wi-Fi doctor
  2. Add blueprint preflight hooks #1 - Add reusable blueprint/hardware preflight infrastructure
  3. This PR - Apply startup preflights to Go2 connectivity
  4. feat/go2-teleop-lan-setup - Harden Go2 LAN teleop/browser setup

Summary:

  • Split Go2 LAN discovery into a reusable library plus the existing CLI compatibility wrapper.
  • Add Go2 connectivity probes used by startup and doctor flows.
  • Add owner-scoped Go2 single-robot and fleet startup preflights.
  • Wire Go2 preflights into Go2 basic/coordinator/fleet/smart blueprints and direct module lookup entries.
  • Keep startup fail-closed: missing single robot_ip can be auto-filled only when exactly one reachable Go2 is found; stale configured IPs fail; fleet runs require explicit robot_ips.
  • Skip replay, simulation, mock, fake, and non-WebRTC modes so CI and intentional virtual runs remain offline and deterministic.
  • Scope doctor endpoint checks to the running blueprint and avoid recommending image checks before startup.
  • Document automatic Go2 startup resolution and fleet safety behavior.

Why:

  • This turns the manual doctor from Add Go2 local Wi-Fi doctor dimensionalOS/dimos#2378 into startup safety automation without turning DimOS into a lab-wide robot auto-selector.
  • Direct module runs and disabled-module blueprints should get the same safety behavior as normal blueprints.

Validation:

  • Middle branch: /Users/kezaer/Git/dimos/.venv/bin/python -m pytest dimos/core/coordination/test_blueprints.py dimos/core/coordination/test_module_coordinator.py dimos/hardware/test_preflight.py dimos/robot/unitree/go2/test_connectivity.py dimos/robot/unitree/go2/test_startup.py dimos/robot/unitree/go2/cli/test_doctor.py -q (146 passed)
  • Top of stack: /Users/kezaer/Git/dimos/.venv/bin/python -m pytest dimos/core/coordination/test_blueprints.py dimos/core/coordination/test_module_coordinator.py dimos/hardware/test_preflight.py dimos/robot/unitree/go2/test_connectivity.py dimos/robot/unitree/go2/test_startup.py dimos/robot/unitree/go2/cli/test_doctor.py dimos/teleop/phone/test_blueprints.py dimos/teleop/phone/test_phone_teleop_module.py dimos/teleop/quest/test_blueprints.py dimos/teleop/quest/test_quest_teleop_module.py dimos/web/dimos_interface/api/test_server_certs.py dimos/web/templates/test_rerun_dashboard.py dimos/web/websocket_vis/test_websocket_vis_module.py dimos/robot/cli/test_cli_startup.py -q (175 passed)
  • /Users/kezaer/Git/dimos/.venv/bin/ruff check ...
  • /Users/kezaer/Git/dimos/.venv/bin/mypy dimos/
  • node --check dimos/teleop/quest/web/static/teleop.js
  • phone teleop inline module script through node --check
  • git diff --check

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant