Skip to content

Merge main dans env/staging (conformité Deezer) - #253

Merged
Oasis35 merged 9 commits into
env/stagingfrom
claude/project-thread-g9rga3
Oct 2, 2026
Merged

Oasis35 merged 9 commits into
env/stagingfrom
claude/project-thread-g9rga3

Conversation

@Oasis35

@Oasis35 Oasis35 commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

Before: env/staging n'avait pas la #251, mergée dans main (conformité aux conditions de l'API Deezer).

After: main est mergé dans env/staging. Le staging a désormais la mention « usage strictement privé » sur la page Confidentialité, le texte corrigé sur ce que reçoit Deezer et les stories sans pochette.

Les autres correctifs de main (#239, #241, #245, #246, #249, Brevo, gels) étaient déjà sur env/staging. Une fois le merge fait, ce qui change par rapport à env/staging est exactement le contenu de la #251 (17 fichiers).

How : les conflits venaient de fichiers que le staging a déjà réécrits (Vitest, Signal Forms, modale commune, bandeau DEV, emails sans préfixe [DEV]). Pour chacun, j'ai gardé la version staging et n'ai repris de main que les changements de la #251 : textes Confidentialité FR/EN, piège 47, doc des stories. Le test de la #251 qui vérifie l'absence d'image dans les stories était en syntaxe Jasmine : je l'ai passé en Vitest (mockReturnValue, toHaveLength). Les tests n'ont pas été lancés en local (version de Node trop ancienne dans le conteneur), c'est la CI qui les valide.

Oasis35 and others added 9 commits September 28, 2026 21:25
BrevoEmailSender remplace ResendEmailSender (API transactionnelle Brevo,
header api-key). Configuration Brevo:*, variable BREVO_API_KEY, page
confidentialité et doc mises à jour.
* Envoi des emails via Brevo au lieu de Resend (#196)

BrevoEmailSender remplace ResendEmailSender (API transactionnelle Brevo,
header api-key). Configuration Brevo:*, variable BREVO_API_KEY, page
confidentialité et doc mises à jour.

* Gel de série : retirer du compteur les gels déjà engagés sur une série protégée (#198)

La gélule du header affichait encore le stock en base (ex. 2) alors que l'accueil
annonçait qu'un gel avait sauvé la série : le stock n'est décrémenté qu'à la
complétion du défi. StreakView.Freezes déduit désormais les jours manqués en
statut protected, ce qui correspond au stock qui restera après la partie.
…ls cassé) (#239)

Tous les appareils d'un compte v1 partagent le même AuthToken : le faire
tourner à la déconnexion (M6, #179) déconnectait tous les autres appareils.
La déconnexion n'efface plus que le cookie de l'appareil courant.
… (#241)

Le bouton « Partager mon score » ne copiait parfois rien au premier clic :
navigator.clipboard.writeText rejette de façon intermittente (NotAllowedError,
« Document is not focused »). Sur rejet, ClipboardService retombe sur une copie
textarea + execCommand('copy') et remonte l'échec (sans le texte) à l'API.
* feat(admin): renommer un morceau du défi du jour depuis le pool

Retire le verrou RenameLock (409 track_locked) : le bouton ✎ est actif
sur toutes les lignes du pool, défi du jour compris. Les réponses déjà
enregistrées gardent leur verdict, les suivantes sont corrigées avec le
nouveau nom.

* feat(admin): avertissement dans la modale de renommage pour un morceau du défi du jour
Safari iOS émet `playing` dès l'appel à play(), avant que le son reparte,
sans second `playing` ensuite : le chrono d'arrêt coupait le palier à
l'aveugle (0,5s → 0,1s de son, voire aucun). Le chrono relit désormais
la position de lecture à son échéance et se reprogramme tant que le
palier n'est pas atteint ; rien ne coupe pendant un seek.
Bumps coverlet.collector from 10.0.1 to 10.1.0
Bumps WolverineFx from 6.40.0 to 6.43.0
Bumps WolverineFx.EntityFrameworkCore from 6.40.0 to 6.43.0
Bumps WolverineFx.FluentValidation from 6.40.0 to 6.43.0
Bumps WolverineFx.RuntimeCompilation from 6.40.0 to 6.43.0

---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
- dependency-name: coverlet.collector
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
- dependency-name: WolverineFx
  dependency-version: 6.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
- dependency-name: WolverineFx.EntityFrameworkCore
  dependency-version: 6.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
- dependency-name: WolverineFx.FluentValidation
  dependency-version: 6.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
- dependency-name: WolverineFx.RuntimeCompilation
  dependency-version: 6.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Conformité aux conditions de l'API Deezer

- Confidentialité : ajoute la mention obligatoire « usage strictement privé,
  dans le cadre familial » (art. IV des conditions Deezer) et corrige le
  passage qui affirmait que Deezer ne reçoit rien : le navigateur charge
  extraits et pochettes depuis les CDN Deezer, qui voient l'adresse IP.
- Stories Instagram : plus de pochette Deezer dans les images (Deezer
  interdit de stocker ses images). L'API du récap hebdo ne renvoie plus de
  coverUrl, une vignette note de musique la remplace.
- Doc : piège 47 (CLAUDE.md) et docs des stories.

Claude-Session: https://claude.ai/code/session_01B3wbknbbcPyZg2tJQRtvNX

* Spec stories : toHaveSize plutôt que length (Sonar S5906)

Claude-Session: https://claude.ai/code/session_01B3wbknbbcPyZg2tJQRtvNX

* docs(v2): lecteur audio Howler.js dans le plan et le plan de développement

AudioPort de la v2 sur Howler.js en Web Audio (décision du 01/10/2026),
CORS du CDN des extraits Deezer vérifié le 02/10/2026, CSP connect-src.
Fichiers repris de env/staging avec ces modifications.

* docs(v2): retire le plan v2 de cette PR (déplacé dans une PR vers env/staging)
Apporte la #251 (conformité aux conditions de l'API Deezer). Les autres
correctifs de main étaient déjà sur env/staging : conflits résolus en gardant
la version staging (Vitest, Signal Forms, bandeau DEV), spec des stories passé
en syntaxe Vitest.
@sonarqubecloud

sonarqubecloud Bot commented Oct 2, 2026

Copy link
Copy Markdown

@Oasis35
Oasis35 merged commit 93b8b39 into env/staging Oct 2, 2026
12 checks passed
@Oasis35
Oasis35 deleted the claude/project-thread-g9rga3 branch October 2, 2026 15:09
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