# Health Monitor Configuration
# Lists all critical nodes that should be monitored for heartbeats

monitored_nodes:
  # Core drivers and hardware interfaces
  - rover_driver
  - camera_driver
  - lidar_driver
  - imu_driver
  - uwb_driver

  # SLAM and localization
  - slam_node
  - odom_fusion
  - visual_odom

  # Navigation
  - nav2_bringup
  - planner_server
  - controller_server

  # Perception
  - person_detector
  - object_tracker

  # Control and decision making
  - follower
  - cmd_vel_bridge
  - emergency_handler

  # Communication
  - rosbridge_websocket
  - cellular_link

  # Utilities
  - bag_recorder
  - remote_monitor

# Health check parameters
health_check:
  # Node is considered DOWN if heartbeat hasn't been received in this many seconds
  heartbeat_timeout_s: 5

  # How often to check node health (Hz)
  check_frequency_hz: 1

  # Whether to attempt automatic restart of dead nodes
  enable_auto_restart: true

  # Alert cooldown to avoid spam (seconds)
  alert_cooldown_s: 5

# Restart behavior
restart:
  # Command file to write restart commands to
  command_file: /tmp/saltybot_restart_queue.sh

  # Maximum consecutive restarts before giving up
  max_restart_attempts: 3

# Alert settings
alerting:
  # Publish alerts to this topic
  alert_topic: /saltybot/face/alert

  # Nodes that are critical (system won't operate without them)
  critical_nodes:
    - rover_driver
    - cmd_vel_bridge
    - emergency_handler

  # Nodes that are important but not critical
  important_nodes:
    - slam_node
    - person_detector
    - nav2_bringup
