# Changelog — ObsiGate Toutes les modifications notables d'ObsiGate sont documentées dans ce fichier. Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/), et [Semantic Versioning](https://semver.org/spec/v2.0.0.html). > **En cours de développement** : les changements à venir sont listés dans la section > [Unreleased](#unreleased). La dernière version livrée est **2.22.0**. --- ## [Unreleased] --- ## [2.22.0] — 2026-09-23 ### Ajouté - **#113 — avatar utilisateur.** La section « Profil » des Configurations permet de **choisir / importer une image** (PNG, JPG, WEBP, 8 Mo max) : elle est recadrée en carré 256 px côté client, validée côté serveur (data-URL + octets magiques, sans SVG) et persistée sur le compte (`avatar` dans `data/users.json`, exposé par `GET/PATCH /api/auth/me` et la réponse de login). L'image s'affiche dans le **cercle du profil en bas de la sidebar** (initiales en repli) et peut être supprimée. UI : aperçu circulaire avec overlay caméra au survol, boutons Choisir / Supprimer, erreurs en ligne. Clés i18n FR/EN. ### Modifié - **#113 — ordre des sections Configurations.** La TOC et la page sont réorganisées dans un ordre naturel et **parfaitement synchronisées** : **Profil en premier**, puis Sécurité, Thèmes, Recherche, Historique récent, Tags, Fichiers cachés, Synchronisation, Backend, Diagnostics, IA, Sources connectées, Clés API & MCP, Push, Webhooks, Partages publics, Plugins et **À propos en dernier**. Les ancres `cfg-tags` et `cfg-partages-publics` sont désormais portées par leur `
` (cible de défilement = haut de section). Garde-fous : test statique `tests/frontend/settings-order-avatar.test.mjs` (ordre TOC = page, pas d'ancre morte). --- ## [2.21.0] — 2026-09-23 ### Ajouté - **#112 — section compte en bas de la sidebar.** L'identité (avatar avec initiales, nom, rôle) et la **déconnexion** sont regroupées dans un bloc épinglé au bas de la barre latérale, comme sur les sites professionnels ; un clic sur l'identité ouvre le Profil. Nouvelle clef i18n FR/EN pour le rôle. - **#112 — pellicule d'images défilable.** La molette de la souris fait défiler horizontalement la bande de miniatures et deux **flèches translucides** sur les côtés (révélées au survol) remplissent la même fonction. ### Modifié - **#112 — en-tête allégé.** La **version** quitte le header pour le menu **Options** (ligne « Version ») ; le **bouton de déconnexion** et le **nom de l'utilisateur** sont retirés du header au profit de la section compte de la sidebar. Le header droit ne conserve que l'indicateur hors-ligne, le contexte vault et le bouton Options. --- ## [2.20.0] — 2026-09-23 ### Ajouté - **#111 — visionneuse d'images : flèches latérales translucides.** Deux boutons superposés le long des bords du cadre passent à l'image précédente/suivante ; quasi invisibles au repos, ils se révèlent au survol (et restent visibles sur les appareils tactiles). Un compteur `n / total` complète la barre d'outils. ### Modifié - **#111 — navigation d'images fluide.** Changer d'image se fait désormais **en place** (`showSibling` remplace le `src` du ``) : plus de rechargement de la vue ni de nouvel appel `/api/browse` à chaque flèche, **même dans un dossier contenant beaucoup d'images**. La liste du dossier est mise en cache (TTL court) et les images voisines sont préchargées ; la **pellicule de miniatures reste visible** et la vignette active est simplement re-marquée. - **#111 — image toujours ajustée au cadre.** La visionneuse occupe tout l'espace disponible (zone de contenu en flex, sans défilement de page) et l'image est systématiquement redimensionnée dans son cadre, y compris panneau « Métadonnées » ouvert. --- ## [2.19.2] — 2026-09-23 ### Ajouté - **Lanceur E2E Windows/PowerShell** : `scripts/run-e2e-local.ps1` (+ script npm `test:e2e:ps`) reproduit localement le job CI `e2e` (uvicorn natif, auth désactivée, fixtures TestVault/TestDir, port 2029, projet `chromium-desktop`) sans dépendre de `bash` — indispensable sur les postes Windows où WSL ne démarre pas et où git-bash est bloqué par une politique de contrôle d'application. Le script `bash` reste la référence pour la CI/Linux. ### Corrigé - **BUG-072 — visionneuse d'images** : le plein écran (lightbox) et le panneau « Métadonnées » sont désormais **conservés lors de la navigation** entre images (flèches ←/→ et clic sur la pellicule) ; auparavant chaque changement d'image recréait la visionneuse et perdait ces états. Le panneau de métadonnées s'affiche maintenant en **barre latérale à droite de l'image** (au lieu d'une bande sous la pellicule) et reste visible en plein écran. --- ## [2.19.1] — 2026-09-23 ### Corrigé - **#110 — lisibilité et positionnement du lecteur média** : en mode mobile, la barre audio passe en grille (barre de progression pleine largeur sur sa propre ligne) et les actions secondaires (précédent/suivant/agrandir/volume) sont masquées pour éviter tout chevauchement ; le volume est aussi masqué sur les écrans intermédiaires en desktop, et `overflow: hidden` empêche le débordement hors de la pilule. La mini-fenêtre vidéo n'est plus ré-aimantée sur les bords : elle se déplace et se redimensionne **librement** (position absolue mémorisée, centre autorisé), le glisser fonctionnant désormais depuis n'importe quel point de la fenêtre (boutons/curseurs/poignée exclus, seuil de 4 px pour préserver les contrôles natifs de la vidéo). --- ## [2.19.0] — 2026-09-23 ### Ajouté - **#110 — Lecteur média persistant « Now Playing »** : les fichiers audio et vidéo continuent de jouer pendant la navigation grâce à un contrôleur global `frontend/js/now-playing.js` qui possède **un seul** élément `