Files
librodrome/actes/2026-11-03-console-survol.md
T

5.1 KiB

Acte — Console de l'accueil : la graduation d'Yvv au survol

Classe : déploie Projet : librodrome Date : 2026-11-03 État : PRÉPARÉ (03/11, 05h58), par orch (session dev-63, mandat « déploie » inscrit du 03/11 au 08/11) ; attend la relecture neuve « 64e714c : ok »

Intention

Mettre en ligne la console de l'accueil selon la consigne d'Yvv du 03/11 : au survol, numérique monte à 3/4, économique à 1/2, citoyenne à 2/3. Chaque curseur reste à son cran, et un nouveau survol rejoue sa montée. Le panneau suit le même geste. Avant le premier geste, l'animation lente du 29/09 continue, et l'axe en avant monte à son cran, jamais au-dessus. Les consignes sont écrites mot pour mot dans docs/consignes-yvv.md. La première relecture (« 230f79a : à reprendre ») a été traitée par 03f763a et 64e714c.

Avant — prémisses vivantes

Sur le poste, dans /home/yvv/Documents/PROD/DEV/librodrome. L'attendu, relevé le 03/11 à 05h57, est en commentaire :

git fetch -q origin && git rev-parse origin/main       # P1 : 4057f50bd37fa8a3ba3ea9dc6c9c38d51d4f6434
                                                       #      sinon ARRÊT : quelqu'un a poussé
git merge-base --is-ancestor origin/main 64e714c1dde9897e46d36caf6cab737799081c96; echo $?   # P2 : 0
git diff --name-only origin/main 64e714c1dde9897e46d36caf6cab737799081c96 \
  | grep -E '(^|/)data/|\.env|\.db$|\.enc$|\.key$|\.pem$|id_rsa|id_ed25519|IDENTIFIANTS'; echo $?   # P3 : 1 (rien)
curl -4 -s 'https://ci.open.us.org/api/repos/1/pipelines?perPage=3' \
  | python3 -I -c 'import sys,json; [print(p["number"], p["status"]) for p in json.load(sys.stdin)]'   # P4 : « 59 success » en tête, rien en cours
curl -4 -s -o /dev/null -w '%{http_code}\n' https://librodrome.org/api/health   # P5 : 200
curl -4 -s https://librodrome.org/api/messages \
  | python3 -I -c 'import sys,json; print(len(json.load(sys.stdin)))'          # P6 : 1
ssh -o BatchMode=yes yvv@161.97.174.60 'docker diff lpk-librodrome-main-app-1 | grep -E " /app/(site|content)(/|$)"; echo $?; docker exec lpk-librodrome-main-app-1 sha256sum /app/data/messages.yml' </dev/null
# P7 : « 1 » (aucune édition /admin, que ce déploiement effacerait)
#      puis c8afc7de728fb9d57f6565a36b40f16fe7beb438768f8f9127183bea9569a6b8  /app/data/messages.yml

Une édition /admin trouvée en P7 arrête l'acte : elle doit d'abord passer dans git.

Relecture : ~/harness/etat/relectures.json doit porter « 64e714c : ok », d'un relecteur neuf.

Contenu sortant (git log origin/main..64e714c --stat, relevé le 03/11 à 05h57) :

64e714c console : l'animation monte l'axe en avant à son cran
03f763a console : graduation d'Yvv, la montée se rejoue à chaque survol
230f79a console : au survol, le curseur monte sans faire descendre les autres
89d5f83 actes : persistance des messages — preuve au déploiement suivant
 actes/2026-10-26-persistance-messages.md |  14 ++-
 app/components/home/HomeConsole.vue      | 166 ++++++++++++++++++++++++-----
 docs/consignes-yvv.md                    |  50 ++++++++++

Ni data/, ni site/, ni configuration, ni secret. Ce dossier n'est pas dans le push : il partira avec le déploiement suivant.

Commandes exactes

# 1. La mise en ligne : la poussée du SHA relu
cd /home/yvv/Documents/PROD/DEV/librodrome && for i in 1 2 3 4 5; do if git push -q origin 64e714c1dde9897e46d36caf6cab737799081c96:main; then break; fi; sleep 10; done

# 2. Attente du pipeline (environ 3 min)
for i in $(seq 1 40); do s=$(curl -4 -s -m 20 'https://ci.open.us.org/api/repos/1/pipelines?perPage=5' | python3 -I -c 'import sys,json; print(next((p["status"] for p in json.load(sys.stdin) if p["commit"].startswith("64e714c1dde9")), "absent"))'); echo "$(date +%T) $s"; case "$s" in success|failure|error|killed|declined) break;; esac; sleep 15; done
# attendu : success

# 3. Branche main locale sur la tête déployée (avance rapide seule ; main n'est extraite nulle part)
git -C /home/yvv/Documents/PROD/DEV/librodrome fetch . 64e714c1dde9897e46d36caf6cab737799081c96:main

Si le pipeline échoue, l'ancien conteneur continue de servir, sans changement : on ne relance rien, on rapporte.

Effet attendu

  • librodrome.org est reconstruit. Seule la console de l'accueil change de comportement. Les messages restent sur le volume librodrome-data, sans être touchés.
  • Irréversibilité : réversible (voir Retour).

Vérifications après

  • Pipeline du commit 64e714c1dde9 : success
  • P5 et P6 rejoués : 200, puis le même nombre de messages publiés
  • Sur sonic : messages.yml a la même empreinte qu'en P7, et le journal du conteneur n'a aucune ligne seed-messages
  • Vu de l'extérieur, sur https://librodrome.org, dans un navigateur sans tête : au survol d'économique, --level passe de 0 à 0,50 ; les deux autres ne bougent pas ; le panneau « Autonomie économique » s'affiche

Retour

Par un nouvel acte « déploie » :

git switch main && git revert --no-edit 64e714c1dde9897e46d36caf6cab737799081c96 03f763a 230f79a \
  && for i in 1 2 3 4 5; do if git push -q origin "$(git rev-parse HEAD)":main; then break; fi; sleep 10; done

Le retour ne touche ni le volume ni les messages.