feat(mobile): redirection vers l'appli + page de téléchargement #93
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mobile-app-redirect"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #84 — chantier "UI mobile & tablette".
Ce que ça change
Aucune infra de deep-link n'existait (vérifié en amont : pas de scheme
personnalisé, pas d'App Links, pas d'
assetlinks.json, pas de listenerappUrlOpen).lib/mobile-app-redirect.ts—attemptOpenNativeApp()(pattern"smart app banner" classique : tente le scheme
batchcooking://,bascule sur
onFallbacksi la page est toujours visible passé un courtdélai) et
isAndroidPhoneBrowser()(UAAndroid+Mobile, délibérémentdistinct de
useIsMobileViewport()— une question de plateforme, pas delargeur). Respecte une préférence "rester sur le web" (
localStorage,clé exportée pour que l'onglet Paramètres d'application — ticket #86 —
la réutilise) sans jamais forcer la redirection.
AndroidManifest.xml— nouvel<intent-filter>additif (schemebatchcooking), sans toucher au filtreMAIN/LAUNCHERexistant./telecharger(publique, horsRequireAuth— unvisiteur déjà connecté sur le web mais sans l'appli sur cet appareil a
une raison légitime d'y atterrir) : lien direct vers le proxy existant
${API_BASE_URL}/mobile/download(rien à changer côté API), bouton"Réessayer d'ouvrir l'application".
Délibérément pas de changement sur la landing page ici (son lien
discret actuel est laissé tel quel) — c'est le ticket #85, gardé séparé
pour rester petit et revuable.
Vérification
tsc -b --force+biome check— propres.pnpm --filter web build— propre.ici,
layout.cy.tsy est donc encore dans son état pré-#91 — normal, pasune régression) et composants : 69/69, incluant le nouveau
mobile-app-redirect.cy.tsx.vrai
window.location.hrefvers le scheme personnalisé depuisCypress/Electron, ce qui bloquait le runner indéfiniment (protocole
inconnu mal géré par Electron) — corrigé en rendant ce seul appel
injectable (
openAppUrl, réservé aux tests) sans toucher aucomportement réel.
🤖 Generated with Claude Code
intent-service-test a echoue cette fois sur actions/checkout lui-meme ("Non-terminating error while running 'git clone': some refs were not updated" puis "Cannot find module '.../actions-checkout@v4/dist/index.js'") - meme classe de collision de cache d'actions que les echecs precedents, juste une action differente touchee cette fois (voir ci-forgejo-runner-constraints). Ce ticket ne touche aucun fichier lie a ces actions.Cette fois : PrismaClientKnownRequestError "Foreign key constraint violated: tour_scenario_step_target_key_fkey" dans le beforeAll global (seedTourScenarios). Nouvelle variante de la meme famille connue (plusieurs process de test partageant une seule base Postgres CI, seed concurrent) plutot qu'un nouveau bug reel - ce ticket ne touche ni reference-seed-data.ts ni quoi que ce soit lie aux tours. Log complet aussi montre un timeout Docker au nettoyage du conteneur ("context deadline exceeded"), signe supplementaire de charge severe sur le runner en ce moment.