2.8 KiB
2.8 KiB
Parties enregistrées, branches et export SGF (1b)
- Date : 2026-11-03
- Étape : 1b (
docs/etape-1.md) - Statut : prévu (lancé après la fusion de 0e.1)
- Exécutant : sous-agent general-purpose, dans un worktree
Objectif
Garder toutes les parties du joueur sur le téléphone, avec leurs branches, et les exporter au format SGF de GNU Backgammon.
Consignes
ADR 0007 (domaine pur, stockage derrière une interface), ADR 0008 (scénarios et glossaire). Aucune nouvelle dépendance : l'API IndexedDB du navigateur directement.
- Stockage IndexedDB derrière l'interface de
app/src/storage/: une liste de parties (identifiant, date de début et de dernière action, adversaire et niveau, score, état en cours ou finie, résultat) et le journal d'événements de chacune. Migration transparente de la partie en cours enregistrée aujourd'hui danslocalStorage. Si IndexedDB est indisponible (navigation privée), repli sur le comportement actuel. - Branches : le journal est déjà un arbre (événements avec parent,
goBackTo). Exposer dans le domaine la liste des branches d'une partie (feuilles de l'arbre, avec le coup d'origine) et le passage de l'une à l'autre. « Rejouer d'ici » depuis un coup passé crée une branche ; la branche d'origine reste intacte et rechargeable. Pas d'écran d'analyse ici (1e) : un accès minimal suffit pour le test (menu « Mes parties » : reprendre une partie, voir ses branches). - Nouvelle partie annulable : l'arbitrage UX (plan
2026-11-03-revision-ux.md, point 3) prévoit « Reprendre l'ancienne » pendant 10 s. Fournir l'API de stockage qui le permet (reprendre une partie par son identifiant) ; l'interface viendra avec la révision UX. - Export SGF : une partie (et ses branches en variantes) au format SGF de GNU Backgammon, téléchargeable depuis « Mes parties ». Vérification par le gnubg de bureau de référence (Docker existant) : le fichier exporté se charge sans erreur et ses positions successives sont les mêmes que celles du journal, sur des parties générées par les tests.
- Scénarios Gherkin : reprendre une partie parmi plusieurs, rejouer d'ici sans perdre l'original, exporter une partie. Fiches du glossaire pour les nouveaux termes (branche, SGF…).
make lint, make test et make test-browser passent (ajouter au test
navigateur : deux parties enregistrées, reprise de la première après
rechargement). Commits fréquents ; pas de push ni de MR.
Critères de réussite
- Après rechargement, la liste des parties et chaque branche sont intactes.
- Un SGF exporté se charge dans gnubg de bureau avec les mêmes positions.
- Les trois commandes de test passent.
Résultat
À remplir à la clôture.