docs: tracer le trou de nav mobile (Engagements) et les dettes remontées par les audits#259
Merged
Merged
Conversation
@Thierry reported that /app/commitments is unreachable from the mobile navigation. Confirmed: the route exists and works, but it is referenced by no mobile surface at all — Header lists it behind hidden lg:flex, BottomTabBar and MoreSheet omit it entirely, and the only mobile way in is a dashboard card. So outside the cockpit, Engagements does not exist on mobile. Deliberately NOT patched: the mobile nav is redesigned as one block in Phase 1 of the UX program, and an isolated patch would be thrown away. @Thierry chose to wait and just wanted the issue on record. The finding worth keeping is the structural one: destinations are duplicated across three components with no shared contract, so nothing stops a new route from being added and one or two surfaces forgotten — which is exactly what happened here. Phase 1 gets an explicit expectation: a single destination registry plus a test that fails when a route under app/** is missing from it. Also records the URL-segment inconsistency (/glossaire in French, /app/* in English, no next-intl pathnames map) as an arbitration for @Thierry rather than a bug — localising URLs means SEO impact, permanent redirects and a pathnames table across five locales. Separately, docs/audits/ now carries the debts i18n-auditor and seo-geo-auditor surfaced during #258 and that were out of its scope: the unprefixed server redirects losing the locale (arbitrated, follow-up PR), the Settings language select that cannot save anything but fr-BE, and four pre-existing SEO canonical and sitemap bugs.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
🧙 Sourcery a terminé la revue de votre pull request ! Conseils et commandesInteragir avec Sourcery
Personnaliser votre expérienceAccédez à votre dashboard pour :
Obtenir de l’aide
Original review guide in English🧙 Sourcery has finished reviewing your pull request! Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Contributor
There was a problem hiding this comment.
Salut - j’ai passé en revue tes modifications et elles sont super !
Sourcery est gratuit pour l’open source - si nos revues te plaisent, pense à les partager ✨
Original comment in English
Hey - I've reviewed your changes and they look great!
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pourquoi
@Thierry a constaté que
/app/commitments(« Engagements ») est inatteignable depuis la nav mobile. Il a choisi de ne pas corriger à chaud : la nav mobile est refondue d'un bloc en Phase 1 du programme UX, un patch isolé serait jeté. Cette PR ne contient donc aucun changement de code — uniquement la trace, pour que le sujet entre dans le périmètre de la Phase 1 au lieu d'être redécouvert.Le trou, confirmé
La route existe et fonctionne, mais aucune surface de navigation mobile ne la référence :
Header.tsx(7 destinations)hidden … lg:flex→ desktop ≥ 1024 pxBottomTabBar(4 onglets)MoreSheetEngagementsCard(cockpit)Hors du cockpit, Engagements n'existe plus sur mobile.
Le constat qui compte
C'est structurel : les destinations sont dupliquées dans trois composants sans contrat commun. Rien n'empêche d'ajouter une route et d'oublier une ou deux surfaces — c'est exactement ce qui s'est produit. La Phase 1 reçoit donc une attente explicite : un registre unique de destinations, plus un test qui échoue si une route de
app/**n'y figure pas.Également tracé
docs/audits/2026-07-25-dettes-tracees-audits-i18n-seo.mdrecense ce quei18n-auditoretseo-geo-auditoront remonté pendant #258, hors de son périmètre :/appavec cookieenfaisait307 → /en/app, fait désormais307 → /login(français). ~9 sites dans les gardes auth et Server Actions.fr-BE(le<Select>proposefr-FR/en-GB, absents de l'enumLOCALES), et son action n'écrit ni le cookie ni ne revalide. Préexistant.noindexsoumises au sitemap, canoniques cross-locale sur la FAQ et les pages légales, glossaire qui se canonicalise vers l'accueil, locales non traduites indexables.llms.txtqui surestime le périmètre livré.Aucun n'est corrigé ici : étendre le scope d'une PR en vol est une action bannie par la doctrine.
Périmètre
Documentation uniquement — 2 fichiers, 0 ligne de code applicatif.
Summary by Sourcery
Documenter les problèmes connus d’UX et de SEO/i18n sans modifier le code de l’application afin de garantir qu’ils soient suivis et intégrés dans les travaux à venir.
Documentation :
Original summary in English
Summary by Sourcery
Document known UX and SEO/i18n issues without changing application code to ensure they are tracked and included in upcoming work.
Documentation: