Aller au contenu

La synchro rapatrie les nuits en squelettes, hydratés à la demande

StatutEn vigueur, 2026-07-17
ArticleA21 · La nuit, du crépuscule à l'aube, est l'unité de traitement
ChantierEPIC #1662 (refonte de la récupération d'une nuit)
Vérification humainele rapatriement en squelettes hydratés à la demande est un comportement de synchro, non observable par un motif statique

Contexte

Récupérer une nuit déposée sur VigieChiro mais absente d'ici mêlait trois gestes de natures différentes en un seul appel : recréer la structure (passage, séquences), rapatrier les observations, rebrancher l'audio + ancrage. La reconstruction téléchargeait tout, nuit par nuit ; la synchro « mes sites » s'arrêtait aux points. L'historique des nuits n'apparaissait donc nulle part tant qu'on ne reconstruisait pas explicitement, une par une - or on ne sait pas quelles nuits récupérer si aucune ne s'affiche.

Les données ont pourtant trois coutures naturelles : la structure (ce qu'est la nuit : un point, une date), les observations (ce que Tadarida y a identifié), l'audio + ancrage (les fichiers et leur lien à la donnée serveur).

Décision

La synchro « mes sites » rapatrie les nuits sous forme de squelettes : la structure seule (point + date + numéro, passage déposé et archivé, enregistreur « inconnu »), sans observations ni audio. Un squelette est léger (aucun appel de détail par nuit) et rend l'historique immédiatement visible. Il s'hydrate à la demande : la reconstruction (une nuit, ou toutes en lot) y rapatrie les observations ; la réactivation y rebranche l'audio + l'ancrage (#1571). Reconstruire une nuit déjà rapatriée en squelette la remplace (delete + recreate, le lien reposé), au lieu de la refuser.

Conséquences

  • L'historique des nuits apparaît dès la synchro, sans coûter un téléchargement d'observations par nuit ; l'hydratation, coûteuse, ne se paie que sur les nuits qu'on veut vraiment consulter.
  • Les trois coutures deviennent réutilisables et composables : la reconstruction compose structure (CreationPassageArchive) + observations ; l'import groupé rejoue la reconstruction sur un lot ; la réactivation ajoute audio + ancrage. Aucune logique d'import dupliquée.
  • Un squelette (archivé, 0 séquence, 0 résultat) est un état bénin pour l'audit (patron « archivé », ADR 0005 / #1300) : il informe, il ne crie pas.
  • Compromis assumé : un site tout juste synchronisé voit ses passages à la synchro suivante (les rapprocheurs ne sont pas ordonnés, et un squelette exige son point déjà local). La synchro est idempotente ; rien n'est perdu.

Alternatives écartées

  • Tout rapatrier à la synchro (structure + observations + audio). Coût prohibitif (un appel de détail + un import par nuit, pour des nuits qu'on ne consultera peut-être jamais) et impossible pour l'audio, que le dépôt ZIP ne restitue pas (ADR 0006).
  • Ne rien rapatrier, garder la reconstruction une-par-une. L'historique restait invisible : l'utilisateur ne savait pas quelles nuits existaient à récupérer.
  • Hydrater un squelette « en place » plutôt que delete + recreate. Aurait dupliqué le chemin de création (séquences, matériel, météo) sur un passage existant ; le squelette ne portant aucune donnée, le remplacer ne perd rien et réutilise tout le chemin de reconstruction.