Corrections : niveau d'évaluation du prompt, tests instables sous Firefox et Chromium #60
@@ -1,49 +0,0 @@
|
||||
# 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.
|
||||
@@ -1816,6 +1816,12 @@ if (offline === "roll") {
|
||||
await page.click("#roll");
|
||||
await waitForPlayer();
|
||||
}
|
||||
// Si la partie reprise est finie, son bilan se rouvre au rechargement et
|
||||
// couvre l'écran (c'est voulu) : on le ferme avant d'ouvrir l'aide.
|
||||
if (await page.locator("#summary-veil").isVisible()) {
|
||||
await page.click("#summary-close");
|
||||
await page.waitForSelector("#summary-veil", { state: "hidden" });
|
||||
}
|
||||
await page.click("#help-button");
|
||||
await page.waitForSelector(".glossary dt", { state: "attached" });
|
||||
await page.click("#help-back");
|
||||
|
||||
Reference in New Issue
Block a user