Skip to content

feat: réglage « Confirmer avant de recycler » (suggestion n° 127) - #185

Merged
Palawizard merged 4 commits into
devfrom
feat/suggestion-127
Nov 3, 2026
Merged

Palawizard merged 4 commits into
devfrom
feat/suggestion-127

Conversation

@Palawizard

Copy link
Copy Markdown
Owner

Suggestion n° 127 · issue #184 · branche feat/suggestion-127

Résumé

Nouvelle option dans Paramètres > Confort, « Confirmer avant de recycler », enregistrée sur le compte et coupée par défaut. Activée, le bouton « Recycler » d'une carte tout juste tirée (ouverture de paquet, grille, pile sur téléphone et récapitulatif) ouvre une fenêtre de confirmation avant de recycler ; « Annuler » ne change rien. La collection (sélection multiple, « Recycler les doublons ») et la fiche carte demandaient déjà toujours confirmation : leurs fenêtres, comme la nouvelle, détaillent maintenant les cartes par rareté et le total de PW gagnés.

À trancher

Chaque point est déjà codé avec l'option recommandée (✅). Si elle te va, rien à faire : merge la PR. Pour en changer, réponds en commentaire, par exemple @claude 1 : Activée.

1. Valeur par défaut de l'option « Confirmer avant de recycler » ?

  • ✅ Désactivée (recommandé, déjà codé)
  • Activée

2. Où enregistrer la préférence ?

  • ✅ Sur le compte (tous les appareils) (recommandé, déjà codé)
  • Sur l'appareil seulement

3. Option coupée : garder les confirmations qui existaient déjà dans la collection et sur la fiche carte ?

  • ✅ Oui, toujours demandées (comportement actuel) (recommandé, déjà codé)
  • Non, l'option les gouverne aussi

4. Libellé du bouton de validation de la fenêtre ?

  • ✅ « Recycler (+N PW) », comme aujourd'hui (recommandé, déjà codé)
  • « Confirmer »

Changements

  • packages/db : colonne players.confirm_recycle (booléen, false par défaut) et migration 0052_confirm_recycle
  • packages/shared + apps/api/src/routes/core.ts : confirmRecycle dans MeDTO et dans PATCH /me/settings
  • packages/game/src/collection.ts : countByRarity (cartes d'un lot comptées par rareté), avec tests
  • apps/api/src/services/collection.ts : GET /collection/duplicates renvoie aussi le décompte par rareté
  • apps/web/src/components/RecycleBreakdown.tsx : détail rareté × nombre + total PW, réutilisé par les fenêtres de recyclage
  • apps/web/src/components/PackOpener.tsx : fenêtre de confirmation quand l'option est active
  • apps/web/src/app/(game)/collection/page.tsx et CardSheetView.tsx : détail par rareté dans les confirmations existantes (remplace la ligne « Commune = 1 PW, Légendaire = 1 000 PW »)
  • apps/web/src/app/(game)/settings/page.tsx : case « Confirmer avant de recycler » dans Confort ; page Confidentialité complétée
  • Tests : apps/api/test/collection.test.ts (réglage, décompte des doublons), apps/e2e/tests/01-coeur.spec.ts (annuler / confirmer / option coupée)

Migration

  • packages/db/migrations/0052_confirm_recycle.sql

Réponse proposée au joueur

C'est en ligne : dans Paramètres > Confort, coche « Confirmer avant de recycler » et chaque carte recyclée à l'ouverture d'un paquet te demandera confirmation, avec sa rareté et les PW gagnés. Dans la collection, la confirmation détaille aussi les cartes par rareté. Merci pour l'idée !

Ligne d'annonce

Paramètres : nouvelle option « Confirmer avant de recycler » pour éviter les recyclages par erreur à l'ouverture des paquets.

Vérifications

  • pnpm format
  • pnpm lint
  • pnpm typecheck
  • pnpm --filter @palacards/game test
  • vitest : test/collection.test.ts, test/economy.test.ts

Branche préparée automatiquement. Pour l'accepter : Squash and merge vers dev (le commit sera à ton nom). Pour demander une modification : un commentaire qui commence par @claude.

Option du compte (coupée par défaut) : le recyclage d'une carte tout juste
tirée passe par une fenêtre de confirmation. Les fenêtres de recyclage
détaillent désormais les cartes par rareté et le total de PW.
Les contextes ouverts par newPlayer restaient ouverts toute la suite ; leurs
pages ralentissaient les derniers parcours jusqu'au délai dépassé (portfolios).
@Palawizard
Palawizard marked this pull request as ready for review October 30, 2026 07:04
@Palawizard
Palawizard marked this pull request as draft November 3, 2026 13:34
@Palawizard

Copy link
Copy Markdown
Owner Author

@claude Mets la branche à jour avec dev : merge de dev dans la branche, puis renumérote la migration de cette PR après 0052_achievement_archives (supprime ta migration et son snapshot, relance pnpm --filter @palacards/db generate pour obtenir le même SQL sous le numéro suivant, journal à jour). Vérifie typecheck, lint et tests, puis commite.

@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Claude finished @Palawizard's task in 43s —— View job


Mise à jour avec dev : bloquée à la première étape

  • Merge de dev dans la branche : refusé par les permissions du workflow
  • Renuméroter la migration après 0052_achievement_archives : pas fait (il faut d'abord le merge)
  • typecheck, lint, tests : pas lancés
  • Commit : rien de commité

Je n'ai rien pu faire. Les permissions de ce job refusent git merge origin/dev (j'ai essayé avec et sans --no-edit) et git fetch origin dev. La référence origin/dev locale est quand même à jour : elle contient fa55c55, où se trouve 0052_achievement_archives.

Je n'ai pas fabriqué de merge à la main avec les commandes bas niveau de git, parce que ça reviendrait à contourner le refus. La renumérotation dépend du merge : sans les fichiers de migration de dev dans l'arbre, drizzle-kit generate attribuerait encore le numéro 0052 à la migration.

Conflit à prévoir : dev et cette branche modifient tous les deux packages/db/migrations/meta/0052_snapshot.json, meta/_journal.json et packages/db/src/schema.ts.

Pour débloquer : soit autoriser git merge (et git fetch) dans --allowedTools du workflow suggestion-followup, puis relancer @claude avec la même demande ; soit faire ces étapes toi-même en local :

git merge origin/dev
# en cas de conflit sur la migration, garder la version de dev pour meta/0052_snapshot.json et meta/_journal.json, et les deux côtés pour schema.ts
git rm packages/db/migrations/0052_confirm_recycle.sql
pnpm --filter @palacards/db exec drizzle-kit generate --name confirm_recycle   # → 0053_confirm_recycle.sql
pnpm typecheck && pnpm lint

Plus d'informations dans la FAQ.

@Palawizard
Palawizard marked this pull request as ready for review November 3, 2026 13:57
@Palawizard
Palawizard merged commit 7af7c10 into dev Nov 3, 2026
2 checks passed
@github-actions
github-actions Bot deleted the feat/suggestion-127 branch November 3, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant