batchCooking/apps/web/src/features
Nicolas 5d4d6be2dc
Some checks failed
CI / lint (push) Successful in 6m25s
CI / intent-service-test (push) Successful in 5m1s
CI / build (push) Successful in 2m38s
CI / test (push) Failing after 11m54s
CI / e2e (push) Has been cancelled
feat(mobile): vérification automatique de mise à jour de version
Réutilise l'API Releases de Forgejo (publique, sans authentification) comme
source de vérité pour "quelle est la dernière version" — zéro nouvel
endpoint backend : useAppUpdateCheck compare App.getInfo().version
(@capacitor/app, nouvelle dépendance) au tag_name de
GET .../releases/latest, et pointe "Mettre à jour" vers l'URL stable de
téléchargement (issue #65).

Comparaison de version en logique pure (version-compare.ts), séparée du
hook effectful — testée isolément via un test de composant Cypress
(version-compare.cy.tsx, même patron que highlight-tech-steps.cy.tsx :
aucun montage, juste describe/it/expect sur des fonctions pures).

Natif uniquement (Capacitor.isNativePlatform()) : @capacitor/app et
@capacitor/preferences restent en import dynamique dans le hook, jamais
dans le bundle web (même patron que capacitor-token-store.ts) — vérifié
dans le build (deux petits chunks séparés, pas dans le bundle principal).

Vérification au démarrage à froid + à la reprise depuis l'arrière-plan
(appStateChange), avec un throttle de 6h et une mémorisation de la version
déjà rejetée dans @capacitor/preferences pour ne jamais re-harceler sur la
même version. Bannière discrète (pas une Dialog modale), bouton "Mettre à
jour" ouvrant le lien de téléchargement dans le navigateur système plutôt
qu'un flux PackageInstaller in-app.

Vérifié : pnpm lint, pnpm --filter web build, le test de composant (9/9),
et layout/smoke/planning-page e2e (18/18, la bannière étant un no-op sur
le web ne devait rien casser — confirmé).

Closes #66

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 10:52:35 +02:00
..
admin fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
app-update feat(mobile): vérification automatique de mise à jour de version 2026-09-06 10:52:35 +02:00
auth feat(web): page vitrine publique à la racine (#41) 2026-09-06 04:33:41 +02:00
house feat(recipes): première source concrète (TheMealDB) + icône de source 2026-08-20 11:16:13 +02:00
planning feat(web): passe responsive téléphone pour le contenu des pages (#39 phase 3) 2026-09-06 03:24:13 +02:00
profile feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 23:36:42 +02:00
recipes fix(recipes): rend StepDescription tolérant à un techSteps absent 2026-09-06 09:04:36 +02:00
theme fix: corrige les bugs ouverts du repo (import TheMealDB, sidebar mobile) + doc (#59) 2026-08-21 12:16:22 +02:00
tour feat(web): moteur de tutoriel guidé driver.js (#42) 2026-09-06 06:17:06 +02:00