FEAT: Statut caméra en temps réel piloté par la capture agent #58
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#58
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🎯 Contexte
Quand l'agent démarre ou échoue une capture FFmpeg, le statut de la caméra côté Central ne bouge pas (reste Disabled/Unknown). L'opérateur ne voit pas si le flux est vivant.
📚 Référence spec (MASTER_SPECIFICATION.md v2.0)
Phase 10 — statuts caméra (Online/Offline/Error/Disabled) ; Phase 15 — l'agent capture chaque caméra assignée.
🔍 État actuel (vérifié dans le code)
CameraStreamService connaît ses sessions actives (ActiveCameraIds, IsStreamActive) mais ne le reporte nulle part. Le heartbeat agent remonte les métriques système, pas le statut par caméra. MonitoringHub.NotifyCameraStatusChanged existe côté central mais rien ne l'appelle depuis l'agent. Aucun endpoint API de statut caméra appelable par l'agent (le champ Status de Camera n'est mis à jour que par UpdateCameraCommand, UI/API admin).
🧩 À faire
✅ Critères d'acceptation
📁 Fichiers concernés
src/Heimdall.Agent/Services/SnapshotPipelineService.cs, src/Heimdall.Web/Controllers/CamerasController.cs (ou Hubs), src/Heimdall.Application/Cameras/