diff --git a/docs/plans/2026-11-11-corrections-plis-firefox.md b/docs/plans/2026-11-11-corrections-plis-firefox.md new file mode 100644 index 0000000..e01af39 --- /dev/null +++ b/docs/plans/2026-11-11-corrections-plis-firefox.md @@ -0,0 +1,49 @@ +# Corrections : niveau des plis dans le prompt d'un coup, test Firefox instable + +- **Date** : 2026-11-11 +- **Étape** : 1f (suites) +- **Statut** : en cours +- **Exécutant** : sous-agent general-purpose + +## Objectif + +Le prompt d'un coup ne dit que ce que le moteur a calculé, au bon niveau, avec +les mêmes équités que l'application ; le test navigateur « mes parties » ne +dépend plus de la vitesse d'IndexedDB sous Firefox. + +## Consignes + +1. **Niveau d'évaluation dans le prompt d'un coup.** Le prompt + (`docs/prompts/coup.md`, `app/src/domain/prompts/`) dit en titre + « Classement de GNU Backgammon (analyse à 2 plis) », mais chaque ligne dit + « évalué à 1 pli » (ouverture 3-1 : « 8/5 6/5 : équité +0,204, écart 0,000, + évalué à 1 pli »). Trouver ce que vaut le champ `ply` des coups renvoyés par + le moteur (`engine.h`, `engine_best_moves`, commande `moves` d'engine-cli, + `rankMoves`) : décalage de convention, ou coups vraiment évalués à 1 pli, + auquel cas le classement n'est pas celui du conseil (`analyseMove`, 2 plis). + Vérifier que les équités du prompt sont celles de la feuille du maître et de + l'analyse (règle de 1f). Comparer au gnubg de bureau de référence. Corriger + la cause ; tester la cohérence du niveau du titre et des lignes, et + l'égalité des équités avec l'analyse. Si `engine.c` change (jamais + `engine/gnubg/`), recompiler une seule fois et ajouter une référence. +2. **Test instable sous Firefox.** `tests/browser/play.mjs` échoue parfois + sous Firefox, section « mes parties » (« la nouvelle partie n'a pas été + enregistrée », vers la ligne 1624) et passe à la relance. Déterminer s'il + s'agit d'un vrai défaut (sauvegarde perdue, course entre « nouvelle partie » + et l'enregistrement), à corriger dans l'app, ou d'un test qui lit trop tôt, + à corriger en attendant l'état observable plutôt qu'un délai. + +Limites : CSP stricte (aucun `.style.`), aucune nouvelle dépendance, `-j2` +au maximum, vérifier `docker ps` avant `make test-browser` (un autre agent +travaille en parallèle). + +## Critères de réussite + +- `make lint`, `make test`, `make test-browser` passent ; +- `SCRIPTS=play BROWSERS=firefox make test-browser` passe deux fois de suite ; +- un test vérifie la cohérence du niveau (titre et lignes) et l'égalité des + équités du prompt avec l'analyse. + +## Résultat + +Rempli à la clôture, dans la description de la merge request.