Skip to content

feat: changelog « Nouveautés » in-app après les mises à jour - #4

Merged
sylvainDNS merged 3 commits into
mainfrom
002-app-changelog
Sep 27, 2026
Merged

sylvainDNS merged 3 commits into
mainfrom
002-app-changelog

Conversation

@sylvainDNS

Copy link
Copy Markdown
Owner

Résumé

Après une mise à jour, l'app annonce désormais ce qui a changé, en plus du toast « Mise à jour disponible » qui reste identique. Version 0.2.0.

  • Résumé « Quoi de neuf » : panneau qui monte du bas (Ark UI Drawer), affiché une seule fois par appareil au premier chargement d'une version contenant une Nouveauté ou une Amélioration. Les versions sautées sont regroupées ; les Corrections sont résumées par leur nombre. Il se ferme par bouton, glisser vers le bas, fond ou Échap. Uniquement sur les écrans connectés (jamais sur landing, login ou invitation).
  • Historique « Nouveautés » : page /profile/changelog, chargée à la demande, accessible depuis une ligne du profil. Elle indique la version utilisée et le build.
  • Pastille « non lu » : sur l'onglet Profil (barre du bas), le lien Profil (sidebar) et la ligne du profil, jusqu'à l'ouverture de l'historique.
  • Changelog embarqué : fichier typé écrit à la main, src/features/changelog/data/changelog.ts (0.2.0 et 0.1.0). Aucun appel serveur : l'état « vu / consulté » vit dans le localStorage de l'appareil.
  • Garde-fou de release : changelog.test.ts échoue si package.json#version et la tête du changelog divergent. Il tourne en CI et, nouveau, avant le build dans deploy.yml.

Autres commits de la PR :

  • docs(constitution) : constitution v1.1.0, règles « Releases et changelog » (bump semver + entrée de changelog dans la même PR). La routine est aussi décrite dans CLAUDE.md.
  • chore(design) : contexte impeccable (PRODUCT.md, DESIGN.md, .impeccable/), exclu de Biome ; .impeccable/config.local.json ignoré par git.

Spec, design brief, plan, contrat et tâches : specs/002-app-changelog/.

Vérifications

  • pnpm test : 162 tests (dont logique de décision, stockage, garde-fou version ↔ changelog, feuille, page, pastille)
  • tsc --noEmit et pnpm lint (aucune erreur, avertissements existants inchangés)
  • pnpm build : la feuille et la page historique sont dans des chunks séparés, non chargés au démarrage
  • Détecteur impeccable : aucune remarque
  • Test manuel en local (simuler une mise à jour : faircount.changelog.lastSeen = 0.1.0 dans le localStorage, puis recharger)

- Add Changelog feature with typed data and version/format libraries
- Add localStorage-based changelog state store with unread tracking
- Add "Quoi de neuf" (What's New) bottom sheet on app updates using Ark UI Drawer
- Add lazy-loaded /profile/changelog history page with full changelog entries
- Enhance Layout and BottomNav with unread indicator dot
- Add version↔changelog consistency gate test (runs before deployment)
- Bump version to 0.2.0
@github-actions

Copy link
Copy Markdown

🚀 Preview deployed!

URL: https://27af88af.faircount.pages.dev

@sylvainDNS
sylvainDNS merged commit 5a36671 into main Sep 27, 2026
3 checks passed
@sylvainDNS
sylvainDNS deleted the 002-app-changelog branch September 27, 2026 12:13
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