Aller au contenu principal
134Tests
96 %Couverture
0Dépendances
3Décisions

Chiffres relevés le 21 août 2026 en exécutant les suites de tests, et non recopiés des fichiers README.

Les démonstrations portent sur l'inférence, les achats portent sur le reste

Toute conversation sur l'IA embarquée finit par atteindre les questions réelles de l'acheteur, et aucune ne porte sur le modèle. Comment met-on à jour deux cents machines. Que se passe-t-il quand une mise à jour est mauvaise. Qu'y a-t-il dans l'image. Sait-on reconstruire la version qui tourne aujourd'hui sur le terrain.

Ce dépôt est la moitié ingrate, construite comme un modèle qui fonctionne plutôt que comme une planche de présentation : bascule A/B avec retour arrière automatique, manifestes liés par empreinte, différentiel d'inventaire logiciel et builds reproductibles.

Le silence vaut retour arrière, et le parc s'arrête de lui-même

« L'état qui survit à une coupure de courant est en attente, et ce qui est en attente revient en arrière. »

L'activation ouvre une fenêtre de confirmation. Un nœud qui démarre une image neuve et ne se signale pas revient à ce qu'il exécutait avant, sur sa propre horloge, sans consulter personne, que l'image soit mauvaise, que le réseau soit tombé ou que quelqu'un ait coupé l'alimentation. Deuxième règle : une vague au-delà de son budget d'échec arrête le déploiement, et il n'existe aucun indicateur pour continuer, parce qu'un tel indicateur serait utilisé à trois heures du matin par celui qui veut en finir.

Sortie réelle du déploiement de démonstration, le 21 août 2026.
  plan         : inspection-agent -> 2.4.0
  waves        : canary, pilot, fleet
  updated      : 2
  failed       : 4
  rolled back  : 2  <- the number that matters
  untouched    : 6

  ✓ node-01    updated                health probe passed
  ✓ node-02    updated                health probe passed
  ✗ node-03    transport-failure      link dropped during transfer
  ✗ node-04    digest-mismatch        manifest says sha256:ceba2163…, bytes hash to sha256:c1735458…
  ✗ node-05    health-probe-failed    health probe failed
  ✗ node-06    health-probe-failed    no health probe supplied

  still on 2.3.0: 10 node(s)

digest-mismatch

Le téléchargement a réussi et a livré les mauvais octets. Un contrôle qui demande si le transfert s'est bien passé répond oui.

no health probe supplied

Retour arrière prononcé pour l'absence de contrôle. Une machine à laquelle personne ne peut poser de question ne conserve pas une modification sur la foi de son silence.

Le déploiement s'est arrêté de lui-même dans la vague « pilot », quatre nœuds sur cinq ayant échoué pour un budget d'un seul. Six machines n'ont jamais été touchées et exécutent encore la version qui fonctionne, et dix restent en 2.3.0 : c'est le déploiement qui réussit, pas celui qui échoue.

Cinq paliers, cent trente-quatre tests

Exécutés le 21 août 2026 sur le dépôt public. Trente-deux contrôles sont rattachés chacun au test qui les démontre, ce qui rend la table de correspondance vérifiable plutôt que déclarative.

Palier Tests Question à laquelle il répond
smoke6Est-ce que cela démarre
unit57Chaque partie se comporte-t-elle correctement à ses bornes
functional27Le déploiement respecte-t-il sa spécification
security22Que fait-il d'une image ou d'un manifeste qu'il n'a pas produits
pentest22La revendication peut-elle être cassée
Total13496 %

La barrière d'intégration enchaîne l'analyse statique, le typage strict, la revue de sécurité du code, les avis de sécurité sur les dépendances et un plancher de couverture à 90 pour cent. Le dépôt n'a aucune dépendance d'exécution.

Les lacunes connues, telles que le dépôt les énonce

Le modèle de menace du dépôt énumère six risques résiduels. Les cinq qui comptent pour un lecteur extérieur sont ceux-ci.

  • Aucune protection contre le retour à une version ancienne. Une image plus ancienne et correctement signée est acceptée, avec ses vulnérabilités.
  • Le contrôle de santé est échantillonné une seule fois, au moment de la confirmation. Ce qui se dégrade ensuite n'est pas vu.
  • Aucune attestation. La version qu'un nœud déclare est le récit qu'il fait de lui-même.
  • Le vérificateur de signature appartient à l'appelant. Le dépôt modélise le quorum, il ne fournit pas de racine de confiance.
  • Rien n'a rencontré d'interrupteur. Chaque nœud est un objet Python, et la coupure d'alimentation est simulée, pas subie.

Quatre documents, dans l'ordre où ils se lisent

Une revendication de gouvernance se vérifie ou ne vaut rien

Si l'un de ces maillons correspond à une question ouverte chez vous, la conversation commence par le code.

Prendre contact