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

87 lines
5.1 KiB
Markdown

# 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 :
```bash
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
```bash
# 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 » :
```bash
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.