Skip to content

Add blueprint preflight hooks#1

Draft
kezaer wants to merge 1 commit into
feat/go2-doctorfrom
feat/blueprint-preflights
Draft

Add blueprint preflight hooks#1
kezaer wants to merge 1 commit into
feat/go2-doctorfrom
feat/blueprint-preflights

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. This PR - Add reusable blueprint/hardware preflight infrastructure
  3. feat/go2-startup-autodetect - Apply it to Go2 startup connectivity
  4. feat/go2-teleop-lan-setup - Harden Go2 LAN teleop/browser setup

Summary:

  • Add Blueprint.preflights(...) and run_preflights(...) so startup checks can validate or conservatively repair GlobalConfig before module deployment.
  • Stage config updates atomically, reject direct config mutation from preflights, and skip owner-scoped preflights when their owning module is disabled.
  • Add generic single-target and multi-target hardware preflight helpers with fail-closed defaults for configured replacements and discovered fleet selection.
  • Tighten coordinator rollback behavior for deploy failures and clean up pytest watchdog subprocesses.
  • Complete the local pygame key stub so full mypy can validate the stack from a clean worktree.

Why:

  • DimOS startup should make safe, typed, reusable decisions before workers and hardware modules start, rather than embedding one-off robot setup logic in individual launch paths.
  • Hardware auto-repair should be conservative: fill only unambiguous missing config and fail closed when a configured target does not validate.

Validation:

  • Bottom 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 -q (88 passed; one coordinator timing flake was rerun and passed in isolation)
  • 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

@kezaer kezaer force-pushed the feat/blueprint-preflights branch from 6fd6e89 to afd1155 Compare June 8, 2026 06:40
@kezaer kezaer force-pushed the feat/go2-doctor branch from 2c4737d to 1b12482 Compare June 8, 2026 06:40
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