Contrôles déjà exécutés

Vérifier les textes d'IKG vers SoVisu+

En bref : Vingt-six tests sur la façon dont titres, résumés et noms d'unités passent d'IKG à la base de SoVisu+ (SoVisuPlus), sur une base PostgreSQL temporaire. Statut : Confirmé (exécution locale).

Résultat : code 0 pour les deux scripts, 26 tests sur 26 (11 + 15), le 22 octobre 2026. IKG coupe les textes à 4 000 caractères, alors que la base de SoVisu+ limite les titres et descriptions à 2 000 et les libellés à 255 ; une erreur de longueur laisse des écritures partielles ; un état ancien rejoué écrase un état plus récent.

Pourquoi ce contrôle

Une vitrine affiche surtout du texte, dans plusieurs langues. Ce contrôle répond à « un texte qui sort d'IKG arrive-t-il intact dans SoVisu+, et que se passe-t-il s'il est trop long ou rejoué ? ». Les résultats sont tenus dans le dictionnaire de données.

Avant de commencer

  • L'environnement Python du contrôle Bridge → IKG (variable env_dir).
  • PostgreSQL 16 (initdb, pg_ctl, psql), Node et npm, et les copies crisalid-ikg et SoVisuPlus.
  • À ne pas faire : pointer ces scripts vers une base existante. Chacun crée puis supprime sa propre base, joignable seulement en local.

Étapes

Étape 1 — Contrôler les modèles d'IKG et les contraintes SQL

Pourquoi : savoir ce que la base accepte avant de regarder ce que l'application y écrit.

TerminalBash
"$env_dir/venv/bin/python" scripts/check-crisalid-text-contract.py # --pg-bin <dossier> si besoin

Onze tests : troncature d'IKG, langues, limites de chaque colonne (en caractères, pas en octets), unicité par langue.

Étape 2 — Contrôler les écritures de SoVisu+

Pourquoi : observer ce que le vrai code de SoVisu+ écrit, avec un vrai client de base de données (Prisma).

TerminalBash
runtime=$(mktemp -d) npm install --prefix "$runtime" --ignore-scripts --no-audit --no-fund --no-save \ typescript@5.9.3 iso-639-1@3.1.6 prisma@6.19.3 @prisma/client@6.19.3 slugify@1.6.9 remove-accents@0.5.0 node scripts/check-crisalid-prisma-contract.mjs --runtime "$runtime"

Quinze tests, dont six de reprise : erreurs de longueur rejouées, instantané corrigé, retour d'un état ancien. Les classes de SoVisu+ sont chargées depuis les sources ; seul l'accès à la base est remplacé par la base temporaire.

Étape 3 — Lire le rapport

Pourquoi : les erreurs SQL de longueur et d'unicité font partie des résultats attendus.

Chaque script affiche ses tests puis un rapport JSON (versions, révisions, périmètre).

Ce que le contrôle établit

  • Écart de limites entre IKG (4 000) et SoVisu+ (2 000 ou 255) : un texte accepté par le graphe peut être refusé par SoVisu+.
  • Une erreur au milieu d'une écriture laisse la base dans un état partiel ; un instantané corrigé la répare.
  • Aucune protection contre le rejeu d'un état ancien.

Limites

  • Objets minimaux : ni contributions, ni sujets, ni relations.
  • Ni bus, ni traitements de SoVisu+, ni Apollo : la chaîne de synchronisation n'est pas exécutée.
  • Exécuté sous Node 22, alors que SoVisu+ déclare Node 24.

Et ensuite

Contrôle suivant : SoVisu+ sans la pile.

Révision lue : crisalid-ikg ebdaae75, SoVisuPlus 8e571657.

Last modified on