- Capture SIGTERM et SIGINT via libc::signal → AtomicBool RUNNING
- La boucle principale s'arrête proprement à la prochaine itération
- Envoi d'un paquet status:offline via UDP avant de quitter
- MQTT : publish status offline + disconnect() pour déconnexion gracieuse
(le last_will reste actif pour les déconnexions brutales)
- payload.rs: #[serde(default)] sur version pour compatibilité descendante
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implémente le transport MQTT complet avec rumqttc 0.24 :
- Birth message (online) au ConnAck + subscribe config topic
- Last Will Testament (offline) configuré au connect
- Réception config agent via topic {base}/{hostname}/config
- publish_metrics helper pour envoyer les métriques
- Transport::Tcp forcé pour broker sans TLS (malgré use-native-tls feature)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Initialise la structure de l'agent Rust avec tous les modules stub :
config, payload, metrics (cpu/memory/disk/network/uptime/temperature/smart),
transport (udp/mqtt). Corrige les features sysinfo 0.30 (pas de feature
disk/networks séparées). Compile sans erreurs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>