Nouvelle partie directe après un bilan, bouton « Commencer », fiche « Notation des coups » #57

Manually merged
pierre merged 8 commits from nouvelle-partie-directe into main 2026-11-11 22:06:50 +00:00
Owner

Pourquoi

Le 2026-11-11, Pierre a relayé le retour d'un joueur : « Quand tu ouvres l'application, tu demandes une nouvelle partie, tu règles les paramètres. Et quand tu fais nouvelle partie […] tu te retrouves sur le résultat du match précédent et tu dois cliquer à nouveau sur nouvelle partie. » Pierre ajoute que « commencer » ou « démarrer » serait plus sympa.

Le nouveau test navigateur reproduit le défaut à coup sûr :

  1. finir une partie, avec son bilan ;
  2. rouvrir l'application ;
  3. passer de l'accueil à « Nouvelle partie », puis valider.

L'adresse finit sur #/parties//bilan au lieu de la nouvelle partie. Un débutant croit alors que sa demande n'a pas été prise en compte.

Par ailleurs, la session design a noté que la notation des coups (l'étoile de « 6/1* », le « (2) » des doubles) n'est expliquée nulle part.

Quoi

  • La nouvelle partie démarre tout de suite. Après une partie finie, valider l'écran « Nouvelle partie » mène à la nouvelle partie, sur le plateau, avec les réglages choisis. C'est vrai depuis l'accueil, depuis le menu et depuis « Changer les réglages » du bilan.
  • Libellé du bouton. Il dit « Commencer la partie », ou « Commencer le match » pour un match. La charte est mise à jour.
  • Nouvelle fiche « Notation des coups ». Elle explique 13/7, 24/22*, 6/off, bar/22 et 8/4(2). On l'ouvre en touchant le coup dans la ligne « L'ordinateur a joué … » ou dans la feuille du maître.

Comment

Le travail a été délégué à un sous-agent.

Cause du défaut. À chaque dessin de l'écran de jeu, reviewFinishedGame (app.ts) prévoit d'ouvrir le bilan de la partie finie dans une microtâche. Au moment de l'exécuter, la microtâche ne revérifiait que deux choses : l'adresse (#/) et le fait que le panneau n'avait pas été fermé. Elle ne vérifiait pas que la partie affichée était bien celle du bilan.

« Commencer » enchaînait ainsi :

  1. passage de l'adresse à #/ ;
  2. nouveau dessin de l'écran avec l'ancienne partie finie, ce qui prévoyait l'ouverture de son bilan ;
  3. démarrage de la nouvelle partie ;
  4. exécution de la microtâche, qui ouvrait l'ancien bilan par-dessus la nouvelle partie.

Le défaut n'apparaissait qu'à la réouverture de l'application : dans une même session, fermer le bilan le masquait.

Correction.

  • Le bilan ne s'ouvre que si la partie finie qui l'a demandé est encore celle de l'écran.
  • « Commencer » lance la partie avant de changer l'adresse.

Notation. Un type MoveNotation relie la fiche au code (ADR 0008), et ui/notation.ts fait du coup cité un lien.

Tests.

  • tests/browser/nouvelle-partie.mjs passe par les trois entrées : accueil, menu et bilan. Avant la correction, il échouait avec « adresse #/parties//bilan ». Après, il passe.

Vérification :

  • make lint : aucun problème ;
  • make test : 10/10 ;
  • make test-browser : suite complète au vert, sous Chromium et Firefox.

Choix et compromis

  • Lier le bilan à sa partie plutôt que masquer le bilan au démarrage d'une partie, ce qui n'aurait traité que le symptôme.
  • Libellé : « Commencer la partie » existait déjà en partie libre. Le bouton du match perd la longueur (« Commencer le match »), qui reste visible sur le sélecteur.
  • Portée de la notation touchable : seulement sur la ligne de l'ordinateur et dans la feuille du maître, pas encore dans le bilan ni dans l'analyse.
  • Fiche du glossaire : rédigée par Claude Code, à relire par Pierre.

Risques et déploiement

Seule l'interface change : ni le format des événements, ni le stockage, ni le moteur. L'ouverture automatique du bilan est plus stricte, et bilan.mjs la couvre toujours. Retour arrière : annuler la fusion.

Comment vérifier

make lint && make test && make test-browser
BROWSERS=chromium SCRIPTS=nouvelle-partie make test-browser

Sur le téléphone :

  1. Finir une partie, puis fermer et rouvrir l'application.
  2. Depuis l'accueil, ouvrir « Nouvelle partie », puis « Commencer » : la partie démarre directement.

Hors périmètre

  • La notation touchable dans le bilan et l'analyse.
  • Le libellé « Nouvelle partie » de l'accueil et du bilan.

Generated with Claude Code https://claude.com/claude-code

## Pourquoi Le 2026-11-11, Pierre a relayé le retour d'un joueur : « Quand tu ouvres l'application, tu demandes une nouvelle partie, tu règles les paramètres. Et quand tu fais nouvelle partie […] tu te retrouves sur le résultat du match précédent et tu dois cliquer à nouveau sur nouvelle partie. » Pierre ajoute que « commencer » ou « démarrer » serait plus sympa. Le nouveau test navigateur reproduit le défaut à coup sûr : 1. finir une partie, avec son bilan ; 2. rouvrir l'application ; 3. passer de l'accueil à « Nouvelle partie », puis valider. L'adresse finit sur #/parties/<ancienne partie>/bilan au lieu de la nouvelle partie. Un débutant croit alors que sa demande n'a pas été prise en compte. Par ailleurs, la session design a noté que la notation des coups (l'étoile de « 6/1* », le « (2) » des doubles) n'est expliquée nulle part. ## Quoi - **La nouvelle partie démarre tout de suite.** Après une partie finie, valider l'écran « Nouvelle partie » mène à la nouvelle partie, sur le plateau, avec les réglages choisis. C'est vrai depuis l'accueil, depuis le menu et depuis « Changer les réglages » du bilan. - **Libellé du bouton.** Il dit « Commencer la partie », ou « Commencer le match » pour un match. La charte est mise à jour. - **Nouvelle fiche « Notation des coups ».** Elle explique 13/7, 24/22*, 6/off, bar/22 et 8/4(2). On l'ouvre en touchant le coup dans la ligne « L'ordinateur a joué … » ou dans la feuille du maître. ## Comment Le travail a été délégué à un sous-agent. **Cause du défaut.** À chaque dessin de l'écran de jeu, `reviewFinishedGame` (app.ts) prévoit d'ouvrir le bilan de la partie finie dans une microtâche. Au moment de l'exécuter, la microtâche ne revérifiait que deux choses : l'adresse (#/) et le fait que le panneau n'avait pas été fermé. Elle ne vérifiait pas que la partie affichée était bien celle du bilan. « Commencer » enchaînait ainsi : 1. passage de l'adresse à #/ ; 2. nouveau dessin de l'écran avec l'ancienne partie finie, ce qui prévoyait l'ouverture de son bilan ; 3. démarrage de la nouvelle partie ; 4. exécution de la microtâche, qui ouvrait l'ancien bilan par-dessus la nouvelle partie. Le défaut n'apparaissait qu'à la réouverture de l'application : dans une même session, fermer le bilan le masquait. **Correction.** - Le bilan ne s'ouvre que si la partie finie qui l'a demandé est encore celle de l'écran. - « Commencer » lance la partie avant de changer l'adresse. **Notation.** Un type `MoveNotation` relie la fiche au code (ADR 0008), et `ui/notation.ts` fait du coup cité un lien. **Tests.** - `tests/browser/nouvelle-partie.mjs` passe par les trois entrées : accueil, menu et bilan. Avant la correction, il échouait avec « adresse #/parties/<id>/bilan ». Après, il passe. Vérification : - `make lint` : aucun problème ; - `make test` : 10/10 ; - `make test-browser` : suite complète au vert, sous Chromium et Firefox. ## Choix et compromis - **Lier le bilan à sa partie** plutôt que masquer le bilan au démarrage d'une partie, ce qui n'aurait traité que le symptôme. - **Libellé** : « Commencer la partie » existait déjà en partie libre. Le bouton du match perd la longueur (« Commencer le match »), qui reste visible sur le sélecteur. - **Portée de la notation touchable** : seulement sur la ligne de l'ordinateur et dans la feuille du maître, pas encore dans le bilan ni dans l'analyse. - **Fiche du glossaire** : rédigée par Claude Code, à relire par Pierre. ## Risques et déploiement Seule l'interface change : ni le format des événements, ni le stockage, ni le moteur. L'ouverture automatique du bilan est plus stricte, et `bilan.mjs` la couvre toujours. Retour arrière : annuler la fusion. ## Comment vérifier ``` make lint && make test && make test-browser BROWSERS=chromium SCRIPTS=nouvelle-partie make test-browser ``` Sur le téléphone : 1. Finir une partie, puis fermer et rouvrir l'application. 2. Depuis l'accueil, ouvrir « Nouvelle partie », puis « Commencer » : la partie démarre directement. ## Hors périmètre - La notation touchable dans le bilan et l'analyse. - Le libellé « Nouvelle partie » de l'accueil et du bilan. Generated with Claude Code https://claude.com/claude-code
pierre added 6 commits 2026-11-11 21:40:51 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reproduit le défaut signalé : après une partie finie, l'application
rouverte, « Commencer » de l'écran « Nouvelle partie » ramenait au bilan
de l'ancienne partie. Vérifie l'accueil, le menu et « Changer les réglages ».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le passage différé au bilan (reviewFinishedGame) ne vérifiait pas que la
partie finie était encore à l'écran : « Commencer » redessinait d'abord
l'ancienne partie finie (adresse #/), puis lançait la nouvelle, et la
microtâche ouvrait le bilan de l'ancienne par-dessus. Le bilan ne s'ouvre
plus que pour la partie finie encore affichée, et « Commencer » lance la
partie avant de changer d'adresse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La fiche explique 13/7, 24/22*, 6/off, bar/22 et 8/4(2), dans la notation
de gnubg. Le type MoveNotation la relie au code. Le coup de la ligne
« L'ordinateur a joué » et celui de la feuille du maître mènent à la fiche.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pierre added 2 commits 2026-11-11 22:02:30 +00:00
Conflits résolus en gardant les deux apports : la feuille du prompt et la
correction de reviewFinishedGame dans app.ts ; prompts et nouvelle-partie
dans tests/browser.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pierre manually merged commit 1f69635c49 into main 2026-11-11 22:06:50 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pierre/Ustagammon#57