# Défi : aligner `main` sur l'intention trunk + nettoyage CSS/JS > Énoncé : 2026-06-14, par Paul Schneider. > Statut : **ouvert**. ## Énoncé Atteindre, sur la branche `main` et en mode trunk, l'état intentionnel qui a déjà opéré sur la branche `themeok` (la référence). Concrètement : 1. **Libérer le dépôt de son code inutile** : retirer les assets vendor non utilisés (Quill, dropzone.min.css, jquery-ui si plus personne ne s'en sert, etc.) et tout ce qui n'est référencé nulle part dans le code applicatif. 2. **Bien nettoyer le CSS et le JS** : déplacer les vendor libs sous un régime cohérent (npm + esbuild), arrêter le double-tracking (fichiers versionnés + bundles esbuild), poser des conventions claires. 3. **À minima, ne pas casser** le JS et le CSS de `_Layout.cshtml`. C'est l'invariant non-négociable. 4. **Introduire immédiatement** des tests d'UI automatisés pour servir de garde-fou contre la régression, à chaque commit. ## Pourquoi maintenant `themeok` est devenu, dans la pratique, la branche de référence pour le look et le comportement front. `main` n'a pas reçu les commits correctifs de `themeok`, et son état est plus dégradé (caches navigateur, état runtime, scripts inline qui plantent sur du contenu vide). Tant que la divergence existe, on risque de : - cherry-picker à la main en ratant un commit, - ne pas voir une régression front parce qu'on ne teste pas en navigateur, - accumuler de la dette visuelle sur `main` jusqu'à un point de non-retour. ## État actuel ### `themeok` (référence, à 4 commits devant `main`) ``` ec8fd4b6 fix(cookies): set Identity cookies to SameSite=Lax in dev 76fef567 chore: remove Quill 379413f3 chore: snapshot of themeok branch as visual reference d71490f5 chore: stop tracking vendor lib files 31906a78 WIP : Js and css cleanup ← point de départ du WIP 30587248 ← ancêtre commun avec main ``` État du working tree : propre. `dotnet test` : 11/11 verts. Serveur dev local démarre sans warning (à part le certificat HTTPS de dev non trusted, sans gravité). ### `main` (à remettre au niveau) ``` 2a9760ca docs: roadmap à jour, archive TODO.fr 8f768240 WIP: refactoring pour déploiement 30587248 ← même ancêtre commun ``` État runtime connu : **look catastrophique** sur `http://localhost:5000`. Diagnostic (cf. [§ Résultats du diagnostic](#résultats-du-diagnostic)) : - Le HTML est rendu correctement, toutes les CSS et JS sont servies en HTTP 200. - Le "look catastrophique" vient du **contenu vide** (Home/Index n'a aucune section) et d'une **erreur JS** dans un script inline qui plante quand le carousel est vide. ### `refac/js-bundle` (suspendue) ``` fad7fc8d refac: remove jQuery + jQuery UI imports from datetime 79658c84 refac: remove vendor imports from chat entry 6455178b refac: load jQuery + Bootstrap as global scripts in _Layout ed7522c5 fix: drop nuget bootstrap and popper.js, npm bundles 196f4b0b chore: gitignore node_modules, build/, wwwroot/lib ``` Trois commits de migration jQuery-en-script-global. **Pas encore fusionnés dans `themeok` ni dans `main`**. À intégrer dans le plan, mais pas en première priorité. ## Résultats du diagnostic Reproduit en worktree `~/Workspace/yavsc-main/` sur branche `diag/main` (basée sur `main@2a9760ca`). ### Procédure ```bash git worktree add -b diag/main ../yavsc-main main cp ~/Workspace/yavsc/.env ~/Workspace/yavsc-main/.env # Forcer le port : appsettings de main contient # "Kestrel.Endpoints.Http.Url": "http://localhost:3002" qui entre # en conflit avec le port 5000 du dev settings. Override par env : cd ~/Workspace/yavsc-main/src/Yavsc.Org Kestrel__Endpoints__Http__Url=http://localhost:5060 \ Kestrel__Endpoints__Https__Url=https://localhost:5061 \ ConnectionStrings__YavscConnection="Server=localhost;Port=5432;Database=yavscdev;Username=yavscdev;Password=***" \ ASPNETCORE_ENVIRONMENT=Development \ dotnet bin/Debug/net10.0/Yavsc.Org.dll ``` > **Note de Paul** : la procédure d'install / dev principale > est en fait `cd contrib; make reinstall` (qui build en > Release, copie vers `/srv/www/yavsc/`, et gere le service > systemd `yavscOrg` sur port 3002). Le `dotnet run` direct > n'est qu'un raccourci de debug. Le diagnostic ci-dessus a > été fait en `dotnet run` sur un port libre (5060) parce que > le port 3002 etait deja occupe par le service systemd > existant. ### Fichiers servis (HTTP 200, taille correcte) | URL | Code | Taille | |--------------------------------------------------|------|---------| | `/lib/jquery-ui/jquery-ui.min.css` | 200 | 30770 | | `/lib/bootstrap.quartz.min.css` | 200 | 244113 | | `/css/site.css` | 200 | 3009 | | `/lib/jquery-ui/external/jquery/jquery.js` | 200 | 285314 | | `/lib/jquery-ui/jquery-ui.js` | 200 | 521054 | | `/lib/bootstrap/dist/js/bootstrap.bundle.min.js` | 200 | 80721 | | `/js/site.js` | 200 | 364 | | `/lib/bootstrap/js/carousel.js` | 200 | 7141 | ### HTML rendu (extrait du `
`) ```html