﻿# Catalyst - Changelog

Toutes les modifications notables de Catalyst sont suivies dans ce fichier.

## [2.0.5] - Fiabilisation des lanceurs PowerShell 7 de LAN Messenger et TransferBench

26 septembre 2026. Préparation de **Catalyst 2.0.5** à partir de la version **2.0.4**, validée et sauvegardée. Cette version harmonise les lanceurs VBS de **LAN Messenger**, de son **agent** et de **TransferBench** pour éliminer les replis vers Windows PowerShell 5.1 dans les interfaces concernées.

### Corrigé — lanceurs PowerShell 7
- `assets\tools\LanMessenger\Launch-LanMessenger.vbs` : suppression du repli vers `powershell.exe` 5.1 ; recherche de PowerShell 7 et contrôle de la version minimale **7.2**.
- `assets\tools\LanMessenger\Launch-LanMessengerAgent.vbs` : fiabilisation de la résolution de PowerShell 7 et de la gestion du cas où la version requise est indisponible, sans modifier le mécanisme de démarrage automatique de l'agent.
- `assets\tools\LanSpeedTest\Launch-LanSpeedTest.vbs` : remplacement du chemin unique suivi d'un repli vers 5.1 par une recherche de PowerShell 7 et un contrôle de version **7.2 minimum** ; conservation du mode **STA**.
- Recherche de PowerShell 7 dans son emplacement habituel, puis via les chemins disponibles ; message explicite si aucun exécutable compatible n'est trouvé.
- Aucun changement apporté aux scripts de maintenance pouvant encore utiliser Windows PowerShell 5.1, ni aux modules métier, au protocole réseau ou au splash screen principal.

### Corrigé — compatibilité Windows Script Host
- Une première version du correctif encodée en **UTF-8 avec BOM** provoquait l'erreur VBScript **800A0408** (« Caractère incorrect ») dès la ligne 1 des lanceurs LAN Messenger et TransferBench lors des essais depuis `C:\Catalyst-Source`.
- Réenregistrement des **trois lanceurs VBS en ASCII sans BOM**, avec fins de ligne **CRLF**, sans modifier leur logique fonctionnelle.
- Après correction de l'encodage, **tests de relancement depuis la source : OK** (retour utilisateur).

### Préparation et validation de la release 2.0.5
- Base de référence : **Catalyst 2.0.4**, compilation, installation, tests et sauvegarde finale **OK**.
- Correctif des lanceurs : **validé en mode source** après résolution de l'erreur d'encodage.
- Compilation de `CatalystSetup_v2.0.5.exe`, désinstallation de la 2.0.4, installation de la 2.0.5, redémarrage et tests de la version installée : **à effectuer**.
- À vérifier après installation : lancement autonome de LAN Messenger et TransferBench, démarrage automatique de l'agent LAN Messenger après redémarrage et fonctionnement réseau. Aucun résultat de ces tests post-installation n'est encore déclaré.

## [2.0.4] - Fiabilisation des raccourcis et verrouillage de la désinstallation

26 septembre 2026. **Catalyst 2.0.4** corrige le nettoyage des raccourcis AudioConverterEngine et empêche la désinstallation tant que l'application principale est ouverte. La build a été compilée, installée et testée avec succès.

### Corrigé — raccourcis AudioConverterEngine
- Complément des déclarations de l'installateur pour détecter et supprimer les raccourcis **Catalyst AudioConverterEngine** présents sur le Bureau utilisateur ou le Bureau public.
- Intégration d'AudioConverterEngine aux procédures de recherche et de suppression des raccourcis des outils lors de la désinstallation complète.
- Correction du cas où un ancien raccourci conservé après désinstallation empêchait la réapparition de l'action de création dans la page **Outils**.
- Conservation du comportement existant : la création d'un raccourci n'est pas proposée lorsqu'un raccourci équivalent existe déjà.

### Corrigé — désinstallation avec Catalyst ouvert
- Ajout d'un mutex d'application partagé entre **Catalyst** et **Inno Setup** pour détecter la présence de l'application principale pendant sa désinstallation.
- Blocage de la désinstallation tant que Catalyst est ouvert, avec demande de fermeture préalable ; aucun arrêt forcé du processus PowerShell n'est nécessaire.
- Maintien des contrôles existants relatifs aux fichiers verrouillés.

### Release Manager et packaging
- Adaptation de `Catalyst.ps1`, de `Packaging\CatalystSetup.iss` et de `Install\Catalyst.ReleaseManager.ps1` pour intégrer et conserver ces corrections lors de la génération des prochaines builds.
- Version de l'installateur : **2.0.4** (`CatalystSetup_v2.0.4.exe`).
- Conservation de l'architecture modulaire, des huit outils et du splash screen principal de Catalyst.

### Validation release — build 2.0.4
- Compilation de la build **2.0.4** : **OK**.
- Désinstallation de **Catalyst 2.0.3** : **OK**.
- Installation de **Catalyst 2.0.4** : **OK**.
- Redémarrage Windows : **OK**.
- Tests de la page **Outils** : **OK**.
- Tentative de désinstallation avec **Catalyst ouvert** : **OK**, désinstallation bloquée comme attendu.
- Suppression des raccourcis : **OK**.
- Résultats confirmés après installation par l'utilisateur ; aucun test supplémentaire de Diagnostic ou du Centre d'activité n'est déclaré ici.
- Sauvegarde finale de la build **2.0.4** : **OK** (confirmation utilisateur).

## [2.0.3] - Nettoyage des ressources obsolètes et consolidation de la source

26 septembre 2026. Préparation de **Catalyst 2.0.3** après l'audit des ressources héritées de la source 2.0.2. Le nettoyage a été réalisé manuellement, puis validé sur une build 2.0.2 de test avant le passage à la nouvelle version.

### Nettoyé — fichiers et dossiers obsolètes
- Retrait de `assets\styles\CatalystStyles.ps1`, ancien ensemble de styles dont les équivalents utilisés sont définis dans `assets\Catalyst.xaml`.
- Retrait de `assets\theme.psd1`, manifeste de thème sans utilisation identifiée dans la source auditée.
- Suppression des répertoires vides `assets\tools\CopyEngine\Assets` et `assets\tools\CopyEngine\Config` ; les icônes de CopyEngine restent centralisées dans `assets\icons`.
- Nettoyage ciblé, sans refonte de l'architecture modulaire ni modification fonctionnelle prévue des huit outils.

### Validation — build 2.0.2 de test après nettoyage
- Nettoyage manuel de la source : **effectué**.
- Compilation d'une build **2.0.2 de test** : **OK**.
- Désinstallation de la version précédente : **OK**.
- Installation de la build nettoyée : **OK**.
- Redémarrage Windows : **OK**.
- Tests après installation : **OK** (validation utilisateur).
- Sauvegarde de la build **2.0.2** de référence : **conservée**.

### Validation de la release 2.0.3
- Report du nettoyage validé dans la build **2.0.3**.
- Conservation du splash screen principal de Catalyst et de l'organisation des huit outils.
- Compilation de la build **2.0.3** : **OK**.
- Désinstallation de **Catalyst 2.0.2** : **OK**.
- Installation de **Catalyst 2.0.3** : **OK**.
- Redémarrage Windows : **OK**.
- Lancement de Catalyst et tests des outils : **OK**.
- Anomalies constatées après installation : raccourci AudioConverterEngine conservé après désinstallation et désinstallation possible alors que Catalyst restait ouvert. **Corrigées et validées en 2.0.4**.

## [2.0.2] - Nettoyage des splash screens des outils et stabilisation du lancement

25 septembre 2026. **Catalyst 2.0.2** intègre le nettoyage des splash screens des outils optionnels et les correctifs de lancement d’AudioConverterEngine. La nouvelle build 2.0.2 a été générée ; les validations fonctionnelles documentées ci-dessous ont été effectuées en mode source.

### Modifié — démarrage des outils optionnels
- Suppression des splash screens propres aux outils optionnels ; les fenêtres des outils concernés s’ouvrent désormais directement.
- Nettoyage des mécanismes de splash dans **AudioConverterEngine**, **CopyEngine**, **PhotoEngine** et **VideoConverterEngine**, y compris les lanceurs VBS et modules UI concernés.
- Retrait du paramètre `NoSplash` devenu inutile dans **Catalyst NAS Storage**.
- **LAN Messenger**, **TransferBench** et **Recette de poste** ne nécessitaient pas de suppression de splash actif.
- Dans `Modules\Catalyst.SystemTools.psm1`, suppression des propriétés `AddNoSplash` du catalogue et de la transmission de `-NoSplash` lors du lancement de secours.
- **Conservation du splash screen principal de Catalyst**, indépendant de ceux des outils.

### Corrigé — AudioConverterEngine
- Correction d’erreurs de syntaxe dans les déclarations `Export-ModuleMember` des cinq modules : `UI`, `State`, `Core`, `Runtime` et `Helpers`.
- Correction de l’export de `Get-AudioDuration` dans le module concerné.
- Rétablissement du lancement d’AudioConverterEngine après le nettoyage des splash screens, sans modifier ses cinq conversions audio ni son intégration au Centre d’activité.

### Vérification — page Outils et raccourcis
- Lancement des huit outils depuis la page **Outils** : **OK**, après correction d’AudioConverterEngine.
- Lancement autonome d’AudioConverterEngine via `pwsh.exe` : **OK**.
- Vérification de la logique existante de création des raccourcis : le bouton est masqué lorsqu’un raccourci équivalent existe déjà sur le Bureau utilisateur ou public. Les sept raccourcis des outils autonomes ont été détectés sur le Bureau public ; **Recette de poste** ne propose pas cette action. Aucun correctif nécessaire pour ce comportement.

### Audit final de Catalyst-Source
- Audit statique de l’archive source actuelle : **OK** ; aucune référence résiduelle aux splash screens dans les outils ou le catalogue central.
- Vérification de la présence du splash screen principal de Catalyst : **OK**.
- Vérification de la présence des huit composants optionnels dans Inno Setup : **OK**.
- Préflight exécuté sous **PowerShell 7.6.6** sur `C:\Catalyst-Source` :
  - **93 fichiers PowerShell** analysés, **0 erreur de syntaxe** ;
  - **12 fichiers XAML** XML bien formés ;
  - lanceurs et composants attendus : **OK** ;
  - **bilan : 13 OK, 0 avertissement, 0 erreur**.

### Build 2.0.2 et validation
- Compilation de la nouvelle build **Catalyst 2.0.2** et génération du package `CatalystSetup_v2.0.2.exe` : **effectuées**.
- Audit de la source et préflight PowerShell 7.6.6 : **13 OK, 0 avertissement, 0 erreur**.
- Lancement des huit outils depuis la page **Outils** et lancement autonome d’AudioConverterEngine : **validés en mode source**.
- Vérification des raccourcis Bureau existants et conservation du splash screen principal : **OK**.
- Les résultats d’installation de la build 2.0.2, du Diagnostic et du Centre d’activité sur la version installée, ainsi que la sauvegarde finale 2.0.2, ne sont pas encore consignés dans ce journal. La sauvegarde de référence **2.0.1** est conservée.

## [2.0.1] - AudioConverterEngine : conversion audio multiformat et intégration modulaire

25 septembre 2026. Intégration d’**AudioConverterEngine V0.2.3** comme huitième outil optionnel de **Catalyst 2.0.1**. La compilation, le remplacement de Catalyst 2.0.0 et les tests après installation ont été réalisés avec succès.

### Ajouté — AudioConverterEngine
- Création d’un huitième outil optionnel de conversion audio, basé sur **FFmpeg** et **FFprobe**, avec cinq conversions prises en charge :
  - **M4A → MP3** ;
  - **WAV → MP3** ;
  - **WAV → FLAC** ;
  - **MP3 → FLAC** ;
  - **FLAC → MP3**.
- Ajout de sélecteurs **Format source** et **Format de sortie**, limités aux combinaisons compatibles.
- Ajout des profils MP3 **VBR q0 / q2 / q4** et **CBR 320 / 192 kb/s**, ainsi que de la sortie FLAC avec compression sans perte supplémentaire.
- Ajout d’un avertissement explicite : la conversion **MP3 → FLAC** ne restaure pas les informations perdues lors de l’encodage MP3 initial.
- Prise en charge du traitement par lots, de l’inclusion facultative des sous-dossiers et de la conservation de leur arborescence.
- Conservation des originaux ; les fichiers de destination déjà présents sont ignorés pour éviter tout écrasement.
- Prise en charge des métadonnées et des pochettes intégrées compatibles avec le format cible.
- Ajout de l’aperçu des fichiers, de la progression par fichier et globale, de l’annulation, des résultats et des journaux techniques.
- Détection de `ffmpeg` et `ffprobe` avant le traitement.

### Interface et identité graphique
- Reprise de l’identité visuelle sombre bleu/cyan de **VideoConverterEngine**.
- Correction de la largeur des boutons **Parcourir** et de l’affichage des chemins longs.
- Harmonisation à **52 px** des champs de configuration, listes de formats, profils de qualité et boutons de parcours.
- Adaptation responsive de la fenêtre : les zones **Aperçu / Résultats** et **Logs** utilisent l’espace disponible ; leur défilement est local plutôt que global.
- Création d’un logo dédié cohérent avec la charte Catalyst, stocké de manière centralisée dans `assets\icons\AudioConverterEngine.png` ; adaptation du XAML et du module UI pour le charger depuis les répertoires source et installé.
- Le nettoyage global des splash screens des outils est documenté dans la section **2.0.2**.

### Architecture
- Création de `assets\tools\AudioConverterEngine\AudioConverterEngine.ps1` et de `Launch-AudioConverterEngine.vbs`.
- Architecture modulaire alignée sur **VideoConverterEngine**, avec :
  - `Modules\AudioConverterEngine.Core.psm1` ;
  - `Modules\AudioConverterEngine.Helpers.psm1` ;
  - `Modules\AudioConverterEngine.Runtime.psm1` ;
  - `Modules\AudioConverterEngine.State.psm1` ;
  - `Modules\AudioConverterEngine.UI.psm1` ;
  - `Views\AudioConverterEngine.MainView.xaml`.
- Développement dans `C:\Catalyst-Source` ; destination du composant installé : `C:\Program Files\Catalyst\assets\tools\AudioConverterEngine`.
- Résolution relative des ressources, afin de préserver les lancements autonome et intégré.

### Intégration dans Catalyst
- Ajout d’**AudioConverterEngine** au menu **Outils**, avec son logo, son identification et son lancement depuis Catalyst.
- Prise en charge de la création d’un raccourci Bureau depuis la page **Outils**.
- Ajout des contrôles de structure du composant et de ses dépendances au **Diagnostic Catalyst**.
- Raccordement au **Centre d’activité** via `Catalyst.ActivityBridge.psm1`, avec un événement de synthèse par lot indiquant les formats, le résultat et les comptes de fichiers traités, ignorés ou en échec.
- Intégration de l’outil comme **huitième composant optionnel** dans `Packaging\CatalystSetup.iss` et adaptation des contrôles du **Catalyst Release Manager**.
- Préparation d’une politique de disponibilité Windows Server alignée sur celle de VideoConverterEngine ; validation sur Windows Server encore requise.

### Validation en mode source
- Ouverture de la fenêtre WPF, identité graphique, logo centralisé et adaptation responsive : **OK**.
- Tests des cinq conversions M4A, WAV, MP3 et FLAC : **OK**.
- Présence dans le menu **Outils**, lancement depuis Catalyst et création du raccourci : **OK**.
- Conversion réelle **MP3 → FLAC** depuis Catalyst : **OK**.
- Événement correspondant dans le **Centre d’activité** : **OK**, 1 fichier converti, 0 échec, 0 ignoré.
- **Diagnostic Catalyst** en mode source : **55 OK, 0 Attention, 0 Erreur**.

### Validation release — première compilation Catalyst 2.0.1
- Compilation de la **build 2.0.1** : **OK**.
- Désinstallation de **Catalyst 2.0.0** : **OK**.
- Installation de **Catalyst 2.0.1** : **OK**.
- Redémarrage Windows après installation : **OK**.
- Lancement de Catalyst 2.0.1 et tests effectués après installation : **OK**.

### Correctifs de présentation après installation — intégrés à la recompilation 2.0.1
- Harmonisation des badges de taille de la page **Outils** dans `Modules\Catalyst.SystemTools.psm1` :
  - **AudioConverterEngine** : remplacement du libellé provisoire **Prototype** par la taille réelle mesurée de son dossier ;
  - **Catalyst NAS Storage** : remplacement du libellé **Module intégré** par la taille réelle mesurée de son dossier.
- Les deux corrections d’affichage ont été vérifiées dans Catalyst 2.0.1 : **OK**.
- Aucun changement fonctionnel n’est apporté aux moteurs de conversion audio ni à la supervision NAS.
- Ces corrections ont été intégrées à la recompilation de **Catalyst 2.0.1** ; la compilation, l’installation, les contrôles après installation et la sauvegarde finale ont été réalisés avec succès.

### Contrôles complémentaires restant à documenter
- Tester séparément l’ajout, la réparation et le retrait d’AudioConverterEngine depuis une installation existante, sans supprimer le cœur Catalyst.
- Valider la politique de disponibilité sur **Windows Server** et consigner la recette de non-régression détaillée des sept autres outils.
- Vérifier les événements d’interruption et d’échec d’une conversion en conditions réelles.
- Les validations de la build 2.0.1 installée, des raccourcis, du Diagnostic, du Centre d’activité et de la sauvegarde finale ont été confirmées ; les scénarios complémentaires ci-dessus restent distincts de ces contrôles.

## [2.0.0] - Interface adaptative et installation modulaire

### Interface utilisateur
- Harmonisation des icônes du menu et des pages principales.
- Ajout et correction de l’affichage des icônes pour **Inventaire**, **Centre d’activité** et **Diagnostic**.
- Ajout de synthèses sur les pages **Bloatwares**, **Logiciels** et **Personnalisation** afin de présenter immédiatement les informations clés de chaque vue.
- Conservation des comportements métier déjà validés ; les changements d’interface restent visuels et ergonomiques.

### Dashboard adaptatif
- Le Dashboard adapte désormais ses cartes à la largeur réellement disponible.
- Les grilles basculent automatiquement sur **3, 2 ou 1 colonne** selon la taille de la fenêtre.
- La zone **Stockage** se redistribue selon le nombre réel de lecteurs détectés.
- La barre latérale est compactée pour éviter un défilement vertical inutile sur les résolutions de bureau usuelles.
- Le défilement du Dashboard reste disponible lorsqu’il est réellement nécessaire.

### Installation modulaire
- L’installateur Inno Setup distingue désormais le **Catalyst principal**, toujours installé, et les outils optionnels.
- Les composants optionnels peuvent être sélectionnés individuellement :
  - Catalyst CopyEngine ;
  - Catalyst PhotoEngine ;
  - Catalyst VideoConverterEngine ;
  - Catalyst LAN Messenger ;
  - Catalyst TransferBench ;
  - Catalyst NAS Storage ;
  - Recette de poste.
- Les raccourcis Bureau des outils sont liés aux composants réellement installés.
- Le Setup conserve localement une copie de l’installateur afin de permettre l’ajout, le retrait ou la réparation ultérieure d’un composant.
- L’état des composants installés est enregistré sous `HKLM\SOFTWARE\BDSLab\Catalyst\Components`.

### Gestion des composants depuis Catalyst
- La page **Outils** connaît désormais l’état réel de chaque composant : **Installé**, **Non installé**, **À réparer** ou **Non disponible**.
- Un composant absent et compatible peut être installé directement depuis Catalyst.
- Un composant endommagé peut être réparé depuis Catalyst.
- Un composant installé peut être désinstallé sans supprimer le cœur de Catalyst.
- Catalyst se ferme avant l’appel au Setup puis se relance automatiquement à la fin de l’opération.
- Le retrait d’un outil actualise correctement son état et nettoie ses raccourcis associés.
- La création manuelle d’un raccourci depuis la page Outils est masquée lorsqu’un raccourci équivalent existe déjà.
- La désinstallation complète nettoie également les doublons et raccourcis d’outils créés manuellement.
- La navigation de **Recette de poste** revient correctement vers la page **Outils** sans délai ni vue résiduelle.

### Windows Server et LAN Messenger
- Lors de l’ajout initial de **LAN Messenger** sur une édition Windows cliente compatible, le Setup propose un redémarrage afin de finaliser son environnement.
- Une opération ultérieure sur un autre composant ne redemande pas de redémarrage lorsque LAN Messenger était déjà installé.
- Le retrait de LAN Messenger ne force pas de redémarrage.
- Sur **Windows Server**, **PhotoEngine**, **VideoConverterEngine** et **LAN Messenger** sont explicitement déclarés non disponibles.
- Dans le Setup, ces trois composants restent décochés, sont désactivés et ne peuvent pas être sélectionnés.
- Dans la page **Outils**, ils restent visibles avec l’état **Non disponible** et aucune action d’installation, de réparation ou d’exécution n’est proposée.
- Le moteur bloque également une tentative d’installation ou de lancement indirecte d’un composant non pris en charge.
- Le comportement des autres composants compatibles avec Windows Server reste inchangé.

### Diagnostic modulaire
- Le Diagnostic ne considère plus les outils optionnels comme obligatoires pour reconnaître une installation Catalyst valide.
- Un composant volontairement non installé est signalé en **Info / non applicable** au lieu de générer de faux états **Attention** ou **Erreur**.
- Un composant **Non disponible** sur Windows Server est traité comme un état normal et non comme une anomalie.
- Les contrôles spécifiques à LAN Messenger ne sont exécutés que lorsque le composant est présent et pris en charge.
- Les contrôles `ffmpeg`, `ffprobe` et `mkvpropedit` liés à VideoConverterEngine deviennent non applicables lorsque le composant n’est pas disponible sur Windows Server.
- TransferBench est traité comme un composant indépendant et n’introduit plus de contrôle parasite dans le Diagnostic LAN Messenger.
- Les validations réalisées sous **Windows 11** et **Windows Server** confirment l’absence de régression sur la gestion des outils.

### Correctif prépublication — prérequis PowerShell 7
- Validation complémentaire réalisée sur une **installation propre de Windows 11**, hors domaine puis après intégration à un domaine Active Directory.
- Confirmation que **Windows PowerShell 5.1 seul n’est pas suffisant** pour exécuter Catalyst 2.0.0 ; certains modules utilisent des syntaxes propres à PowerShell 7.
- Le point d’entrée `Catalyst.ps1` déclare désormais explicitement :
  - `#Requires -Version 7.2`.
- Correction de `Launch-Catalyst.vbs` :
  - recherche prioritaire de `%ProgramFiles%\PowerShell\7\pwsh.exe` ;
  - fallback vers `pwsh.exe` résolu par le `PATH` / les alias d’exécution Windows ;
  - suppression du fallback trompeur vers `powershell.exe` 5.1 ;
  - contrôle explicite de PowerShell 7.2 ou version ultérieure ;
  - message utilisateur clair lorsque le prérequis est absent ou trop ancien.
- Le cas **PowerShell 7 installé via WindowsApps** est désormais pris en charge.
- `CatalystSetup.iss` contrôle désormais la présence de **PowerShell 7.2 minimum avant installation** et interrompt proprement le Setup si le prérequis n’est pas satisfait.
- Le **Catalyst Release Manager** maintient ce contrôle dans le script Inno Setup généré et vérifie également la cohérence de `Catalyst.ps1` et de `Launch-Catalyst.vbs`.
- Les tests ont confirmé que :
  - l’intégration ou non au domaine n’est pas à l’origine du problème ;
  - la désactivation de l’UAC ne corrige pas le lancement ;
  - le lancement direct par `pwsh.exe -NoProfile -ExecutionPolicy Bypass -File Catalyst.ps1` fonctionne avec PowerShell 7.6.6 ;
  - le lanceur Catalyst corrigé démarre correctement l’application.
- Une nouvelle compilation et une recette finale de `CatalystSetup_v2.0.0.exe` sont requises après intégration de ce correctif.

### Version et packaging
- Passage officiel du numéro global de Catalyst à **2.0.0**.
- Synchronisation des versions affichées par Catalyst et ses outils distribués.
- `CatalystSetup.iss` utilise désormais `MyAppVersion = "2.0.0"` et produira `CatalystSetup_v2.0.0.exe` lors du build final.
- La cible par défaut du **Catalyst Release Manager** passe à **2.0.0**.
- Le Release Manager synchronise désormais aussi la version de `Catalyst.ps1`, `Catalyst.Core.psm1` et la version affichée dans la StatusBar, afin d’éviter les références résiduelles lors des releases suivantes.

### Validation
- La bascule 2.0.0, l’installation modulaire et la politique des outils Windows Server ont été validées sur **Windows 11** et **Windows Server**.
- Une recette complémentaire sur installation propre de Windows 11 a mis en évidence le prérequis PowerShell 7 et le défaut de détection du launcher historique.
- Le lancement direct avec `pwsh.exe` et le launcher corrigé ont été validés.
- La recompilation de `CatalystSetup_v2.0.0.exe` et la recette finale après intégration du correctif PowerShell 7.2 restent à effectuer.

## [1.8.5] - Compatibilité Windows Server

### Ajouté
- Ajout de la détection explicite du type de système Windows afin de distinguer :
  - les éditions Windows client ;
  - les éditions Windows Server.
- `Modules\Catalyst.Core.psm1` expose désormais dans les informations système :
  - `ProductType` ;
  - `IsServer`.
- La détection réutilise l’objet `Win32_OperatingSystem` déjà collecté par `Get-SystemInfo`.
- Aucune nouvelle requête CIM n’est ajoutée au démarrage de Catalyst.

### Bloatwares sur Windows Server
- La fonction **Bloatwares** est désormais désactivée automatiquement lorsque Catalyst détecte une édition Windows Server.
- Le bouton **Bloatwares** reste visible dans le menu latéral mais apparaît grisé.
- Une infobulle indique que la gestion des bloatwares n’est pas disponible sur Windows Server.
- Le bouton est désactivé par défaut dans le XAML puis activé explicitement uniquement sur une édition Windows client.
- La navigation vers `BloatwaresView` est également protégée côté moteur de navigation afin d’empêcher un appel indirect de la page.
- Cette protection évite l’initialisation de la logique AppX sur les éditions Windows Server où son comportement peut être incompatible avec PowerShell 7.
- Aucun changement n’est apporté :
  - au moteur `Catalyst.Bloatwares.psm1` ;
  - au module `Catalyst.BloatwaresUI.psm1` ;
  - à la logique de détection ou de suppression des applications sur Windows client.

### Compatibilité Windows Server 2022
- Validation de Catalyst sur **Windows Server 2022 Desktop Experience** avec WinGet installé.
- Installation de Catalyst : **OK**.
- Lancement : **OK**.
- Navigation générale : **OK**.
- Installation de logiciels compatibles via WinGet : **OK**.
- Personnalisation : **OK**.
- Inventaire : **OK**.
- Centre d’activité : **OK**.
- Diagnostic : **OK**.
- Bloatwares :
  - bouton grisé : **OK** ;
  - infobulle explicative : **OK** ;
  - ouverture de la page impossible : **OK** ;
  - absence de crash Catalyst : **OK**.

### Limitation externe identifiée
- **TreeSize Free** n’est pas compatible avec Windows Server 2022 dans sa version gratuite actuelle.
- L’installeur de l’éditeur indique qu’une édition payante est nécessaire sur Windows Server.
- Cette limitation est propre à TreeSize Free et ne constitue pas un défaut de Catalyst ni de WinGet.

### Non-régression Windows 11
- Détection correcte d’une édition Windows client : **OK**.
- Bouton **Bloatwares** actif : **OK**.
- Ouverture de la page Bloatwares : **OK**.
- Fonctionnement Bloatwares inchangé : **OK**.
- Navigation générale : **OK**.

### Architecture
- La détection Windows Server est centralisée dans les informations système Catalyst.
- La disponibilité de la fonction Bloatwares est appliquée dans l’interface.
- Un second garde-fou est appliqué dans `Catalyst.Navigation.psm1`.
- Le moteur Bloatwares reste réservé à son fonctionnement existant sur Windows client.
- La stabilisation du démarrage introduite dans les versions précédentes reste inchangée.
- Aucun nouveau composant tiers, pilote ou service n’est ajouté.

### Corrigé — menu latéral
- Correction de l’apparition d’un défilement vertical inutile dans le menu latéral lorsque la carte **Température CPU** est affichée.
- Le menu latéral est légèrement compacté afin que les quatre mini-cartes système restent visibles sur la résolution de bureau habituelle :
  - Uptime ;
  - Services actifs ;
  - Utilisateur ;
  - Température.
- Réduction ciblée :
  - du padding vertical des boutons du menu ;
  - des marges du bloc logo / titre ;
  - de l’espace avant la navigation ;
  - des marges du séparateur ;
  - de la marge basse des mini-cartes système.
- Le `ScrollViewer` du menu latéral conserve `VerticalScrollBarVisibility="Auto"` afin de préserver le défilement sur les résolutions plus petites ou avec une mise à l’échelle Windows élevée.
- Aucun changement n’est apporté :
  - à la navigation ;
  - à la logique des boutons ;
  - à la collecte ou à l’affichage de la température ;
  - aux modules PowerShell ;
  - aux autres vues Catalyst.


### Ajouté — accès au site public depuis le logo Catalyst
- Le logo **Catalyst** situé en haut du menu latéral devient cliquable.
- Un clic gauche sur le logo ouvre directement le site public :
  - `https://catalyst-bdslab.fr`.
- L’ouverture est déléguée au shell Windows afin d’utiliser le navigateur configuré par défaut.
- Le comportement visuel existant du logo est conservé :
  - curseur main ;
  - animation au survol ;
  - rendu graphique inchangé.
- Ajout d’une infobulle :
  - **Ouvrir le site public Catalyst**.
- Le XAML reste purement déclaratif :
  - le conteneur du logo reçoit uniquement le nom `SidebarLogoLink`.
- Le handler est attaché dans `Modules\Catalyst.UI.psm1` après le chargement de la fenêtre.
- L’ouverture du site utilise `System.Diagnostics.ProcessStartInfo` avec `UseShellExecute = $true`.
- Aucun changement n’est apporté :
  - à `Modules\Catalyst.Navigation.psm1` ;
  - au menu Hamburger ;
  - au Dashboard ;
  - aux moteurs Catalyst ;
  - au démarrage de l’application ;
  - aux données utilisateur.

### Fichiers modifiés
- `Modules\Catalyst.Core.psm1` ;
- `Modules\Catalyst.UI.psm1` ;
- `Modules\Catalyst.Navigation.psm1` ;
- `assets\Catalyst.xaml` ;
- `Install\Catalyst.ReleaseManager.psm1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Release Manager
- La cible par défaut du Release Manager passe à `1.8.5`.
- Les contrôles de build existants sont conservés.
- Le numéro de version global est synchronisé sur `1.8.5`.

### Packaging
- `CatalystSetup.iss` passe en version `1.8.5`.
- Le fichier généré est :
  - `CatalystSetup_v1.8.5.exe`.
- Aucun nouveau composant tiers, pilote ou dépendance externe n’est ajouté au package.

### Validation
- Preflight du correctif ServerCompat : **OK**.
- Vérification syntaxique PowerShell : **OK**.
- Vérification syntaxique XAML : **OK**.
- Test fonctionnel du correctif sur Windows Server 2022 : **OK**.
- Test de non-régression sur Windows 11 : **OK**.
- Compilation de `CatalystSetup_v1.8.5.exe` : **OK**.
- Installation et lancement de la build finale sur Windows 11 : **OK**.
- Installation et lancement de la build finale sur Windows Server 2022 : **OK**.
- Validation finale de la navigation et de la disponibilité conditionnelle de Bloatwares : **OK**.
- Correction visuelle du menu latéral avec la carte **Température CPU** affichée : **OK**.
- Absence de scrollbar verticale sur la résolution de bureau habituelle après compactage : **OK**.
- Conservation du `ScrollViewer` automatique comme fallback sur fenêtre plus basse / mise à l’échelle élevée : **OK**.
- Nouvelle compilation de `CatalystSetup_v1.8.5.exe` après cette correction visuelle : **OK**.
- Logo Catalyst cliquable dans le menu latéral : **OK**.
- Infobulle **Ouvrir le site public Catalyst** : **OK**.
- Ouverture de `https://catalyst-bdslab.fr` dans le navigateur Windows par défaut : **OK**.
- Animation et comportement visuel du logo après ajout du lien : **OK**.
- Navigation principale et menu Hamburger après ajout du lien : **OK**.


## [1.8.4] - Centre d’activité Catalyst

### Ajouté
- Ajout d’une nouvelle page **Centre d’activité** directement dans le menu principal de Catalyst.
- Ajout du moteur dédié :
  - `Modules\Catalyst.Activity.psm1`.
- Ajout du module d’interface :
  - `Modules\Catalyst.ActivityUI.psm1`.
- Les événements sont enregistrés au format JSONL dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\State\Activity\Activity_YYYYMMDD.jsonl`.
- Le moteur prend en charge les niveaux :
  - `Info` ;
  - `Success` ;
  - `Warning` ;
  - `Error`.
- Chaque événement structuré peut contenir :
  - identifiant ;
  - horodatage local et UTC ;
  - source ;
  - catégorie ;
  - niveau ;
  - action ;
  - résultat ;
  - détail ;
  - chemin ;
  - poste ;
  - utilisateur ;
  - processus ;
  - métadonnées.
- Ajout d’une lecture résiliente :
  - les lignes JSONL invalides sont ignorées sans bloquer la page ;
  - les écritures Activity restent non bloquantes par défaut.
- Ajout d’un mutex de session local afin de sérialiser les écritures Activity concurrentes.
- Ajout d’un pont léger pour les outils autonomes :
  - `assets\tools\_shared\Catalyst.ActivityBridge.psm1`.
- Le bridge ne charge pas le moteur Activity lors de son import.
- `Catalyst.Activity.psm1` est résolu et chargé uniquement lors d’une écriture explicite d’un outil autonome.

### Interface Centre d’activité
- Ajout du bouton **Centre d’activité** dans le menu latéral.
- Ajout de la vue native :
  - `ActivityView`.
- Ajout de cartes de synthèse :
  - Total ;
  - Success ;
  - Info ;
  - Warning ;
  - Error.
- Ajout de filtres :
  - période ;
  - source ;
  - niveau.
- Ajout d’un bouton :
  - **Actualiser**.
- La page ne s’actualise pas automatiquement.
- Les données Activity sont lues uniquement :
  - lors de l’ouverture explicite du Centre d’activité ;
  - lors d’un clic sur **Actualiser**.
- La navigation vers la page n’exécute aucune opération métier affichée dans l’historique.
- L’initialisation du module UI attache uniquement les handlers nécessaires et ne lit pas le store Activity.

### Couverture des opérations Catalyst
- **Diagnostic Catalyst** :
  - Diagnostic terminé ;
  - Diagnostic interrompu ;
  - le recontrôle post-réparation génère naturellement le nouvel événement Diagnostic correspondant.
- **Inventaire** :
  - Inventaire terminé ;
  - Inventaire interrompu.
- **System Snapshot** :
  - Snapshot créé ;
  - Création Snapshot interrompue ;
  - Snapshot supprimé ;
  - Suppression Snapshot interrompue.
- **CopyEngine** :
  - Copie terminée ;
  - Copie interrompue ;
  - Erreur worker CopyEngine.
- **PhotoEngine** :
  - Renommage terminé avec niveau adapté au résultat réel.
- **VideoConverterEngine** :
  - Traitement terminé ;
  - Traitement interrompu.
- **Catalyst LAN Messenger** :
  - Message envoyé ;
  - Message reçu ;
  - remontée des échecs d’envoi.
- **Catalyst TransferBench** :
  - Benchmark terminé ;
  - Benchmark interrompu.
- **Logiciels** :
  - Installation terminée ;
  - Installation interrompue.
- **Bloatwares** :
  - Désinstallation terminée ;
  - Désinstallation interrompue.
- **Personnalisation** :
  - Personnalisation terminée ;
  - Personnalisation interrompue.
- **Catalyst NAS Storage** :
  - Actualisation SNMP terminée ;
  - Actualisation SNMP interrompue ;
  - Rapport HTML créé ;
  - Création rapport interrompue.
- **Recette de poste** :
  - Analyse terminée ;
  - Analyse interrompue ;
  - Rapport HTML créé ;
  - Création rapport interrompue.

### Confidentialité et robustesse
- Le Centre d’activité ne remplace pas les journaux techniques existants.
- `Write-CatalystLog` n’est pas transformé en writer Activity.
- Seules les opérations métier explicitement instrumentées créent des événements Activity.
- Les erreurs d’écriture Activity ne doivent jamais interrompre l’opération utilisateur en cours.
- LAN Messenger n’enregistre jamais le corps des messages dans Activity.
- Les événements LAN Messenger conservent uniquement les informations techniques nécessaires au suivi de l’opération.
- Les chemins réseau de secours et tentatives intermédiaires ne génèrent pas de faux événements d’échec lorsque l’opération finale réussit.
- Aucun changement n’est apporté :
  - à `Modules\Catalyst.Core.psm1` ;
  - à la stabilisation du démarrage et du réseau ;
  - au protocole LAN Messenger ;
  - aux moteurs métier des outils lorsque le point de convergence UI existant suffisait.

### Corrigé
- Correction du binding des collections vides dans l’interface Activity afin que l’affichage reste valide lorsqu’aucun événement n’est disponible.
- Harmonisation du style sombre des `ComboBox` du Centre d’activité avec l’interface Catalyst.
- Harmonisation de l’icône et de l’alignement du bouton Centre d’activité dans le menu latéral.
- Correction du warning PowerShell lié au verbe non approuvé :
  - `Refresh-CatalystActivityView`
  devient :
  - `Update-CatalystActivityView`.
- Le renommage est appliqué à la déclaration, aux appels internes et à l’export du module.
- Le lancement source `-Verbose` ne présente plus de warning **unapproved verbs** pour `Catalyst.ActivityUI.psm1`.

### Architecture
- Séparation retenue :
  - `Catalyst.Activity.psm1` : stockage, écriture, lecture, synthèse et validation du store ;
  - `Catalyst.ActivityUI.psm1` : présentation, filtres et handlers de la page ;
  - `Catalyst.ActivityBridge.psm1` : pont lazy pour les outils autonomes ;
  - modules métier : émission explicite d’un événement uniquement au point de convergence validé.
- Aucun chargement ou parcours du store Activity n’est exécuté au démarrage de Catalyst.
- Aucun événement n’est créé par une simple navigation.
- La collecte Inventaire reste strictement manuelle.
- Le Diagnostic reste manuel et son moteur reste en lecture seule.
- Les données Activity restent dans le runtime utilisateur sous `%LOCALAPPDATA%`.

### Fichiers modifiés / ajoutés
- `Catalyst.ps1` ;
- `assets\Catalyst.xaml` ;
- `Modules\Catalyst.Navigation.psm1` ;
- `Modules\Catalyst.Activity.psm1` ;
- `Modules\Catalyst.ActivityUI.psm1` ;
- `Modules\Catalyst.UI.psm1` ;
- `Modules\Catalyst.InventoryUI.psm1` ;
- `Modules\Catalyst.Events.psm1` ;
- `Modules\Catalyst.BloatwaresUI.psm1` ;
- `Modules\Catalyst.PersoUI.psm1` ;
- `assets\tools\_shared\Catalyst.ActivityBridge.psm1` ;
- `assets\tools\CopyEngine\CopyEngine.ps1` ;
- `assets\tools\PhotoEngine\PhotoEngine.ps1` ;
- `assets\tools\VideoConverterEngine\Modules\VideoConverterEngine.UI.psm1` ;
- `assets\tools\LanMessenger\Modules\LanMessenger.UI.psm1` ;
- `assets\tools\LanMessenger\Modules\LanMessenger.Conversation.psm1` ;
- `assets\tools\LanMessenger\Modules\LanMessenger.Agent.psm1` ;
- `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.Events.psm1` ;
- `assets\tools\NasStorage\Modules\Catalyst.NasStorage.UI.psm1` ;
- `assets\tools\Recette\Modules\Catalyst.Recette.UI.psm1` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Release Manager
- La cible par défaut du Release Manager passe à `1.8.4`.
- Ajout aux fichiers obligatoires :
  - `Modules\Catalyst.Activity.psm1` ;
  - `Modules\Catalyst.ActivityUI.psm1` ;
  - `assets\tools\_shared\Catalyst.ActivityBridge.psm1` ;
  - les modules et scripts portant les points de convergence Activity validés.
- Ajout de contrôles de build vérifiant :
  - les fonctions principales du moteur Activity ;
  - l’intégration `Catalyst.ps1` ;
  - le bouton et la vue Activity dans le XAML ;
  - la navigation vers `ActivityView` ;
  - l’interface Activity et le verbe approuvé `Update-CatalystActivityView` ;
  - l’absence de lecture Activity dans `Initialize-CatalystActivityUI` ;
  - le bridge lazy des outils autonomes ;
  - les marqueurs principaux des événements Diagnostic, Inventaire, Snapshot, outils et workflows intégrés.
- Ajout des exclusions de dossiers techniques de développement :
  - `Activity-P*` ;
  - `Activity-FinalCoverage-Audit*` ;
  - `Activity-ApprovedVerbCleanup*`.
- Ces dossiers ne peuvent pas entrer dans la build ni dans le setup final.

### Packaging
- `CatalystSetup.iss` passe en version `1.8.4`.
- Le fichier généré devra être :
  - `CatalystSetup_v1.8.4.exe`.
- Les modules Activity et le bridge partagé sont inclus par la copie récursive du build et contrôlés explicitement par le Release Manager.
- Les dossiers techniques Activity sont exclus du package.
- Aucun nouveau composant tiers, pilote ou dépendance externe n’est ajouté.

### Validation fonctionnelle
- Moteur Activity P4.1 : **OK**.
- Interface Activity P4.2 / P4.2c : **OK**.
- Absence de lecture Activity au démarrage : **OK**.
- Absence d’auto-refresh du Centre d’activité : **OK**.
- Bouton **Actualiser** avec apparition d’un nouvel événement uniquement après action explicite : **OK**.
- Diagnostic / Inventaire / System Snapshot P4.3a : **OK**.
- CopyEngine / PhotoEngine / TransferBench P4.3b1 : **OK**.
- VideoConverterEngine P4.3b2 : **OK**.
- LAN Messenger :
  - envoi vers un poste distant : **OK** ;
  - réponse distante : **OK** ;
  - réception sur le poste Catalyst 1.8.4 : **OK** ;
  - absence de contenu de message dans Activity : **OK**.
- Logiciels / Bloatwares / Personnalisation P4.3c : **OK**.
- Catalyst NAS Storage / Recette de poste P4.3d : **OK**.
- Génération de rapports HTML NAS Storage et Recette avec remontée Activity : **OK**.
- Absence de doublons observés lors des validations fonctionnelles : **OK**.
- Nettoyage du verbe PowerShell ActivityUI :
  - preflight : **OK** ;
  - installation : **OK** ;
  - lancement source `-Verbose` sans warning **unapproved verbs** : **OK** ;
  - navigation vers le Centre d’activité : **OK**.
- Audit statique Release Manager / Inno Setup pour la cible `1.8.4` : **OK**.

### Validation release
- Simulation du Release Manager avec la cible `1.8.4` : **OK**.
- Compilation de `CatalystSetup_v1.8.4.exe` : **OK**.
- Désinstallation de Catalyst `1.8.3` : **OK**.
- Installation de Catalyst `1.8.4` : **OK**.
- Redémarrage Windows : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Vérification finale du Centre d’activité depuis `Program Files` : **OK**.
- Backup final de la version `1.8.4` : **OK**.

## [1.8.3] - Diagnostic Catalyst avec réparations contrôlées

### Ajouté
- Ajout d'un moteur dédié de réparations contrôlées :
  - `Modules\Catalyst.DiagnosticRepair.psm1`.
- Le moteur de réparation reste séparé du moteur de Diagnostic afin de conserver :
  - le Diagnostic en lecture seule ;
  - une liste blanche stricte des actions autorisées ;
  - l'absence de réparation automatique lors de la navigation ou du lancement du Diagnostic.
- Ajout de quatre réparations contrôlées pour **Catalyst LAN Messenger** :
  - création des dossiers runtime attendus lorsqu'ils sont absents ;
  - restauration du démarrage session `HKCU\Run` ;
  - démarrage de l'agent LAN Messenger lorsque le port TCP `45452` est libre et qu'aucun agent attendu n'est déjà actif ;
  - restauration de la règle firewall entrante TCP `45452`, profil Domain.
- Le moteur expose :
  - `SupportsShouldProcess` ;
  - `-WhatIf` ;
  - `-Confirm`.
- Les réparations sont identifiées par des `RepairId` fixes et ne reposent sur aucune commande arbitraire.

### Sécurité des réparations
- Aucune réparation n'est exécutée automatiquement.
- Une réparation nécessite :
  - une anomalie explicitement sélectionnée ;
  - une réparation reconnue par la liste blanche ;
  - une confirmation explicite de l'utilisateur.
- Le marqueur :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\State\LanMessenger\Startup.disabled`
  est respecté.
- Catalyst refuse de restaurer automatiquement le démarrage session LAN Messenger lorsque ce marqueur indique une désactivation volontaire.
- Le démarrage de l'agent est refusé lorsque :
  - le port TCP `45452` est déjà occupé par un processus non identifié comme agent Catalyst ;
  - un processus agent existe mais n'écoute pas sur le port attendu.
- La réparation firewall réutilise le script officiel existant :
  - `assets\tools\LanMessenger\Install-LanMessengerFirewallRule.ps1`.
- Une réparation nécessitant des droits administrateur ne provoque pas l'élévation globale de Catalyst.

### Cible système et mode source
- Séparation explicite entre :
  - la racine d'exécution Catalyst ;
  - la racine réellement installée sous `Program Files`.
- Le moteur de réparation distingue :
  - `InstalledExplicit` ;
  - `InstalledAuto` ;
  - `SourceOnly`.
- Lorsqu'un Catalyst lancé depuis `C:\Catalyst-Source` détecte l'installation réelle sous :
  - `C:\Program Files\Catalyst`,
  les réparations système utilisent uniquement cette installation comme cible.
- Une racine de développement ne peut jamais devenir implicitement la cible d'une réparation :
  - `HKCU\Run` ;
  - agent LAN Messenger ;
  - firewall.
- Si aucune installation réelle n'est détectée, les réparations système correspondantes sont bloquées.

### Interface Diagnostic
- Ajout du bouton :
  - **Réparer**.
- Le bouton est désactivé par défaut.
- Le bouton reste désactivé :
  - avant l'exécution du Diagnostic ;
  - sur un contrôle `OK` ;
  - sur un contrôle informatif ;
  - sur une anomalie non réparable ;
  - lorsqu'une réparation est bloquée par le moteur.
- Une anomalie réparable active le bouton uniquement après validation de l'état réel par le moteur de réparation.
- Le bandeau inférieur du Diagnostic affiche :
  - l'action proposée ;
  - le niveau de risque ;
  - le besoin éventuel de droits administrateur.
- La confirmation Catalyst affiche :
  - le contrôle concerné ;
  - l'action exacte ;
  - le risque ;
  - la cible système réelle.

### Recontrôle automatique
- Après une réparation retournant l'état `Succeeded`, Catalyst relance automatiquement le Diagnostic complet.
- Le contrôle ayant déclenché la réparation est recherché dans les nouveaux résultats.
- Le résultat final distingue :
  - **Réparé** ;
  - **Toujours non conforme** ;
  - **Échec du recontrôle**.
- Aucun recontrôle automatique n'est exécuté après :
  - annulation ;
  - `NoChange` ;
  - `Blocked` ;
  - échec de la réparation.
- Les compteurs, l'état général et la grille du Diagnostic sont actualisés avec le nouveau résultat complet.

### Diagnostic en mode source
- Correction des faux positifs observés lorsque Catalyst est exécuté depuis :
  - `C:\Catalyst-Source`,
  alors qu'une installation réelle existe sous :
  - `C:\Program Files\Catalyst`.
- Les contrôles système LAN Messenger utilisent désormais la cible installée réelle pour :
  - `Démarrage session HKCU Run` ;
  - `Chemin Program Files` ;
  - `Raccourci Bureau Catalyst LAN Messenger` ;
  - `Raccourci Bureau Catalyst TransferBench`.
- Les contrôles de cohérence des fichiers source continuent à utiliser la racine de développement.
- Le Diagnostic reste strictement en lecture seule et n'appelle pas le moteur de réparation pour modifier le système.

### Corrigé — cohérence Uptime Inventaire
- Correction de l’incohérence entre :
  - l’uptime affiché dans la carte latérale du Dashboard ;
  - l’uptime affiché dans l’onglet **Système** de l’Inventaire.
- La carte latérale utilisait déjà l’uptime de la session utilisateur active, basé en priorité sur le démarrage de `explorer.exe`.
- L’Inventaire utilisait encore :
  - `Win32_OperatingSystem.LastBootUpTime`,
  ce qui pouvait produire une valeur différente, notamment avec le démarrage rapide Windows ou certaines séquences de session.
- L’Inventaire utilise désormais la même logique de référence que la carte latérale Catalyst :
  1. session utilisateur via `explorer.exe` ;
  2. fallback `Environment.TickCount64` ;
  3. fallback `Win32_OperatingSystem.LastBootUpTime`.
- La donnée Windows technique reste conservée séparément :
  - `LastBootUpTime` ;
  - `SystemUptimeSeconds`.
- Ajout des informations dédiées à l’uptime Catalyst :
  - `UptimeStartTime` ;
  - `UptimeSeconds` ;
  - `UptimeMethod`.
- L’interface Inventaire distingue désormais clairement :
  - **Dernier démarrage Windows** ;
  - **Début de session** lorsque la référence utilisée est `ExplorerSession` ;
  - **Référence uptime** lorsqu’un fallback est utilisé ;
  - **Uptime**.
- Le format d’affichage est harmonisé avec la carte latérale :
  - `1 minute(s)` ;
  - `2 h 5 min` ;
  - `1 jour(s), 3 h 12 min`.
- Aucune nouvelle requête CIM n’est ajoutée au démarrage de Catalyst.
- La collecte Inventaire reste strictement manuelle et n’est déclenchée qu’après action explicite de l’utilisateur.
- Aucun changement n’est apporté au comportement de navigation vers la page Inventaire.

### Corrigé — défilement à la molette dans Diagnostic
- Correction du comportement de la molette de la souris sur la page **Diagnostic**.
- Avant correction :
  - le défilement de la page fonctionnait lorsque le pointeur se trouvait hors de la grille des résultats ;
  - la molette ne faisait plus défiler la page lorsque le pointeur se trouvait au-dessus de `DiagResultsGrid`.
- L’origine était liée au comportement WPF du `DataGrid`, qui interceptait l’événement `PreviewMouseWheel` avant que le `ScrollViewer` parent de la page Diagnostic puisse le traiter.
- Le `ScrollViewer` principal de la page Diagnostic est désormais nommé :
  - `DiagScrollViewer`.
- `DiagResultsGrid` retransmet maintenant explicitement l’événement `PreviewMouseWheel` vers ce `ScrollViewer`.
- Le correctif respecte le paramètre Windows :
  - `SystemParameters.WheelScrollLines`.
- Selon la configuration Windows :
  - `LineUp` / `LineDown` sont utilisés pour un défilement par lignes ;
  - `PageUp` / `PageDown` sont utilisés lorsque Windows est configuré pour faire défiler une page à la fois.
- L’événement est marqué comme traité uniquement après retransmission réussie au `ScrollViewer`.
- Aucun double défilement n’est observé.
- La sélection des lignes du Diagnostic reste fonctionnelle.
- Le bouton **Réparer** et toute la logique Diagnostic Repair restent inchangés.
- Aucun changement appliqué :
  - à `Modules\Catalyst.Diagnostic.psm1` ;
  - à `Modules\Catalyst.DiagnosticRepair.psm1` ;
  - à la navigation ;
  - aux autres pages Catalyst ;
  - au démarrage de Catalyst.

### Fichiers modifiés / ajoutés
- `Modules\Catalyst.DiagnosticRepair.psm1` ;
- `Modules\Catalyst.Diagnostic.psm1` ;
- `Modules\Catalyst.UI.psm1` ;
- `Modules\Catalyst.Inventory.psm1` ;
- `Modules\Catalyst.InventoryUI.psm1` ;
- `assets\Catalyst.xaml` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Release Manager
- La cible par défaut du Release Manager passe à `1.8.3`.
- Ajout du module obligatoire :
  - `Modules\Catalyst.DiagnosticRepair.psm1`.
- Ajout de contrôles de build vérifiant :
  - la présence du bouton **Réparer** dans le XAML ;
  - les métadonnées de réparation dans l'UI ;
  - la confirmation explicite avant réparation ;
  - le recontrôle automatique uniquement après `Succeeded` ;
  - les protections `InstalledAuto` / `SourceOnly` ;
  - le respect de `Startup.disabled` ;
  - la séparation source / installation réelle dans le Diagnostic.
- Ajout de l'exclusion des dossiers techniques de développement :
  - `DiagnosticRepair-P*` ;
  - `DiagnosticRepair-Test-P*`.
- Ces dossiers ne peuvent pas entrer dans la build ni dans le setup final.

### Packaging
- `CatalystSetup.iss` passe en version `1.8.3`.
- Le fichier généré devra être :
  - `CatalystSetup_v1.8.3.exe`.
- Le nouveau module Diagnostic Repair est inclus par la copie récursive du build et vérifié explicitement avant packaging.
- Les dossiers techniques Diagnostic Repair sont exclus du package.
- Aucun nouveau composant tiers, pilote ou dépendance externe n'est ajouté.

### Validation fonctionnelle
- Preflight moteur Diagnostic Repair : **OK**.
- Liste blanche des quatre réparations : **OK**.
- `ShouldProcess` / `WhatIf` : **OK**.
- Absence de modification `HKCU Run` en `-WhatIf` : **OK**.
- Absence de création runtime en `-WhatIf` : **OK**.
- Absence de lancement d'agent en `-WhatIf` : **OK**.
- Absence de modification firewall en `-WhatIf` : **OK**.
- Protection `Startup.disabled` : **OK**.
- Protection port TCP `45452` / agent existant : **OK**.
- Détection automatique de l'installation réelle depuis le mode source : **OK**.
- Diagnostic sain en mode source après correction des faux positifs :
  - `49 OK` ;
  - `0 Attention` ;
  - `0 Erreur`.
- Bouton **Réparer** désactivé sur un faux positif déjà conforme côté système : **OK**.
- Scénario contrôlé d'anomalie `HKCU Run` persistante : **OK**.
- Activation du bouton **Réparer** sur l'anomalie contrôlée : **OK**.
- Confirmation explicite avant réparation : **OK**.
- Restauration de la valeur `HKCU Run` officielle : **OK**.
- Recontrôle automatique après réparation : **OK**.
- Retour final :
  - `49 OK` ;
  - `0 Attention` ;
  - `0 Erreur`.
- Test complet P3.3 : **OK**.
- Correction de la cohérence Uptime Inventaire : **OK**.
- Preflight `Catalyst.Inventory.psm1` / `Catalyst.InventoryUI.psm1` : **OK**.
- Référence `ExplorerSession` utilisée lorsque `explorer.exe` est disponible : **OK**.
- Conservation de `LastBootUpTime` comme donnée Windows distincte : **OK**.
- Affichage **Dernier démarrage Windows / Début de session / Uptime** : **OK**.
- Cohérence visuelle de l’Uptime entre la carte latérale et l’Inventaire : **OK**.
- Absence de collecte Inventaire au démarrage de Catalyst : **OK**.
- Absence de collecte Inventaire lors de la simple navigation vers Inventaire : **OK**.
- Correctif de défilement à la molette sur la page Diagnostic : **OK**.
- Défilement lorsque le pointeur est au-dessus de `DiagResultsGrid` : **OK**.
- Défilement lorsque le pointeur est hors de la grille Diagnostic : **OK**.
- Absence de double défilement : **OK**.
- Sélection des lignes Diagnostic après correctif : **OK**.
- Bouton **Réparer** après correctif de scroll : **OK**.

### Validation release
- Nouvelle compilation de `CatalystSetup_v1.8.3.exe` après correction du scroll Diagnostic : **OK**.
- Désinstallation de la build `1.8.3` précédente : **OK**.
- Installation de la build `1.8.3` finale corrigée : **OK**.
- Redémarrage Windows : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Vérification finale de la cohérence Uptime Dashboard / Inventaire sur la build installée : **OK**.
- Vérification finale du scroll souris sur `DiagResultsGrid` dans la build installée : **OK**.
- Backup final de la version `1.8.3` : **OK**.

## [1.8.2] - System Snapshot et Inventaire manuel

### Ajouté
- Ajout du sous-système **System Snapshot** pour conserver des états successifs de l’inventaire du poste.
- Ajout du module :
  - `Modules\Catalyst.Snapshot.psm1`.
- Les snapshots sont enregistrés dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\State\Inventory\Snapshots`.
- Un snapshot contient l’inventaire déjà chargé en mémoire au moment de sa création.
- La création d’un snapshot depuis la page Inventaire réutilise explicitement :
  - `$script:LastInventory`.
- Aucune seconde collecte Inventaire n’est déclenchée lors de la création d’un snapshot.
- Ajout d’un gestionnaire natif **Snapshots du poste** intégré à la page Inventaire.
- Le gestionnaire permet :
  - l’affichage des snapshots enregistrés ;
  - l’actualisation de la liste ;
  - la sélection ;
  - la suppression manuelle ;
  - la comparaison avec l’inventaire courant ;
  - l’accès à la maintenance.

### Comparaison d’inventaires
- Ajout du module :
  - `Modules\Catalyst.InventoryCompare.psm1`.
- Ajout de la comparaison entre :
  - un snapshot sélectionné ;
  - l’inventaire courant déjà présent en mémoire.
- La comparaison distingue :
  - **Ajoutés** ;
  - **Supprimés** ;
  - **Modifiés**.
- Les différences sont organisées par section :
  - Système ;
  - Matériel ;
  - Stockage ;
  - Réseau ;
  - Logiciels ;
  - Pilotes.
- Ajout de filtres d’affichage :
  - Tous ;
  - Ajoutés ;
  - Supprimés ;
  - Modifiés ;
  - filtre par section.
- Les filtres travaillent uniquement sur le résultat déjà calculé en mémoire.
- Aucun filtre ne déclenche une nouvelle collecte Inventaire ni une nouvelle comparaison.
- Les compteurs globaux restent indépendants du filtrage d’affichage.

### Rapport HTML de comparaison
- Ajout du module :
  - `Modules\Catalyst.InventoryCompare.Report.psm1`.
- Ajout de la génération d’un rapport HTML complet de comparaison dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\InventoryComparison`.
- Nomenclature :
  - `Catalyst_InventoryComparison_<POSTE>_<YYYYMMDD-HHmmss>.html`.
- Le rapport reprend le style sombre Catalyst utilisé par les autres rapports HTML.
- Le rapport contient :
  - les métadonnées de comparaison ;
  - les compteurs Ajoutés / Supprimés / Modifiés / Total ;
  - une synthèse par section ;
  - le détail complet des différences.
- Le rapport reste complet même lorsqu’un filtre est actif dans l’interface.
- Aucun nouvel inventaire et aucune nouvelle comparaison ne sont déclenchés lors de la génération du rapport.

### Diagnostic System Snapshot
- Extension du **Diagnostic Catalyst** avec une catégorie :
  - **System Snapshot**.
- Ajout de sept contrôles en lecture seule :
  - module Snapshot ;
  - module Comparaison ;
  - module Rapport HTML ;
  - dossier snapshots ;
  - snapshots enregistrés ;
  - validation des snapshots ;
  - rapports HTML.
- L’absence de snapshots ou de rapports est considérée comme une information et non comme une erreur.
- Le Diagnostic ne crée, ne supprime et ne modifie aucun snapshot.
- Aucun inventaire ni aucune comparaison n’est déclenché par ces contrôles.

### Maintenance System Snapshot
- Ajout du module :
  - `Modules\Catalyst.SnapshotMaintenance.psm1`.
- Ajout d’une simulation de politique de rétention pour :
  - les snapshots ;
  - les rapports HTML de comparaison.
- Valeurs proposées par défaut :
  - conserver 10 snapshots ;
  - conserver 20 rapports HTML.
- Ajout d’une interface **Maintenance System Snapshot** intégrée au gestionnaire de snapshots.
- La simulation affiche :
  - le nombre de snapshots valides et invalides ;
  - le nombre de rapports HTML ;
  - les candidats à la rotation ;
  - la taille potentiellement récupérable ;
  - les éléments nécessitant une revue manuelle.
- Les snapshots invalides sont exclus de toute rotation automatique.

### Nettoyage contrôlé
- Ajout du nettoyage réel des candidats calculés par la dernière simulation.
- Le bouton **Nettoyer** reste désactivé tant qu’aucune simulation valide ne contient de candidat.
- Toute modification de la politique de rétention invalide la simulation précédente.
- Avant suppression :
  - une confirmation Catalyst dédiée est affichée ;
  - l’état réel est relu ;
  - la politique est recalculée ;
  - la liste des candidats doit correspondre exactement à la dernière simulation affichée.
- Si l’état a changé depuis la simulation, le nettoyage est annulé et une nouvelle simulation est requise.
- Chaque snapshot est revalidé juste avant suppression.
- Les chemins sont contrôlés afin qu’aucun fichier extérieur aux racines System Snapshot ne puisse être supprimé.
- Les snapshots sont supprimés via le moteur Snapshot existant.
- Les rapports HTML sont supprimés uniquement après validation du chemin et de leur nomenclature Catalyst.
- La suppression est effectuée élément par élément avec bilan succès / échec.
- Le gestionnaire et la vue Maintenance sont automatiquement rafraîchis après le nettoyage.
- Le moteur de nettoyage expose `ShouldProcess` / `WhatIf`.

### Inventaire
- Modification du comportement d’ouverture de la page **Inventaire**.
- La navigation vers Inventaire ne lance désormais **aucune collecte automatique**, même différée.
- La page s’affiche immédiatement avec l’état :
  - **Aucun inventaire chargé**.
- Le bouton initial devient :
  - **Lancer l’inventaire**.
- La collecte démarre uniquement après une action explicite de l’utilisateur.
- La collecte s’exécute dans un runspace PowerShell séparé afin de préserver la réactivité de l’interface WPF.
- Pendant la collecte :
  - le bouton indique **Inventaire en cours...** ;
  - Export et Snapshot restent désactivés.
- Après la première collecte :
  - les six onglets sont alimentés ;
  - le bouton devient **Actualiser**.
- Le bouton **Actualiser** utilise également la collecte asynchrone.
- Quitter puis revenir sur la page Inventaire ne déclenche aucune nouvelle collecte.

### Corrigé
- Correction de la latence ressentie lors du premier accès à la page Inventaire.
- Suppression du lancement automatique du premier inventaire lors de la navigation.
- Correction des cas de gel visuel ou de rendu incomplet pendant la première collecte.
- Correction du moteur Maintenance afin d’accepter correctement les chemins enfants situés sous les racines System Snapshot.
- Le garde de chemin utilise désormais les séparateurs fournis par :
  - `[System.IO.Path]::DirectorySeparatorChar` ;
  - `[System.IO.Path]::AltDirectorySeparatorChar`.
- Renforcement des preflights afin de détecter :
  - les erreurs de syntaxe PowerShell ;
  - les quotes typographiques problématiques ;
  - les chemins autorisés et interdits avant activation du nettoyage.

### Architecture
- La séparation fonctionnelle retenue est :
  - `Catalyst.Inventory.psm1` : collecte Inventaire ;
  - `Catalyst.InventoryUI.psm1` : interface, événements et collecte asynchrone ;
  - `Catalyst.Snapshot.psm1` : création, lecture, validation et suppression des snapshots ;
  - `Catalyst.InventoryCompare.psm1` : moteur de comparaison ;
  - `Catalyst.InventoryCompare.Report.psm1` : rapport HTML ;
  - `Catalyst.SnapshotMaintenance.psm1` : état, rétention et nettoyage contrôlé.
- Aucune collecte Inventaire n’est exécutée au démarrage de Catalyst.
- Aucune collecte Inventaire n’est exécutée lors de la simple navigation vers Inventaire.
- Snapshot, Comparaison, Rapport HTML et Maintenance réutilisent les données déjà disponibles ou les fichiers existants selon leur rôle.

### Release Manager
- La cible par défaut du Release Manager passe à `1.8.2`.
- Ajout des modules System Snapshot aux fichiers obligatoires du build :
  - `Modules\Catalyst.Snapshot.psm1` ;
  - `Modules\Catalyst.InventoryCompare.psm1` ;
  - `Modules\Catalyst.InventoryCompare.Report.psm1` ;
  - `Modules\Catalyst.SnapshotMaintenance.psm1`.
- Renforcement du contrôle de l’intégration Inventaire / System Snapshot avant validation du build.
- Vérification de la présence des contrôles XAML Snapshot, Comparaison et Maintenance.
- Vérification des appels fonctionnels correspondants dans `Catalyst.InventoryUI.psm1`.
- Vérification que `Show-CatalystInventoryView` ne déclenche plus automatiquement de collecte.
- Ajout d’un nettoyage défensif des dossiers techniques de patch présents à la racine de la source :
  - `Snapshot-P*` ;
  - `Inventory-P*` ;
  - ancien dossier `Backup`.
- Ces dossiers peuvent rester temporairement dans la source de développement mais sont supprimés du build et interdits dans le build final.

### Fichiers modifiés / ajoutés
- `Modules\Catalyst.InventoryUI.psm1` ;
- `Modules\Catalyst.Snapshot.psm1` ;
- `Modules\Catalyst.InventoryCompare.psm1` ;
- `Modules\Catalyst.InventoryCompare.Report.psm1` ;
- `Modules\Catalyst.SnapshotMaintenance.psm1` ;
- `Modules\Catalyst.Diagnostic.psm1` ;
- `assets\Catalyst.xaml` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` passe en version `1.8.2`.
- Le Release Manager prépare par défaut la cible `1.8.2`.
- Les modules System Snapshot sont inclus par la copie récursive du build et vérifiés explicitement avant packaging.
- Les dossiers techniques `Snapshot-P*`, `Inventory-P*` et `Backup` sont exclus du package final.
- Le fichier généré devra être :
  - `CatalystSetup_v1.8.2.exe`.
- Aucun nouveau composant tiers, pilote ou dépendance externe n’est ajouté au package.

### Validation
- Moteur Snapshot : **OK**.
- Création d’un snapshot à partir de l’inventaire déjà chargé : **OK**.
- Absence de seconde collecte lors de la création d’un snapshot : **OK**.
- Gestionnaire de snapshots : **OK**.
- Suppression manuelle d’un snapshot : **OK**.
- Moteur de comparaison : **OK**.
- Comparaison identique : **OK**.
- Détection Ajouté / Supprimé / Modifié : **OK**.
- Filtres de comparaison : **OK**.
- Rapport HTML de comparaison : **OK**.
- Diagnostic System Snapshot : **OK**.
- Simulation de rétention : **OK**.
- Interface Maintenance : **OK**.
- Nettoyage réel après simulation et confirmation : **OK**.
- Exclusion des snapshots invalides : **OK**.
- Contrôle des chemins avant suppression : **OK**.
- Ouverture de la page Inventaire sans collecte automatique : **OK**.
- Bouton **Lancer l’inventaire** : **OK**.
- Collecte Inventaire asynchrone : **OK**.
- Bouton **Actualiser** asynchrone : **OK**.
- Retour sur la page Inventaire sans nouvelle collecte : **OK**.
- Compilation de `CatalystSetup_v1.8.2.exe` : **OK**.
- Désinstallation de Catalyst `1.8.1` : **OK**.
- Installation de Catalyst `1.8.2` : **OK**.
- Redémarrage Windows : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Backup final de la version `1.8.2` : **OK**.

## [1.8.1] - Inventaire complet du poste

### Ajouté
- Ajout d’une nouvelle page **Inventaire** directement dans le menu principal de Catalyst.
- Ajout d’un inventaire complet du poste organisé en six onglets :
  - **Système** ;
  - **Matériel** ;
  - **Stockage** ;
  - **Réseau** ;
  - **Logiciels** ;
  - **Pilotes**.
- Ajout du module de collecte dédié :
  - `Modules\Catalyst.Inventory.psm1`.
- Ajout du module de présentation et d’interaction :
  - `Modules\Catalyst.InventoryUI.psm1`.
- Ajout de l’export de l’inventaire au format JSON dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Exports\Inventory`.
- Le JSON exporté contient notamment :
  - la version du schéma ;
  - la version Catalyst ;
  - le nom du poste ;
  - la date de collecte ;
  - la durée de collecte ;
  - les sections Système, Matériel, Stockage, Réseau, Logiciels et Pilotes.

### Collecte
- La collecte Inventaire n’est **jamais exécutée au démarrage de Catalyst**.
- La première collecte est lancée uniquement lors de la première ouverture de la page **Inventaire**.
- Le bouton **Actualiser** permet ensuite de relancer explicitement une collecte complète.
- Ce fonctionnement préserve la stabilisation du démarrage introduite dans les versions précédentes.
- La collecte des logiciels installés repose sur les clés de désinstallation du Registre Windows.
- `Win32_Product` n’est pas utilisé.
- La collecte des pilotes et des informations matérielles repose sur les sources Windows/CIM adaptées.
- Les erreurs d’une section sont isolées afin d’éviter qu’une source indisponible bloque l’ensemble de l’inventaire.

### Interface
- Intégration définitive de la vue **Inventaire** dans :
  - `assets\Catalyst.xaml`.
- Le bouton **Inventaire** est maintenant un élément natif du menu latéral.
- La navigation principale prend en charge :
  - `btnInventaire` ;
  - `InventoryView`.
- La présentation reprend le style sombre bleu/cyan de Catalyst.
- Ajout d’un bandeau de synthèse affichant notamment :
  - nom du poste ;
  - modèle ;
  - version Windows ;
  - processeur ;
  - mémoire.
- Les six onglets utilisent des `DataGrid` harmonisés avec Catalyst.
- Les titres de colonnes et le contenu de toutes les cellules sont centrés horizontalement et verticalement.
- Les libellés français et les accents ont été harmonisés :
  - **Système** ;
  - **Matériel** ;
  - **Réseau** ;
  - **Propriété** ;
  - **Élément** ;
  - **Périphérique**.
- Les acronymes techniques conservent leur casse adaptée, notamment :
  - `DNS` ;
  - `IPv4` ;
  - `FS`.

### Corrigé
- Correction de l’icône **Diagnostic** du menu principal.
- L’ancien pictogramme pouvait être rendu sous la forme d’un rectangle vide selon la police WPF disponible.
- L’icône Diagnostic utilise désormais un pictogramme compatible avec le rendu validé.
- Correction de l’alignement du bouton **Inventaire** afin qu’il reprenne exactement la structure des autres entrées du menu Catalyst.
- Correction de la navigation entre les six onglets Inventaire.
- Correction de l’affichage initial des grilles après la collecte.
- Correction et harmonisation du centrage des données et des en-têtes de colonnes.

### Architecture
- L’interface Inventaire n’est plus injectée dynamiquement.
- La séparation retenue est désormais :
  - `assets\Catalyst.xaml` : structure visuelle ;
  - `Modules\Catalyst.InventoryUI.psm1` : événements et présentation des données ;
  - `Modules\Catalyst.Inventory.psm1` : moteur de collecte.
- `Catalyst.ps1` importe le moteur et le module UI puis initialise la page sans lancer de collecte.
- `Modules\Catalyst.Navigation.psm1` prend en charge la vue et le bouton Inventaire.
- Aucun composant tiers, pilote ou dépendance externe n’est ajouté.

### Release Manager
- La cible par défaut du Release Manager passe à `1.8.1`.
- Ajout des fichiers Inventaire aux contrôles obligatoires du build :
  - `Modules\Catalyst.Inventory.psm1` ;
  - `Modules\Catalyst.InventoryUI.psm1` ;
  - `Modules\Catalyst.Navigation.psm1`.
- Ajout d’un contrôle de cohérence de l’intégration native Inventaire avant validation du build :
  - présence du bouton et de la vue dans `assets\Catalyst.xaml` ;
  - présence des six contrôles principaux Inventaire ;
  - import et initialisation des modules dans `Catalyst.ps1`.
- La version stockée dans les exports JSON Inventaire est synchronisée automatiquement avec la version globale Catalyst.

### Fichiers modifiés / ajoutés
- `Catalyst.ps1` ;
- `assets\Catalyst.xaml` ;
- `Modules\Catalyst.Navigation.psm1` ;
- `Modules\Catalyst.Inventory.psm1` ;
- `Modules\Catalyst.InventoryUI.psm1` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` passe en version `1.8.1`.
- Le Release Manager prépare par défaut la cible `1.8.1`.
- Le numéro de build global reste synchronisé sur Catalyst et tous les outils.
- Les modules Inventaire sont inclus automatiquement par la copie récursive du build et sont désormais vérifiés explicitement avant packaging.
- Le fichier généré devra être :
  - `CatalystSetup_v1.8.1.exe`.
- Aucun nouveau composant tiers, launcher, pilote ou dépendance externe n’est ajouté au package.

### Validation
- Moteur Inventaire complet sur poste réel : **OK**.
- Collecte Système : **OK**.
- Collecte Matériel : **OK**.
- Collecte Stockage : **OK**.
- Collecte Réseau : **OK**.
- Collecte Logiciels : **OK**.
- Collecte Pilotes : **OK**.
- Export JSON : **OK**.
- Absence de collecte Inventaire au démarrage de Catalyst : **OK**.
- Première collecte lors de l’ouverture de la page Inventaire : **OK**.
- Bouton **Actualiser** : **OK**.
- Navigation entre les six onglets : **OK**.
- Affichage et centrage des données : **OK**.
- Alignement et icône du bouton **Inventaire** : **OK**.
- Correction de l’icône **Diagnostic** : **OK**.
- Intégration définitive dans `assets\Catalyst.xaml` : **OK**.
- Preflight de l’intégration XAML P2.0.1 : **OK**.
- Test source après intégration XAML : **OK**.
- Simulation du Release Manager `1.8.1` : **OK**.
- Compilation de `CatalystSetup_v1.8.1.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.8.1` : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Backup final de la version `1.8.1` : **OK**.

## [1.8.0] - Harmonisation visuelle des boutons

### Modifié
- Harmonisation du rendu des boutons secondaires afin de mieux correspondre au design général de Catalyst.
- Les boutons concernés utilisent désormais des bords arrondis cohérents avec les autres actions de l’interface.
- Le rayon d’arrondi appliqué est :
  - `CornerRadius="6"`.

### Bloatwares
- Les boutons :
  - **Tout** ;
  - **Rien** ;
  utilisent désormais le style arrondi Catalyst.
- Aucun changement appliqué à la sélection des éléments ni à la logique de suppression.

### Logiciels
- Les boutons :
  - **Tout** ;
  - **Rien** ;
  utilisent désormais le style arrondi Catalyst.
- Aucun changement appliqué à la sélection, à la détection `winget` ni à l’installation des logiciels.

### Personnalisation
- Les boutons :
  - **Tout** ;
  - **Rien** ;
  utilisent désormais le style arrondi Catalyst.
- Aucun changement appliqué aux actions de personnalisation ni à leur détection d’état.

### Diagnostic Catalyst
- Harmonisation visuelle des boutons :
  - **Lancer le diagnostic** ;
  - **Exporter** ;
  - **Ouvrir le dossier des rapports**.
- Les trois boutons utilisent désormais des bords arrondis cohérents avec le reste de l’application.
- Aucun changement appliqué :
  - au moteur Diagnostic ;
  - aux contrôles exécutés ;
  - aux résultats ;
  - à l’export des rapports.

### Page À propos
- Harmonisation des boutons du cadre **Actions rapides** :
  - **Changelog** ;
  - **Racine** ;
  - **Logs** ;
  - **Exports** ;
  - **Outils** ;
  - **Diagnostic**.
- Tous ces boutons utilisent désormais le même style arrondi.

### Corrigé
- Correction de l’icône du bouton **Diagnostic** dans la page **À propos**.
- L’icône était précédemment intégrée directement dans la chaîne :
  - `🩺 Diagnostic`.
- Selon le rendu WPF et la police utilisée, le pictogramme pouvait apparaître sous la forme d’un rectangle vide.
- L’icône et le texte sont désormais séparés.
- L’icône utilise explicitement :
  - `Segoe UI Emoji`.
- Le texte **Diagnostic** conserve le rendu typographique standard de Catalyst.

### Détails techniques
- Ajout d’un style global :
  - `RoundedButtonStyle`.
- Le style repose sur un `ControlTemplate` contenant un `Border` avec :
  - `CornerRadius="6"`.
- Les boutons statiques du Diagnostic et de la page À propos utilisent ce style via le XAML.
- Les boutons **Tout** et **Rien**, générés dynamiquement dans les pages Bloatwares, Logiciels et Personnalisation, récupèrent ce style depuis les ressources de la fenêtre.
- Aucun changement appliqué :
  - à `Modules\Catalyst.Core.psm1` ;
  - à `Modules\Catalyst.Diagnostic.psm1` ;
  - aux handlers de clic existants ;
  - aux données utilisateur ;
  - aux outils intégrés ;
  - au fonctionnement des pages concernées.

### Fichiers modifiés
- `Catalyst.xaml` ;
- `Modules\Catalyst.BloatwaresUI.psm1` ;
- `Modules\Catalyst.LogicielsUI.psm1` ;
- `Modules\Catalyst.PersoUI.psm1` ;
- `CHANGELOG.md`.

### Packaging
- La modification est prévue pour la version `1.8.0`.
- Le numéro de build global devra être synchronisé sur Catalyst et tous les outils.
- `CatalystSetup.iss` devra passer en version `1.8.0`.
- Le Release Manager devra utiliser la cible `1.8.0`.
- Le fichier généré devra être :
  - `CatalystSetup_v1.8.0.exe`.
- Aucun nouveau module, launcher, composant graphique, pilote ou dépendance n’est ajouté au package.

### Validation
- Affichage arrondi des boutons **Tout / Rien** dans Bloatwares : **OK**.
- Affichage arrondi des boutons **Tout / Rien** dans Logiciels : **OK**.
- Affichage arrondi des boutons **Tout / Rien** dans Personnalisation : **OK**.
- Affichage arrondi des boutons du Diagnostic : **OK**.
- Affichage arrondi des boutons **Actions rapides** de la page À propos : **OK**.
- Affichage arrondi du bouton **Diagnostic** de la page À propos : **OK**.
- Correction de l’icône Diagnostic sur la page À propos : **OK**.
- Validation visuelle globale en environnement source : **OK**.
- Aucun changement fonctionnel constaté : **OK**.
- Compilation de `CatalystSetup_v1.8.0.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.8.0` : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Backup final de la version `1.8.0` : **OK**.

## [1.7.9] - Optimisation du premier affichage des pages

### Optimisé
- Amélioration nette du premier affichage des pages **Bloatwares** et **Personnalisation**.
- L’analyse des temps de chargement a confirmé que la génération WPF des cartes n’était pas la cause principale des ralentissements.
- Les accès système effectués avant l’affichage constituaient l’essentiel du délai initial.
- La page **Logiciels** a également été instrumentée et analysée :
  - son délai résiduel provient principalement de l’appel `winget list` ;
  - aucune modification fonctionnelle n’a été retenue, le temps observé restant inférieur à une seconde.

### Bloatwares
- L’ancienne détection interrogeait `Get-AppxPackage -Name ...` séparément pour chaque application du catalogue.
- Avec 62 entrées analysées, cette méthode représentait l’essentiel du délai du premier affichage.
- La détection utilise désormais :
  - un seul inventaire global `Get-AppxPackage` ;
  - une table de correspondance en mémoire ;
  - une comparaison locale avec les noms du catalogue Bloatwares.
- Le nombre d’applications détectées reste cohérent avec l’ancienne méthode.
- Aucun changement appliqué à la logique de suppression des applications ni aux actions utilisateur.

### Personnalisation
- Identification du contrôle **Autoriser la réponse au ping IPv4** comme principale cause du délai initial de la page.
- Le contrôle d’état utilisait précédemment les cmdlets `NetSecurity` ou `netsh`, dont le chargement à froid pouvait dépasser une seconde.
- La détection lit désormais en priorité la règle firewall locale Catalyst directement dans :
  - `HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules`.
- La règle est validée sur les propriétés attendues :
  - active ;
  - entrante ;
  - autorisée ;
  - protocole ICMPv4 ;
  - requête Echo Request de type 8.
- `netsh` est conservé uniquement comme fallback si la lecture directe du registre Firewall n’est pas disponible.
- La logique d’application et de suppression de la règle firewall reste inchangée.

### Diagnostic
- La navigation vers la page **Diagnostic** ne déclenche plus automatiquement l’exécution complète des contrôles.
- La page s’affiche désormais immédiatement avec son état courant.
- Le diagnostic est exécuté uniquement lorsque l’utilisateur clique sur :
  - **Lancer le diagnostic**.
- Les résultats restent affichés pendant la session Catalyst.
- Un retour ultérieur sur la page Diagnostic ne relance plus automatiquement l’analyse.
- Le moteur du Diagnostic, ses contrôles, ses résultats et son export ne sont pas modifiés.
- Ce comportement évite qu’une simple navigation vers la page provoque plusieurs secondes d’attente ou un gel visuel de l’interface.

### Mesures de validation
- **Bloatwares** :
  - détection Appx avant optimisation : environ `3923 ms` ;
  - détection Appx après optimisation : environ `377 ms` ;
  - initialisation UI avant optimisation : environ `4085 ms` ;
  - initialisation UI après optimisation : environ `534 ms`.
- **Personnalisation** :
  - contrôle ICMPv4 avant optimisation : environ `1310 ms` ;
  - contrôle ICMPv4 après optimisation : environ `18 ms` ;
  - chargement des données avant optimisation : environ `1455 ms` ;
  - chargement des données après optimisation : environ `158 ms`.
- **Logiciels** :
  - initialisation mesurée autour de `641 ms` ;
  - environ `593 ms` sont liés à `winget list` ;
  - optimisation supplémentaire non retenue afin de ne pas complexifier inutilement l’architecture.
- Les traces temporaires `[PERF]` et les `Stopwatch` utilisés pour ces mesures ont été retirés des modules après validation.

### Détails techniques
- Optimisation Bloatwares limitée à :
  - `Modules\Catalyst.BloatwaresUI.psm1`.
- Optimisation Personnalisation limitée à :
  - `Modules\Catalyst.Perso.psm1`.
- Modification du comportement Diagnostic limitée à :
  - `Modules\Catalyst.UI.psm1`.
- Aucun changement appliqué :
  - à `Modules\Catalyst.Core.psm1` ;
  - à `Modules\Catalyst.Diagnostic.psm1` ;
  - au XAML principal ;
  - à la logique `winget` ;
  - aux outils intégrés ;
  - aux données utilisateur.
- La stabilisation du démarrage et du réseau introduite en `1.7.7` reste inchangée.
- La correction de température introduite en `1.7.8` reste inchangée.

### Fichiers modifiés
- `Modules\Catalyst.BloatwaresUI.psm1` ;
- `Modules\Catalyst.Perso.psm1` ;
- `Modules\Catalyst.UI.psm1` ;
- `CHANGELOG.md`.

### Packaging
- La correction est prévue pour la version `1.7.9`.
- Le numéro de build global devra être synchronisé sur Catalyst et tous les outils.
- `CatalystSetup.iss` devra passer en version `1.7.9`.
- Le Release Manager devra utiliser la cible `1.7.9`.
- Le fichier généré devra être :
  - `CatalystSetup_v1.7.9.exe`.
- Aucun nouveau module, launcher, composant graphique, pilote ou dépendance n’est ajouté au package.

### Validation
- Instrumentation ciblée des pages Bloatwares, Logiciels et Personnalisation : **OK**.
- Identification du coût des appels Appx répétés dans Bloatwares : **OK**.
- Remplacement par un inventaire Appx unique : **OK**.
- Détection correcte des applications installées après optimisation : **OK**.
- Test fonctionnel de suppression et rafraîchissement Bloatwares : **OK**.
- Identification du contrôle ICMPv4 comme principal délai de Personnalisation : **OK**.
- Lecture directe de la règle firewall locale via le registre : **OK**.
- Détection correcte de l’état appliqué / non appliqué : **OK**.
- Test fonctionnel de désactivation puis réactivation du ping IPv4 : **OK**.
- Analyse de la page Logiciels et conservation de la logique `winget list` existante : **OK**.
- Navigation rapide entre Bloatwares, Logiciels et Personnalisation : **OK**.
- Ouverture immédiate de la page Diagnostic sans lancement automatique : **OK**.
- Exécution manuelle via **Lancer le diagnostic** : **OK**.
- Conservation des résultats lors d’un retour sur la page Diagnostic : **OK**.
- Suppression de toutes les traces temporaires `[PERF]` après validation : **OK**.
- Test source final avec les modules nettoyés : **OK**.
- Compilation de `CatalystSetup_v1.7.9.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.7.9` : **OK**.
- Tests de non-régression de la build installée : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Backup final de la version `1.7.9` : **OK**.

## [1.7.8] - Correction de la température du Dashboard

### Corrigé
- Correction de la récupération de la température affichée dans la carte **Température** du Dashboard.
- L’ancienne méthode reposait uniquement sur :
  - `root\wmi` ;
  - `MSAcpi_ThermalZoneTemperature`.
- Sur certains postes, cette classe renvoyait :
  - `Accès refusé`.
- La carte Température était alors masquée et le journal Catalyst enregistrait un avertissement alors que l’absence d’accès à cette source ACPI ne constitue pas une erreur applicative.
- La récupération utilise désormais en priorité la source native Windows :
  - namespace `root\cimv2` ;
  - classe `Win32_PerfFormattedData_Counters_ThermalZoneInformation`.
- La valeur `Temperature`, fournie en Kelvin par Windows, est convertie en degrés Celsius avant affichage.
- La carte Température redevient visible lorsqu’une zone thermique exploitable est disponible.

### Modifié
- `MSAcpi_ThermalZoneTemperature` est conservé uniquement comme source de repli.
- Les interrogations thermiques sont désormais facultatives et non bloquantes.
- Les appels CIM dédiés à la température utilisent un délai maximal contrôlé afin d’éviter qu’une sonde thermique puisse ralentir ou bloquer le démarrage de Catalyst.
- Lorsqu’aucune source thermique Windows exploitable n’est disponible :
  - la carte Température reste masquée ;
  - aucun avertissement n’est généré ;
  - une trace `DEBUG` indique simplement que la température n’est pas disponible.
- Lorsqu’une température est détectée, une trace `DEBUG` indique :
  - la valeur relevée ;
  - la source utilisée.
- Aucun composant tiers de supervision matérielle n’est ajouté.
- Aucune DLL ou pilote supplémentaire n’est nécessaire.

### Comportement après ouverture de session Windows
- Après un redémarrage Windows, le fournisseur `ThermalZoneInformation` peut ne pas être immédiatement disponible pendant les premières secondes de session.
- Si Catalyst est lancé trop tôt :
  - la lecture thermique peut ne retourner aucune valeur ;
  - la carte **Température** reste alors temporairement masquée ;
  - aucun warning n’est généré.
- Une fois l’initialisation Windows terminée, la même source devient disponible normalement.
- Sur le poste de validation, l’affichage est opérationnel lorsque Catalyst est lancé après environ vingt secondes, notamment après l’apparition de **Catalyst LAN Messenger** dans la zone de notification.
- Ce comportement est considéré comme une disponibilité différée du fournisseur thermique Windows et non comme une erreur Catalyst.
- Une tentative de seconde lecture différée automatique a été étudiée mais n’a pas été retenue, afin de conserver un module UI simple et de ne pas ajouter de logique supplémentaire au démarrage.

### Détails techniques
- La correction est limitée à :
  - `Modules\Catalyst.UI.psm1`.
- Source principale :
  - `Win32_PerfFormattedData_Counters_ThermalZoneInformation`.
- Source de repli :
  - `MSAcpi_ThermalZoneTemperature`.
- Conversion de la source principale :
  - `Température Celsius = Temperature - 273,15`.
- Conversion du fallback ACPI :
  - `Température Celsius = (CurrentTemperature / 10) - 273,15`.
- Les valeurs incohérentes ou fantômes sont ignorées.
- Lorsque plusieurs zones thermiques valides sont présentes, Catalyst conserve la température la plus élevée.
- Les seuils visuels existants sont conservés :
  - moins de 50 °C : **Optimal** ;
  - de 50 à moins de 70 °C : **Surveillé** ;
  - 70 °C et plus : **Chaud**.
- Aucun changement appliqué :
  - à `Modules\Catalyst.Core.psm1` ;
  - à la stabilisation du démarrage introduite en `1.7.7` ;
  - à la détection réseau ;
  - au XAML du Dashboard ;
  - aux outils intégrés ;
  - aux données utilisateur.

### Fichiers modifiés
- `Modules\Catalyst.UI.psm1` ;
- `CHANGELOG.md`.

### Packaging
- La correction est publiée sous la version `1.7.8`.
- Le numéro de build global est synchronisé sur Catalyst et tous les outils.
- `CatalystSetup.iss` est en version `1.7.8`.
- Le Release Manager utilise la cible `1.7.8`.
- Le fichier généré est :
  - `CatalystSetup_v1.7.8.exe`.
- Aucun nouveau module, launcher, composant graphique, pilote ou dépendance n’est ajouté au package.

### Validation
- Reproduction de l’avertissement `Température CPU indisponible : Accès refusé` avec l’ancienne source ACPI : **OK**.
- Test manuel de `Win32_PerfFormattedData_Counters_ThermalZoneInformation` sous PowerShell 7 : **OK**.
- Détection de la zone thermique Windows `\_TZ.TZ00` : **OK**.
- Conversion Kelvin vers Celsius : **OK**.
- Intégration de la nouvelle source dans `Modules\Catalyst.UI.psm1` : **OK**.
- Affichage de la carte **Température** dans le Dashboard : **OK**.
- Affichage d’une température réelle remontée par Windows : **OK**.
- Suppression de l’avertissement `Accès refusé` dans le journal Catalyst : **OK**.
- Trace `DEBUG` de la température et de la source utilisée : **OK**.
- Conservation de la stabilisation démarrage/réseau `1.7.7` lors du test source : **OK**.
- Compilation de `CatalystSetup_v1.7.8.exe` : **OK**.
- Désinstallation de Catalyst `1.7.7` : **OK**.
- Installation de Catalyst `1.7.8` : **OK**.
- Redémarrage Windows : **OK**.
- Lancement immédiat après ouverture de session : fournisseur thermique parfois encore indisponible, carte masquée comme prévu.
- Lancement après initialisation complète de Windows : carte **Température** affichée correctement : **OK**.
- Tests de non-régression complets : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Backup final de la version `1.7.8` : **OK**.

## [1.7.7] - Stabilisation du démarrage et de la détection réseau

### Corrigé
- Correction d’un blocage intermittent de Catalyst au démarrage, observé après la validation de Winget et avant l’affichage de l’interface principale.
- Le blocage pouvait laisser le processus PowerShell actif sans progression visible et nécessiter sa fermeture depuis le Gestionnaire des tâches.
- Suppression des appels identifiés comme potentiellement bloquants dans la collecte système initiale :
  - `Get-Counter '\Processor(_Total)\% Processor Time'` ;
  - `Win32_PerfFormattedData_PerfOS_Processor` ;
  - `Test-Connection` vers `8.8.8.8`.
- La charge CPU utilisée au démarrage repose désormais uniquement sur `Win32_Processor.LoadPercentage`.
- Correction de la détection de l’interface réseau active.
- L’interface utilisée par Catalyst est désormais déterminée à partir de la route IPv4 par défaut :
  - récupération de la route `0.0.0.0/0` ;
  - récupération de son `InterfaceIndex` ;
  - résolution de l’adaptateur correspondant ;
  - récupération de l’adresse IPv4, de la passerelle et des serveurs DNS.
- Ajout d’un fallback basé sur les interfaces actives disposant d’une adresse IPv4 exploitable lorsque la route par défaut ne permet pas d’identifier l’adaptateur.

### Modifié
- `Get-SystemInfo` n’interroge plus plusieurs fois `Win32_OperatingSystem` pour récupérer les informations système de base.
- Une seule instance de `Win32_OperatingSystem` est désormais réutilisée pour :
  - les informations Windows ;
  - la mémoire ;
  - l’uptime système.
- Le contrôle de connectivité du Dashboard ne dépend plus d’un ping vers Internet.
- L’état réseau rapide repose désormais sur la présence d’une adresse IPv4 et d’une passerelle valides.
- Renforcement de la trace de démarrage afin d’identifier précisément les étapes de collecte système et réseau.
- Conservation volontaire du marqueur de trace :
  - `NETWORK FIX V3 ACTIVE`.
- Ce marqueur permet de confirmer immédiatement que la logique réseau validée est bien chargée lors du démarrage.

### Détails techniques
- La correction principale est limitée à :
  - `Modules\Catalyst.Core.psm1`.
- La détection réseau suit désormais l’ordre :
  - route IPv4 par défaut ;
  - `InterfaceIndex` ;
  - `Get-NetAdapter` ;
  - `Get-NetIPAddress` ;
  - `Get-DnsClientServerAddress`.
- Les appels réseau restent synchrones, mais les opérations susceptibles de provoquer les anciens blocages ont été retirées.
- Les traces détaillées sont écrites dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Logs\Catalyst_StartupTrace.log`.
- Les traces permettent notamment d’identifier :
  - le début et la fin des appels CIM principaux ;
  - la route IPv4 sélectionnée ;
  - l’index de l’interface ;
  - l’adaptateur réseau retenu ;
  - l’adresse IPv4 ;
  - le nombre de serveurs DNS ;
  - la durée de récupération des informations système.
- Aucun changement appliqué :
  - au XAML du Dashboard ;
  - aux outils intégrés ;
  - à Winget ;
  - au montage des lecteurs réseau ;
  - aux données utilisateur.

### Fichiers modifiés
- `Modules\Catalyst.Core.psm1` ;
- `CHANGELOG.md`.

### Packaging
- La correction est prévue pour la version `1.7.7`.
- Le numéro de build global devra être synchronisé sur Catalyst et tous les outils.
- `CatalystSetup.iss` devra passer en version `1.7.7`.
- Le Release Manager devra utiliser la cible `1.7.7`.
- Le fichier généré devra être :
  - `CatalystSetup_v1.7.7.exe`.
- Aucun nouveau module, launcher, composant graphique ou dépendance n’est ajouté au package.

### Validation
- Reproduction du blocage intermittent sur la base `1.7.6` : **OK**.
- Identification de `Get-SystemInfo` comme étape située immédiatement après Winget dans la séquence de démarrage : **OK**.
- Suppression des appels CPU historiques susceptibles de bloquer : **OK**.
- Suppression du ping Internet utilisé pendant la collecte initiale : **OK**.
- Détection réseau par route IPv4 par défaut : **OK**.
- Récupération de l’adaptateur Ethernet actif : **OK**.
- Récupération de l’adresse IPv4, de la passerelle et des DNS : **OK**.
- Affichage correct des informations réseau dans le Dashboard : **OK**.
- Série de 10 lancements consécutifs sans freeze : **OK**.
- Redémarrage Windows puis nouveau lancement sans freeze : **OK**.
- Validation du module `Catalyst.Core.psm1` V3 de référence : **OK**.
- Tentative de nettoyage du marqueur `NETWORK FIX V3 ACTIVE` : **non retenue**, le comportement intermittent ayant réapparu après sa suppression.
- Retour au module V3 de référence : **OK**.
- Compilation de `CatalystSetup_v1.7.7.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.7.7` : **OK**.
- Tests de non-régression complets : à valider.
- Diagnostic complet de la build installée : **OK**.
- Backup final de la version `1.7.7` : **OK**.

## [1.7.6] - Nettoyage de l’interface VideoConverterEngine

### Corrigé
- Suppression du chemin de test historique prérempli dans le champ **Chemin source** de **VideoConverterEngine** :
  - ancien contenu : `C:\Temp\TestVideoEngine` ;
  - nouveau comportement : champ vide au démarrage.
- L’utilisateur doit désormais sélectionner explicitement le dossier source avec le bouton **Parcourir**.
- Cette correction évite :
  - l’affichage d’un ancien nom technique `VideoEngine` ;
  - la présence d’un chemin de développement inexistant sur les postes installés ;
  - toute confusion avec l’identité actuelle **VideoConverterEngine**.
- Correction de l’affichage « Module integre » en « Module intégré » dans le menu Outils.
- Restauration des accents dans les messages personnalisés de fin d’installation et de redémarrage de l’installateur.  
  
### Modifié
- Mise à jour du commentaire interne de la vue XAML :
  - `Icône VideoEngine` devient `Icône VideoConverterEngine`.
- Aucun chemin de démonstration ou de développement n’est désormais imposé au lancement de l’outil.

### Détails techniques
- La correction est limitée à la vue :
  - `assets\tools\VideoConverterEngine\Views\VideoConverterEngine.MainView.xaml`.
- Le champ `TxtSourcePath` conserve son fonctionnement existant et démarre avec une valeur vide.
- La validation déjà présente dans les modules continue d’empêcher l’exécution lorsqu’aucun chemin source n’est renseigné.
- Aucun changement appliqué :
  - au moteur de conversion ;
  - au remux MP4/MKV ;
  - au traitement des métadonnées ;
  - au renommage ;
  - aux dépendances `ffmpeg.exe`, `ffprobe.exe` et `mkvpropedit.exe` ;
  - aux logs, rapports ou données utilisateur.

### Documentation et dossier de référence
- Mise à jour de la capture officielle **VideoConverterEngine** afin de refléter le champ source vide.
- Finalisation du lot de captures anonymisées utilisé pour la documentation et le dossier officiel de référence.
- Les éléments documentaires ne modifient pas le fonctionnement de Catalyst ni le contenu applicatif de la build.

### Fichiers modifiés
- `assets\tools\VideoConverterEngine\Views\VideoConverterEngine.MainView.xaml` ;
- `Packaging\CatalystSetup.iss` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `CHANGELOG.md`.

### Packaging
- La correction est publiée sous la version `1.7.6`.
- Le numéro de build global doit être synchronisé sur Catalyst et tous les outils.
- `CatalystSetup.iss` doit passer en version `1.7.6`.
- Le Release Manager doit utiliser la cible `1.7.6`.
- Le fichier généré doit être :
  - `CatalystSetup_v1.7.6.exe`.
- Aucun nouveau fichier, module, launcher, composant graphique ou dépendance n’est ajouté au package.

### Validation
- Identification de l’ancien chemin prérempli `C:\Temp\TestVideoEngine` : **OK**.
- Correction de `VideoConverterEngine.MainView.xaml` : **OK**.
- Validation syntaxique XML/XAML du fichier corrigé : **OK**.
- Lancement de VideoConverterEngine depuis les sources avec le champ source vide : **OK**.
- Vérification du bouton **Parcourir** et de la sélection du dossier source : **OK**.
- Vérification du message affiché lorsqu’aucun chemin source n’est renseigné : **OK**.
- Simulation du Release Manager avec la cible `1.7.6` : **OK**.
- Compilation de `CatalystSetup_v1.7.6.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.7.6` : **OK**.
- Tests de non-régression de VideoConverterEngine et des autres outils : **OK**.
- Diagnostic complet de la build installée : **OK**.
- Audit des composants tiers après installation : **OK**.
- Backup final de la version `1.7.6` : **OK**.
- Version `1.7.6` **OK**.

## [1.7.5] - Correction du Diagnostic du raccourci Catalyst LAN Messenger

### Corrigé
- Correction du contrôle du raccourci Bureau **Catalyst LAN Messenger** dans le Diagnostic Catalyst.
- Le Diagnostic recherchait encore uniquement les anciennes variantes du nom du raccourci :
  - `LAN Messenger.lnk` ;
  - `LanMessenger.lnk` ;
  - `Catalyst - LAN Messenger.lnk` ;
  - `Catalyst - LanMessenger.lnk`.
- Depuis l’harmonisation des noms réalisée en version `1.7.4`, l’installateur crée désormais le raccourci officiel :
  - `Catalyst LAN Messenger.lnk`.
- Le raccourci pouvait donc être correctement créé et fonctionnel tout en étant signalé comme absent par le Diagnostic.
- Le nouveau nom officiel est désormais recherché en priorité.
- Les anciens noms restent acceptés afin de préserver la compatibilité avec les installations et raccourcis historiques.

### Origine
- Une installation propre de Catalyst `1.7.4` a été réalisée.
- L’option **Créer le raccourci Catalyst LAN Messenger sur le Bureau** a été sélectionnée dans l’installateur.
- Le raccourci a bien été créé dans :
  - `C:\Users\Public\Desktop\Catalyst LAN Messenger.lnk`.
- Le Diagnostic continuait néanmoins d’afficher :
  - `Raccourci absent ; optionnel dans l'installateur`.
- La création du raccourci par l’installateur était correcte ; seule sa détection utilisait encore l’ancienne nomenclature.

### Détails techniques
- Mise à jour de la liste `ShortcutNames` transmise au contrôle du raccourci LAN Messenger.
- Ajout de :
  - `Catalyst LAN Messenger.lnk`.
- Conservation des anciennes variantes pour assurer la rétrocompatibilité.
- Harmonisation du nom du contrôle avec l’identité officielle :
  - **Raccourci Bureau Catalyst LAN Messenger**.
- La cible attendue reste inchangée :
  - `assets\tools\LanMessenger\Launch-LanMessenger.vbs`.
- Le dossier de travail attendu reste :
  - `assets\tools\LanMessenger`.
- Aucun changement appliqué :
  - à l’installateur et à sa logique de création du raccourci ;
  - à LAN Messenger ;
  - à l’agent local ;
  - au démarrage automatique de session ;
  - au protocole TCP ;
  - à la règle firewall ;
  - aux données utilisateur.

### Fichiers modifiés
- `Modules\Catalyst.Diagnostic.psm1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Packaging
- La correction est publiée sous la version propre `1.7.5`.
- Le numéro de build global doit être appliqué à Catalyst et à tous les outils.
- `CatalystSetup.iss` doit passer en version `1.7.5`.
- Le Release Manager doit utiliser la cible `1.7.5`.
- Le fichier généré doit être :
  - `CatalystSetup_v1.7.5.exe`.
- Aucun nouveau fichier, module, launcher ou composant graphique n’est ajouté au package.

### Validation
- Reproduction de l’avertissement après installation propre de la build `1.7.4` : **OK**.
- Présence réelle de `Catalyst LAN Messenger.lnk` sur le Bureau public : **OK**.
- Identification de l’écart de nomenclature dans le Diagnostic : **OK**.
- Correction de `Modules\Catalyst.Diagnostic.psm1` : **OK**.
- Recompilation temporaire de la build `1.7.4` avec la correction : **OK**.
- Détection du raccourci **Catalyst LAN Messenger** après correction : **OK**.
- Suppression de l’avertissement dans le Diagnostic : **OK**.
- Compilation de `CatalystSetup_v1.7.5.exe` : **OK**.
- Installation ou mise à jour vers Catalyst `1.7.5` : **OK**.
- Diagnostic complet de la build installée : à valider.
- Tests de non-régression des outils : **OK**.
- Backup final de la version `1.7.5` : **OK**.

## [1.7.4] - Harmonisation des noms des outils et version globale Catalyst

### Modifié
- Harmonisation globale des noms visibles dans le menu **Outils** afin d'obtenir une présentation plus cohérente, professionnelle et naturelle en français.
- Les sept outils sont désormais affichés sous les noms fonctionnels suivants :
  - **Copie de fichiers** ;
  - **Traitement photo** ;
  - **Conversion vidéo** ;
  - **Messagerie LAN** ;
  - **Test de débit LAN** ;
  - **Stockage NAS** ;
  - **Recette de poste**.
- Ajout d'une seconde ligne permettant de conserver l'identité historique ou produit de chaque outil :
  - `CopyEngine` ;
  - `PhotoEngine` ;
  - `VideoConverterEngine` ;
  - `LAN Messenger` ;
  - `TransferBench` ;
  - `Catalyst NAS Storage`.
- Pour **Recette de poste**, seule la description reste affichée en seconde ligne afin d'éviter la répétition du même nom.
- Les noms officiels utilisés hors de Catalyst sont désormais harmonisés avec le préfixe **Catalyst** :
  - **Catalyst CopyEngine** ;
  - **Catalyst PhotoEngine** ;
  - **Catalyst VideoConverterEngine** ;
  - **Catalyst LAN Messenger** ;
  - **Catalyst TransferBench** ;
  - **Catalyst NAS Storage** ;
  - **Catalyst Recette de poste**.
- Les noms techniques internes restent inchangés afin de préserver la compatibilité :
  - identifiants ;
  - dossiers ;
  - scripts ;
  - modules ;
  - launchers ;
  - journaux ;
  - clés de registre ;
  - règles firewall ;
  - AppUserModelID.

### Renommage de LAN Speed Test
- L'outil **LAN Speed Test** est renommé **Catalyst TransferBench** afin de lui donner une identité propre et d'éviter toute confusion avec un logiciel tiers utilisant déjà le même nom.
- Dans le menu **Outils**, le nom fonctionnel reste **Test de débit LAN**.
- La seconde ligne affiche désormais :
  - `TransferBench : Mesurer le débit pratique vers un dossier local ou réseau`.
- La fenêtre autonome utilise désormais le titre :
  - **Catalyst TransferBench**.
- Les messages visibles, journaux d'interface et textes du benchmark sont harmonisés avec le nouveau nom.
- Les éléments techniques historiques restent conservés :
  - `Id = "LanSpeedTest"` ;
  - dossier `assets\tools\LanSpeedTest` ;
  - script `Catalyst.LanSpeedTest.ps1` ;
  - launcher `Launch-LanSpeedTest.vbs` ;
  - modules `Catalyst.LanSpeedTest.*` ;
  - dossier de logs `LanSpeedTest`.

### Version globale
- Le numéro de build général Catalyst devient la source unique de version pour l'application principale et tous les outils.
- Le Release Manager applique désormais systématiquement la version cible à :
  - Catalyst principal ;
  - CopyEngine ;
  - PhotoEngine ;
  - VideoConverterEngine ;
  - LAN Messenger ;
  - TransferBench ;
  - Catalyst NAS Storage ;
  - Recette de poste.
- Les composants sont cochés et verrouillés dans le Release Manager afin d'empêcher la génération d'une release contenant des numéros de version différents.
- **Recette de poste** est ajoutée à la synchronisation automatique du numéro de build.
- Le numéro de version de chaque outil est mis à jour dans ses emplacements applicables :
  - scripts principaux ;
  - modules de version ;
  - vues XAML lorsqu'un badge existe ;
  - cartes du menu **Outils**.
- TransferBench et Recette de poste ne disposent pas d'un badge de version dans leur bandeau autonome ; leur version reste portée par leurs scripts, modules et cartes Outils.

### Raccourcis et installateur
- Les raccourcis Bureau optionnels adoptent les noms officiels :
  - `Catalyst CopyEngine.lnk` ;
  - `Catalyst PhotoEngine.lnk` ;
  - `Catalyst VideoConverterEngine.lnk` ;
  - `Catalyst LAN Messenger.lnk` ;
  - `Catalyst TransferBench.lnk` ;
  - `Catalyst NAS Storage.lnk`.
- L'installateur supprime les anciens raccourcis pendant une mise à niveau, notamment :
  - les noms sans préfixe Catalyst ;
  - les anciennes variantes `Catalyst - ...` ;
  - `LAN Speed Test.lnk` ;
  - `LanSpeedTest.lnk`.
- La détection et la suppression des raccourcis lors de la désinstallation prennent en charge les anciens et les nouveaux noms.
- `CatalystSetup.iss` passe en version `1.7.4`.
- Le fichier généré doit être :
  - `CatalystSetup_v1.7.4.exe`.

### Détails techniques
- Ajout des propriétés distinctes dans le catalogue des outils :
  - `DisplayName` pour le nom fonctionnel affiché dans Catalyst ;
  - `OriginalName` pour l'identité historique affichée en seconde ligne ;
  - `Title` pour le nom officiel utilisé dans les contextes autonomes.
- Le modèle XAML `ToolListItemTemplate` utilise désormais :
  - `DisplayName` pour le titre principal ;
  - `Subtitle` pour la seconde ligne combinant le nom historique et la description.
- La page **À propos** est harmonisée avec les nouveaux noms fonctionnels.
- Le titre interne **Recette de poste** utilise désormais une capitalisation cohérente.
- Le Diagnostic Catalyst recherche désormais le raccourci **Catalyst TransferBench** tout en conservant les chemins techniques `LanSpeedTest`.
- Le Release Manager et l'installateur conservent les chemins et noms internes existants afin d'éviter toute régression ou migration de données.

### Fichiers modifiés
- `Catalyst.xaml` ;
- `Modules\Catalyst.SystemTools.psm1` ;
- `Modules\Catalyst.SystemToolsUI.psm1` ;
- `Modules\Catalyst.Diagnostic.psm1` ;
- `Modules\Catalyst.UI.psm1` ;
- `assets\tools\LanSpeedTest\Catalyst.LanSpeedTest.ps1` ;
- `assets\tools\LanSpeedTest\Views\Catalyst.LanSpeedTest.xaml` ;
- `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.Core.psm1` ;
- `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.Events.psm1` ;
- `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.UI.psm1` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Validation
- Affichage des sept noms fonctionnels dans le menu **Outils** : **OK**.
- Affichage des noms historiques et descriptions sur la seconde ligne : **OK**.
- Conservation de **Recette de poste** en dernière position : **OK**.
- Renommage visible de LAN Speed Test en **TransferBench** : **OK**.
- Titre de la fenêtre autonome **Catalyst TransferBench** : **OK**.
- Lancement et fonctionnement du benchmark après renommage : **OK**.
- Conservation des identifiants et chemins techniques `LanSpeedTest` : **OK**.
- Simulation du Release Manager avec la cible `1.7.4` : **OK**.
- Synchronisation de tous les numéros de version sur `1.7.4` : **OK**.
- Compilation de `CatalystSetup_v1.7.4.exe` : **OK**.
- Installation propre de Catalyst `1.7.4` : **OK**.
- Création des nouveaux raccourcis Bureau : **OK**.
- Création du raccourci `Catalyst TransferBench.lnk` : **OK**.
- Création du raccourci `Catalyst LAN Messenger.lnk` : **OK**.
- Tests fonctionnels de la build installée : **OK**.
- Diagnostic complet : **OK**, après correction de la détection du nouveau nom du raccourci LAN Messenger.
- Recompilation de la build `1.7.4` avec la correction du Diagnostic : **OK**.
- Backup : **OK**.
- La correction finale du Diagnostic est publiée proprement sous la version `1.7.5`.

## [1.7.3] - Refonte de la page Outils en liste pleine hauteur

### Modifié
- Refonte complète de la page **Outils** afin de remplacer l’ancienne présentation en cartes par une liste verticale plus compacte.
- Chaque outil occupe désormais une ligne dédiée comprenant :
  - l’icône ;
  - le nom ;
  - la description ;
  - la version ;
  - la taille ou le type de module ;
  - le bouton **Exécuter** ;
  - le bouton de création du raccourci Bureau lorsqu’il est disponible.
- Les sept lignes se répartissent automatiquement sur toute la hauteur disponible de la fenêtre.
- Suppression du scroll vertical inutile sur la résolution de bureau testée.
- **Recette de Poste** est désormais placée en dernière position dans la liste.
- Le bandeau de la page Outils est légèrement compacté afin de laisser davantage d’espace au contenu.
- Le compteur du bandeau gère désormais correctement le singulier et le pluriel :
  - `outil disponible` / `outils disponibles` ;
  - `catégorie` / `catégories`.

### Présentation
- Conservation de l’identité visuelle Catalyst :
  - palette sombre ;
  - boutons d’action bleus ;
  - icônes centralisées ;
  - coins arrondis ;
  - ombres légères ;
  - couleur d’accent propre à chaque outil.
- Ajout d’un déplacement horizontal discret, d’un renforcement de l’ombre et d’une légère teinte colorée au survol d’une ligne.
- Le bouton **Raccourci Bureau** devient une action secondaire compacte avec icône et infobulle.
- Les informations importantes restent visibles immédiatement sans ouvrir de détail supplémentaire.

### Détails techniques
- Remplacement du `ScrollViewer` principal de la page Outils par une grille utilisant toute la hauteur disponible.
- Remplacement des zones `ToolsStandard` et `ToolsWide` par une liste unique `ToolsList`.
- Utilisation d’un `UniformGrid` à une colonne afin de répartir uniformément les outils sur la hauteur restante.
- Ajout du modèle XAML `ToolListItemTemplate` pour centraliser le rendu de chaque ligne.
- Le module UI conserve l’ordre de référence des outils, puis déplace explicitement l’entrée `RecettePoste` en dernière position.
- Les gestionnaires existants restent conservés pour :
  - le lancement des outils ;
  - la création des raccourcis Bureau ;
  - les actions complémentaires déjà prises en charge.
- Aucun changement appliqué au catalogue des outils, à leurs launchers ou à leur logique métier.

### Fichiers modifiés
- `Catalyst.xaml` ;
- `Modules\Catalyst.SystemToolsUI.psm1` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.7.3`.
- Le Release Manager doit préparer par défaut la cible `1.7.3`.
- Les fichiers corrigés à inclure dans la build sont :
  - `Catalyst.xaml` ;
  - `Modules\Catalyst.SystemToolsUI.psm1`.
- Aucun nouveau module, launcher, fichier de configuration ou ressource graphique n’est ajouté.

### Validation
- Nouvelle présentation en liste validée en environnement source.
- Affichage des sept outils sur une seule page validé.
- Répartition des lignes sur toute la hauteur disponible validée.
- Absence de scroll vertical sur la résolution de bureau testée validée.
- Affichage des icônes, descriptions, versions, tailles et boutons validé.
- Positionnement de **Recette de Poste** en dernière position validé.
- Cohérence visuelle avec l’identité Catalyst validée.
- Compilation de la build `1.7.3` à effectuer.
- Installation, lancement depuis `Program Files`, boutons **Exécuter**, raccourcis Bureau et backup à valider.

## [1.7.2] - Démarrage automatique de LAN Messenger dans le systray

### Ajouté
- Ajout du lancement automatique de l’interface complète **Catalyst LAN Messenger** dans la zone de notification Windows.
- Après l’ouverture de session :
  - le wrapper attend le délai initial de démarrage ;
  - l’agent local est lancé et contrôlé ;
  - l’interface LAN Messenger est ensuite chargée automatiquement en mode systray.
- L’interface est lancée au plus tôt environ 20 secondes après le démarrage du wrapper de session.

### Modifié
- Ajout du paramètre `-StartInTray` au point d’entrée :
  - `assets\tools\LanMessenger\Catalyst.LanMessenger.ps1`.
- Le module UI prend désormais en charge un démarrage silencieux :
  - aucune fenêtre visible ;
  - aucune activation de la barre des tâches ;
  - aucune notification d’information au démarrage ;
  - icône LAN Messenger disponible dans le systray.
- Le wrapper `Start-LanMessenger-AgentStartup.ps1` lance désormais l’interface avec `-StartInTray` après le démarrage et la vérification de l’agent.
- Le fonctionnement existant reste conservé :
  - agent local séparé de l’interface ;
  - écoute TCP sur le port `45452` ;
  - restauration depuis le systray ;
  - affichage des messages entrants ;
  - fermeture complète via `X`, **Fermer** ou **Quitter**.

### Sécurités
- Ajout d’une détection d’instance existante afin d’éviter plusieurs interfaces LAN Messenger simultanées.
- Un lancement manuel alors que LAN Messenger est déjà actif dans le systray demande la restauration de l’instance existante.
- Le lancement automatique est ignoré si une interface est déjà active.
- En cas d’échec de création du systray, l’interface reste accessible sous forme minimisée dans la barre des tâches.
- Aucune tâche planifiée n’est réintroduite et la valeur existante `HKCU\Run` reste l’unique mécanisme de démarrage de session.

### Détails techniques
- Ajout d’un marqueur de demande de restauration :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\State\LanMessenger\MainWindow.open.request`.
- Le marqueur `MainWindow.active.json` reste utilisé pour signaler la présence de l’interface principale.
- Le timer de l’interface traite les demandes de restauration provenant d’un second lancement.
- Le wrapper applique un délai minimal configurable avant le lancement de l’interface :
  - `MinimumUiDelaySeconds = 20`.
- Aucun changement appliqué au protocole réseau, au format des conversations, à la règle firewall ou au Diagnostic Catalyst.

### Fichiers modifiés
- `assets\tools\LanMessenger\Catalyst.LanMessenger.ps1` ;
- `assets\tools\LanMessenger\Modules\LanMessenger.UI.psm1` ;
- `assets\tools\LanMessenger\Start-LanMessenger-AgentStartup.ps1` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` passe en version `1.7.2`.
- Le Release Manager prépare par défaut la cible `1.7.2`.
- La sélection par défaut du Release Manager reste limitée à :
  - **Catalyst principal** ;
  - **LAN Messenger**.
- Aucun nouveau fichier n’est ajouté au package ; les trois fichiers LAN Messenger modifiés figurent déjà dans les fichiers obligatoires contrôlés par le Release Manager.

### Validation
- Lancement manuel depuis la source avec le paramètre `-StartInTray` : **OK**.
- Présence de l’icône LAN Messenger dans le systray : **OK**.
- Démarrage sans affichage de la fenêtre principale : **OK**.
- Compilation de la build `1.7.2` : **OK**.
- Installation propre et redémarrage Windows : **OK**.
- Apparition automatique de l’icône dans le systray après environ 20 secondes : **OK**.
- Agent LAN Messenger actif depuis `Program Files` : **OK**.
- Écoute TCP sur le port `45452` : **OK**.
- Restauration de l’interface depuis le systray : **OK**.
- Réception et affichage des messages entrants : **OK**.
- Absence de double instance de l’interface LAN Messenger : **OK**.
- Backup : **OK**.
- Version `1.7.2` **OK**.

## [1.7.1] - Démarrage automatique de l’agent LAN Messenger

### Corrigé
- Correction du démarrage automatique de l’agent **Catalyst LAN Messenger** après une installation propre.
- Lors d’une installation neuve, la valeur `Catalyst LanMessenger Agent` est désormais créée dans :
  - `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`.
- L’agent peut ainsi démarrer automatiquement à l’ouverture de session Windows, sans nécessiter un premier lancement manuel de l’interface LAN Messenger.
- Conservation du comportement attendu :
  - démarrage de l’agent uniquement ;
  - aucune ouverture automatique de l’interface principale ;
  - aucun systray tant que LAN Messenger n’est pas lancé manuellement ;
  - écoute TCP sur le port `45452` après le délai initial prévu ;
  - aucune tâche planifiée réintroduite.

### Origine
- Après désinstallation de la version précédente, installation propre de Catalyst `1.7.0` et redémarrage du poste :
  - l’agent LAN Messenger était absent ;
  - le port TCP `45452` n’était pas en écoute ;
  - la valeur `Catalyst LanMessenger Agent` était absente de `HKCU\Run`.
- Le lancement manuel de LAN Messenger recréait ensuite correctement la valeur `HKCU\Run`, démarrait l’agent et supprimait les erreurs du Diagnostic.
- Le script `Install-LanMessengerAgentStartupTask.ps1` était déjà correct, mais n’était pas appelé par l’installateur.

### Détails techniques
- Ajout de l’exécution de :
  - `assets\tools\LanMessenger\Install-LanMessengerAgentStartupTask.ps1`
  dans la section `[Run]` de `CatalystSetup.iss`.
- Utilisation du drapeau Inno Setup `runasoriginaluser` afin que la valeur `HKCU\Run` soit créée dans le profil de l’utilisateur ayant lancé l’installation, et non dans le contexte élevé du setup.
- Mise à jour du bloc `$runBlock` dans `Install\Catalyst.ReleaseManager.ps1` afin que la correction soit conservée lors de la régénération automatique de l’installateur.
- Le script `Install-LanMessengerAgentStartupTask.ps1` reste inchangé.
- Aucun changement appliqué à l’agent, à l’interface LAN Messenger, au protocole TCP, au systray ou au Diagnostic.

### Fichiers modifiés
- `Packaging\CatalystSetup.iss` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` passe en version `1.7.1`.
- Le Release Manager prépare par défaut la cible `1.7.1`.
- La sélection par défaut du Release Manager est limitée à :
  - **Catalyst principal** ;
  - **LAN Messenger**.
- Aucun nouveau fichier fonctionnel LAN Messenger n’est ajouté au package.

### Validation
- Installation propre après désinstallation de la version précédente validée.
- Redémarrage Windows validé.
- Création automatique de la valeur `Catalyst LanMessenger Agent` dans `HKCU\Run` validée.
- Démarrage de l’agent sans lancement manuel préalable de LAN Messenger validé.
- Écoute TCP sur le port `45452` validée.
- Diagnostic Catalyst sans erreur LAN Messenger après ouverture de session validé.
- Absence de tâche planifiée LAN Messenger confirmée.
- Correction `1.7.1` validée.

## [1.7.0] - Correction visuelle de la carte Ordinateur

### Corrigé
- Suppression de la seconde icône affichée devant la ligne **Domaine** ou **Groupe** dans la carte **Ordinateur** du Dashboard principal.
- Conservation de l’icône déjà définie dans le XAML de la carte.
- Suppression uniquement des pictogrammes injectés dynamiquement dans le texte par le module UI.
- Le rendu affiche désormais une seule icône devant :
  - `Domaine : <nom_du_domaine>` ;
  - ou `Groupe : <nom_du_groupe>`.

### Détails techniques
- La correction est limitée au module :
  - `Modules\Catalyst.UI.psm1`.
- Les chaînes dynamiques :
  - `🏢 Domaine : {0}` ;
  - `🏠 Groupe : {0}` ;
  sont remplacées respectivement par :
  - `Domaine : {0}` ;
  - `Groupe : {0}`.
- Aucun changement appliqué à `Catalyst.xaml`, à la collecte des informations système, à la navigation, aux autres cartes du Dashboard ou aux données utilisateur.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.7.0`.
- Le Release Manager doit préparer la cible `1.7.0`.
- La build doit inclure le fichier corrigé :
  - `Modules\Catalyst.UI.psm1`.
- Aucun nouveau module, fichier de configuration ou ressource n’est ajouté.

### Validation
- Affichage d’une seule icône dans la carte **Ordinateur** validé en environnement source.
- Affichage du nom du domaine sans régression validé.
- Cas poste en groupe de travail préservé.
- Test depuis la source : **OK**.
- Compilation de la build `1.7.0` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.7.0` **OK**.

## [1.6.9] - Dépendances SNMP dans la page À propos

### Modifié
- Mise à jour de l’encart **Dépendances principales** de la page **À propos** afin de prendre en compte les composants utilisés par **Catalyst NAS Storage**.
- Ajout des dépendances embarquées :
  - `PoshSNMP 0.2.3` ;
  - `SharpSnmpLib.dll`.
- Conservation des dépendances déjà affichées :
  - `winget.exe` ;
  - `ffmpeg.exe` ;
  - `ffprobe.exe` ;
  - `mkvpropedit.exe`.
- Clarification du texte d’information situé sous la liste :
  - les dépendances système sont vérifiables depuis la page **Diagnostic** ;
  - les composants SNMP sont embarqués avec Catalyst NAS Storage.

### Détails techniques
- La modification est limitée à l’encart **Dépendances principales** de `Catalyst.xaml`.
- Aucun changement appliqué à la collecte SNMP, à la configuration NAS, au module `PoshSNMP`, à `SharpSnmpLib.dll` ou à la page Diagnostic.
- Aucun chemin, log, rapport, état ou fichier utilisateur n’est ajouté dans `Program Files`.
- Le seul fichier fonctionnel modifié est :
  - `Catalyst.xaml`.

### Analyse complémentaire
- Audit du démarrage de **Catalyst LAN Messenger** à l’ouverture de session.
- Confirmation que la clé `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` lance uniquement l’agent en arrière-plan via `Launch-LanMessenger-Agent.vbs`.
- Confirmation que l’interface principale et le systray ne démarrent pas automatiquement avec la session Windows.
- Confirmation de l’absence de tâche planifiée active pour ce mécanisme.
- Conservation du fonctionnement validé :
  - agent local en arrière-plan ;
  - écoute TCP sur le port `45452` ;
  - réception des messages ;
  - lancement manuel de l’interface ;
  - réduction dans le systray ;
  - fermeture complète de l’interface avec `X` ou **Fermer**.
- Aucune modification de code LAN Messenger nécessaire à la suite de cet audit.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.9`.
- Le Release Manager doit préparer la cible `1.6.9`.
- La build doit inclure le fichier `Catalyst.xaml` corrigé.
- Aucun nouveau module, launcher, fichier de configuration ou composant SNMP n’est ajouté.

### Validation
- Affichage de `PoshSNMP 0.2.3` dans l’encart **Dépendances principales** validé en environnement source.
- Affichage de `SharpSnmpLib.dll` validé en environnement source.
- Conservation des quatre dépendances existantes validée.
- Nouveau texte explicatif validé.
- Navigation vers la page **À propos** sans régression.
- Test depuis la source : **OK**.
- Audit du démarrage LAN Messenger terminé sans correction nécessaire.
- Compilation de la build `1.6.9` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.6.9` **OK**.

## [1.6.8] - Harmonisation visuelle de LAN Speed Test

### Modifié
- Remplacement du pictogramme texte du bandeau par le logo centralisé :
  - `assets\icons\LanSpeedTest.png`.
- Utilisation du PNG centralisé dans le bandeau principal de **LAN Speed Test**.
- Conservation de l’ICO centralisé pour la fenêtre, la barre des tâches et le raccourci Bureau :
  - `assets\icons\LanSpeedTest_256.ico`.
- Centrage visuel du groupe composé du logo, du titre et du sous-titre dans le bandeau.
- Harmonisation du titre avec la présentation de **Catalyst NAS Storage** et **VideoConverterEngine**.
- Suppression du badge de version **Catalyst 1.6.7** situé à droite du bandeau.
- Conservation de toutes les fonctionnalités existantes du benchmark LAN Speed Test.

### Détails techniques
- Ajout du contrôle XAML `ImgHeaderLogo` dans le bandeau principal.
- Ajout de la fonction `Set-CatalystLanSpeedTestHeaderLogo` dans le module UI afin de charger `LanSpeedTest.png` depuis `assets\icons`.
- Le chargement du PNG utilise un `BitmapImage` mis en cache afin de ne pas conserver le fichier verrouillé.
- La logique existante de `Catalyst.LanSpeedTest.UI.psm1` continue de privilégier `LanSpeedTest_256.ico` pour l’icône de fenêtre et la barre des tâches.
- Le Release Manager ne tente plus de mettre à jour un badge de version dans le XAML LAN Speed Test, puisque cet affichage a été volontairement retiré.
- La version LAN Speed Test reste mise à jour dans :
  - `assets\tools\LanSpeedTest\Catalyst.LanSpeedTest.ps1` ;
  - `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.Core.psm1` ;
  - la carte correspondante dans `Modules\Catalyst.SystemTools.psm1`.
- Aucun changement appliqué au moteur de benchmark, aux événements, aux calculs de débits, aux logs ou aux données utilisateur.

### Fichiers modifiés
- `assets\tools\LanSpeedTest\Views\Catalyst.LanSpeedTest.xaml` ;
- `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.UI.psm1` ;
- `Install\Catalyst.ReleaseManager.ps1` ;
- `Packaging\CatalystSetup.iss` ;
- `CHANGELOG.md`.

### Packaging
- `CatalystSetup.iss` passe en version `1.6.8`.
- Le Release Manager prépare par défaut la cible `1.6.8`.
- La sélection par défaut du Release Manager est limitée à **Catalyst principal** et **LAN Speed Test** pour cette build.
- Aucun nouveau module, launcher, fichier de configuration ou ressource graphique n’est ajouté.

### Validation
- Affichage du logo PNG centralisé dans le bandeau validé en environnement source.
- Centrage du logo, du titre et du sous-titre validé.
- Suppression du badge de version à droite validée.
- Icône ICO de fenêtre et barre des tâches conservée.
- Benchmark, sélection du dossier, multi-passes, résultats et logs sans régression.
- Tests depuis la source : **OK**.
- Compilation de la build `1.6.8` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.6.8` **OK**.

## [1.6.7] - Finition visuelle du bandeau VideoConverterEngine

### Modifié
- Suppression du cercle de fond et du halo lumineux affichés derrière le logo dans le bandeau principal de **VideoConverterEngine**.
- Conservation du logo VideoConverterEngine actuel, sans modification de la ressource PNG.
- Conservation du titre, du sous-titre, des dimensions et du positionnement existants.
- La modification est strictement limitée à la présentation visuelle du bandeau.

### Détails techniques
- Suppression du bloc `Ellipse` et de son `DropShadowEffect` dans la vue XAML principale.
- Aucun changement appliqué aux modules PowerShell, aux fonctions de conversion, au remux, aux métadonnées, au renommage ou aux données utilisateur.
- Le seul fichier fonctionnel modifié est :
  - `assets\tools\VideoConverterEngine\Views\VideoConverterEngine.MainView.xaml`.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.7`.
- Le Release Manager doit préparer la cible `1.6.7`.
- Aucun nouveau module, fichier de configuration ou ressource n’est ajouté.

### Validation
- Suppression du cercle et du halo derrière le logo validée en environnement source.
- Conservation du logo, du titre et du sous-titre validée.
- Test depuis la source : **OK**.
- Compilation de la build `1.6.7` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.6.7` **OK**.

## [1.6.6] - Finition visuelle du bandeau Catalyst NAS Storage

### Modifié
- Suppression du cercle de fond et du halo lumineux affichés derrière le logo dans le bandeau principal de **Catalyst NAS Storage**.
- Conservation du logo Catalyst NAS Storage actuel, sans modification de la ressource PNG.
- Conservation du titre, du sous-titre, des dimensions et du positionnement existants.
- La modification est strictement limitée à la présentation visuelle du bandeau.

### Détails techniques
- Suppression du bloc `Ellipse` et de son `DropShadowEffect` dans la vue XAML principale.
- Aucun changement appliqué aux modules PowerShell, à la collecte SNMP, aux paramètres, aux rapports HTML ou aux données utilisateur.
- Le seul fichier fonctionnel modifié est :
  - `assets\tools\NasStorage\Views\Catalyst.NasStorage.MainView.xaml`.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.6`.
- Le Release Manager doit préparer la cible `1.6.6`.
- Aucun nouveau module, fichier de configuration, worker ou ressource n’est ajouté.

### Validation
- Suppression du cercle et du halo derrière le logo validée en environnement source.
- Conservation du logo, du titre et du sous-titre validée.
- Test depuis la source : **OK**.
- Compilation de la build `1.6.6` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.6.6` **OK**.

## [1.6.5] - Page À propos / étude des noms de volumes NAS

### Modifié
- Ajout de **Catalyst NAS Storage** dans la liste des outils intégrés affichée sur la page **À propos**.
- Ajout d’une carte dédiée présentant la supervision SNMP des volumes NAS et la génération de rapports HTML.
- La grille des outils de la page **À propos** utilise désormais ses huit emplacements disponibles.
- La modification est limitée au fichier principal `Catalyst.xaml`.

### Analyse
- Étude de la récupération automatique des noms fonctionnels des volumes Synology après connexion SNMP.
- Vérification des informations retournées par :
  - `HOST-RESOURCES-MIB` ;
  - `SYNOLOGY-RAID-MIB` ;
  - `SYNOLOGY-SPACEIO-MIB`.
- Le NAS expose uniquement :
  - les points de montage techniques comme `/volume1` ;
  - les noms DSM génériques comme `Volume 1` ;
  - les périphériques internes comme `dm-1`.
- Les noms fonctionnels personnalisés des volumes ne sont pas disponibles dans les tables SNMP interrogées.
- La saisie manuelle des noms fonctionnels est donc conservée afin d’éviter toute association incorrecte ou perte de personnalisation.
- Aucune modification de la collecte SNMP, du worker ou de la configuration Catalyst NAS Storage n’est appliquée pour ce point.

### Détails techniques
- Carte ajoutée dans la grille `UniformGrid` de la page **À propos** :
  - titre : **Catalyst NAS Storage** ;
  - description : supervision SNMP des volumes NAS et génération de rapports HTML.
- Aucun changement requis dans :
  - `Modules\Catalyst.UI.psm1` ;
  - `Modules\Catalyst.SystemTools.psm1` ;
  - `Modules\Catalyst.SystemToolsUI.psm1`.
- Le test SNMP des noms de volumes a confirmé que l’ordre des entrées Synology peut différer de l’ordre numérique des volumes et peut inclure un pool de stockage supplémentaire.
- Le numéro extrait du point de montage reste la référence fiable utilisée par Catalyst NAS Storage.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.5`.
- Le Release Manager doit préparer la cible `1.6.5`.
- Le seul fichier fonctionnel modifié à inclure dans cette build est :
  - `Catalyst.xaml`.
- Aucun nouveau module, worker, fichier de configuration ou ressource n’est ajouté.

### Validation
- Affichage de la carte **Catalyst NAS Storage** dans la page **À propos** validé en environnement source.
- Conservation des sept cartes existantes validée.
- Mise en page de la grille à huit cartes validée.
- Navigation vers la page **À propos** sans régression validée.
- Étude SNMP des noms de volumes terminée.
- Conservation de la saisie manuelle des noms fonctionnels validée comme comportement attendu.
- Compilation de la build `1.6.5` : **OK**.
- Tests de la build installée : **OK**.
- Backup : **OK**.
- Version `1.6.5` **OK**.

## [1.6.4] - Rapport HTML Catalyst NAS Storage

### Ajouté
- Ajout d’un rapport HTML stylisé pour **Catalyst NAS Storage**, cohérent avec les rapports générés par CopyEngine et Recette de Poste.
- Ajout du module dédié :
  - `assets\tools\NasStorage\Modules\Catalyst.NasStorage.Report.psm1`.
- Ajout de cartes de synthèse dans le rapport :
  - capacité totale ;
  - espace utilisé ;
  - espace libre.
- Ajout d’un tableau détaillé des volumes comprenant :
  - numéro du volume ;
  - nom fonctionnel ;
  - espace dédié ;
  - espace utilisé ;
  - espace libre ;
  - taux d’occupation ;
  - état du volume.
- Ajout d’une barre visuelle d’occupation pour chaque volume.
- Ajout de seuils visuels :
  - avertissement à partir de 80 % d’occupation ;
  - état critique à partir de 90 %.
- Ajout du logo Catalyst NAS Storage directement dans le rapport HTML au format Base64.
- Ajout de l’ouverture automatique du rapport dans le navigateur après sa génération.

### Modifié
- Les exports CSV et Excel sont remplacés par un rapport HTML unique.
- Le bouton **Générer le rapport HTML** remplace les commandes d’export CSV et Excel.
- Le bouton **Ouvrir les rapports** remplace l’ouverture du dossier des exports.
- Les rapports Catalyst NAS Storage sont désormais enregistrés dans :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\NasStorage`.
- Le module `Catalyst.NasStorage.State.psm1` initialise désormais le dossier dédié aux rapports NAS Storage.
- Le module `Catalyst.NasStorage.Core.psm1` ne contient plus la logique d’export CSV et Excel.
- Le point d’entrée `Catalyst.NasStorage.ps1` importe désormais le module de rapport HTML.
- Les textes de l’interface principale et de la fenêtre Paramètres sont harmonisés avec la nouvelle logique de rapports HTML.

### Détails techniques
- Le rapport est généré par la fonction `New-CatalystNasStorageHtmlReport`.
- Les données utilisées proviennent directement de la dernière collecte SNMP validée dans l’interface.
- La ligne TOTAL et le taux global d’occupation sont calculés avant la génération du rapport.
- La mise en page HTML est responsive et adaptée à l’impression.
- Le rapport contient le nom ou l’adresse du NAS, la date de collecte et la version Catalyst.
- La collecte SNMP, le worker, la configuration et la dépendance `PoshSNMP 0.2.3` ne sont pas modifiés.
- L’ancien dossier `Exports\NasStorage` reste compatible avec les données historiques, mais n’est plus utilisé pour les nouveaux rapports.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.4`.
- Le Release Manager doit préparer la cible `1.6.4`.
- Le nouveau module `Catalyst.NasStorage.Report.psm1` doit être déclaré parmi les fichiers obligatoires de Catalyst NAS Storage.
- Les fichiers modifiés à inclure dans la build sont :
  - `assets\tools\NasStorage\Catalyst.NasStorage.ps1` ;
  - `assets\tools\NasStorage\Modules\Catalyst.NasStorage.State.psm1` ;
  - `assets\tools\NasStorage\Modules\Catalyst.NasStorage.Core.psm1` ;
  - `assets\tools\NasStorage\Modules\Catalyst.NasStorage.Report.psm1` ;
  - `assets\tools\NasStorage\Modules\Catalyst.NasStorage.UI.psm1` ;
  - `assets\tools\NasStorage\Views\Catalyst.NasStorage.MainView.xaml` ;
  - `assets\tools\NasStorage\Views\Catalyst.NasStorage.SettingsView.xaml`.

### Validation
- Génération du rapport HTML validée en environnement source.
- Création du rapport dans `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\NasStorage` validée.
- Ouverture automatique du rapport dans le navigateur validée.
- Présentation du rapport, cartes de synthèse, tableau, totaux et barres d’occupation validés.
- Remplacement fonctionnel des exports CSV et Excel validé.
- Interrogation SNMP et affichage des volumes sans régression validés.
- Compilation de la build `1.6.4` à effectuer.
- Installation, lancement depuis `Program Files`, désinstallation et backup à valider.

## [1.6.3] - Finitions visuelles Catalyst NAS Storage

### Modifié
- La fenêtre **Paramètres Catalyst NAS Storage** utilise désormais une taille fixe et ne peut plus être redimensionnée.
- Les champs de saisie SNMP et les noms fonctionnels des volumes disposent d’une hauteur, d’un espacement interne et d’un alignement vertical harmonisés.
- Le nom de l’application est uniformisé en **Catalyst NAS Storage** dans la fenêtre Paramètres et son bandeau.
- L’identité visuelle de Catalyst NAS Storage est modernisée afin de mieux correspondre à la forme et au style des autres outils Catalyst.
- Les fichiers d’icône restent centralisés dans `assets\icons` :
  - `CatalystNasStorage.png` ;
  - `CatalystNasStorage_256.ico`.
- Le fichier ICO est désormais généré en plusieurs résolutions afin d’améliorer le rendu dans Windows, les raccourcis et la barre des tâches.

### Corrigé
- Correction des cadres et contenus de saisie tronqués dans la fenêtre Paramètres.
- Correction du nom incomplet ou incohérent de l’application dans la fenêtre Paramètres.
- Correction du manque de cohérence visuelle de l’ancien logo Catalyst NAS Storage avec les autres outils Catalyst.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.3`.
- Le Release Manager doit préparer la cible `1.6.3`.
- Les fichiers corrigés ou remplacés à inclure dans le build sont :
  - `assets\tools\NasStorage\Views\Catalyst.NasStorage.SettingsView.xaml` ;
  - `assets\icons\CatalystNasStorage.png` ;
  - `assets\icons\CatalystNasStorage_256.ico`.

### Validation
- Taille fixe de la fenêtre Paramètres validée en environnement source.
- Affichage complet des champs de saisie validé en environnement source.
- Nom **Catalyst NAS Storage** harmonisé dans la fenêtre Paramètres.
- Nouvelles icônes PNG et ICO installées dans `assets\icons`.
- Compilation de la build `1.6.3` à effectuer.
- Installation ou mise à jour depuis `1.6.2` à valider.
- Rendu des icônes dans la carte **Outils**, l’en-tête, la fenêtre Paramètres, le raccourci Bureau et la barre des tâches à valider sur la build installée.
- Non-régression de l’interrogation SNMP, de l’affichage des volumes et des exports Excel/CSV à valider.

## [1.6.2] - Catalyst NAS Storage

### Ajouté
- Ajout du nouvel outil **Catalyst NAS Storage** dans le menu **Outils**.
- Ajout d’une supervision SNMPv2c des volumes du NAS Synology :
  - numéro du volume ;
  - nom fonctionnel personnalisable ;
  - espace dédié ;
  - espace utilisé ;
  - espace libre ;
  - ligne de total automatique.
- Ajout des exports CSV et Excel avec présentation centrée et totaux.
- Ajout d’une architecture modulaire dédiée sous `assets\tools\NasStorage`.
- Ajout des vues WPF séparées :
  - `Views\Catalyst.NasStorage.MainView.xaml` ;
  - `Views\Catalyst.NasStorage.SettingsView.xaml`.
- Ajout du worker SNMP isolé `Workers\Catalyst.NasStorage.SnmpWorker.ps1`.
- Ajout du lanceur `Launch-NasStorage.vbs`.
- Ajout des icônes dédiées centralisées dans `assets\icons` :
  - `CatalystNasStorage.png` ;
  - `CatalystNasStorage_256.ico`.
- Ajout d’une option facultative de raccourci Bureau **Catalyst NAS Storage** dans l’installateur.

### Modifié
- L’outil est renommé **Catalyst NAS Storage**.
- L’interface adopte le style des autres outils Catalyst, basé sur VideoConverterEngine.
- La fenêtre principale démarre maximisée.
- Les boutons utilisent le style Catalyst à bords arrondis.
- Les contenus du tableau sont centrés dans l’interface et dans les exports Excel.
- Les icônes ne sont plus stockées dans le dossier de l’outil ; elles sont résolues depuis `assets\icons`.
- La configuration, les logs, les exports et les fichiers temporaires sont stockés sous `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Le module `PoshSNMP 0.2.3` et `SharpSnmpLib.dll` sont embarqués avec l’outil afin d’éviter une dépendance au profil PowerShell de l’utilisateur.
- Le Release Manager prend en charge la mise à jour de version de Catalyst NAS Storage et contrôle ses fichiers obligatoires.
- L’installateur et le désinstallateur prennent en charge le raccourci, les résidus runtime et les fichiers verrouillés de Catalyst NAS Storage.

### Corrigé
- Correction du blocage de l’interface pendant une interrogation SNMP sans réponse.
- Correction du chargement incompatible de `PoshSNMP 0.2.1` sous PowerShell 7.6.3.
- Correction du lanceur VBScript encodé avec BOM, qui provoquait une erreur de compilation Microsoft VBScript.
- Correction de la portée des fonctions PowerShell utilisées par les événements WPF différés.
- Correction du script d’application du correctif qui transmettait plusieurs fois le paramètre `LiteralPath`.

### Détails techniques
- Point d’entrée : `assets\tools\NasStorage\Catalyst.NasStorage.ps1`.
- Modules :
  - `Catalyst.NasStorage.State.psm1` ;
  - `Catalyst.NasStorage.Helpers.psm1` ;
  - `Catalyst.NasStorage.Config.psm1` ;
  - `Catalyst.NasStorage.Core.psm1` ;
  - `Catalyst.NasStorage.Runtime.psm1` ;
  - `Catalyst.NasStorage.UI.psm1`.
- Dépendance locale :
  - `Modules\PoshSNMP\0.2.3\PoshSNMP.psd1` ;
  - `Modules\PoshSNMP\0.2.3\lib\SharpSnmpLib.dll`.
- Données utilisateur :
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Config\NasStorage` ;
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Logs\NasStorage` ;
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Exports\NasStorage` ;
  - `%LOCALAPPDATA%\BDSLab\Catalyst\Temp\NasStorage`.
- La communauté SNMP est protégée avec le mécanisme Windows utilisé par `ConvertFrom-SecureString`.
- La collecte s’exécute dans un processus PowerShell séparé avec délai maximal contrôlé afin de préserver la réactivité de l’interface.

### Packaging
- `CatalystSetup.iss` passe en version `1.6.2`.
- Le Release Manager prépare désormais la cible `1.6.2`.
- Tous les fichiers de Catalyst NAS Storage, les vues, le worker, le modèle Excel, les icônes et la dépendance SNMP doivent être inclus dans le build.
- Les éventuels dossiers `assets\tools\NasStorage\Logs` sont interdits dans le package final.
- La garde de fichiers verrouillés contrôle notamment `SharpSnmpLib.dll` afin d’empêcher une mise à jour ou une désinstallation pendant l’utilisation de l’outil.

### Validation
- Lancement direct depuis PowerShell 7 validé.
- Démarrage maximisé validé.
- Architecture modulaire et vues XAML séparées validées.
- Carte **Catalyst NAS Storage** présente dans le menu **Outils** validée.
- Lancement depuis le bouton **Exécuter** validé.
- Interrogation SNMP du NAS validée.
- Affichage des six volumes et de la ligne TOTAL validé.
- Personnalisation des noms de volumes validée.
- Export Excel et CSV validé.
- Icônes centralisées dans `assets\icons` validées en environnement source.
- Compilation, installation, lancement depuis `Program Files`, mise à jour et désinstallation à valider avec la build `1.6.2`.

## [1.6.1] - Diagnostic Catalyst renforcé

### Ajouté
- Ajout du module `Modules\Catalyst.Diagnostic.psm1`.
- Ajout d’une catégorie de contrôles de santé dédiée à **LAN Messenger** dans Diagnostic Catalyst.
- Contrôle de l’agent LAN Messenger actif et identification du processus propriétaire.
- Contrôle de l’écoute TCP sur le port `45452`.
- Contrôle de la valeur `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` nommée `Catalyst LanMessenger Agent`.
- Contrôle du chemin installé sous `Program Files` et du lanceur `Launch-LanMessenger-Agent.vbs`.
- Contrôle de la règle firewall `Catalyst LAN Messenger TCP 45452`.
- Contrôle des dossiers runtime dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Contrôle des accès en lecture et écriture au runtime et aux journaux.
- Contrôle de la présence et de la lisibilité des logs LAN Messenger.
- Contrôle de la validité de `Config\LanMessenger\targets.json` lorsqu’il existe.
- Détection de la version Catalyst de référence qui embarque LAN Messenger.
- Contrôle des raccourcis Bureau **LAN Messenger** et **LAN Speed Test**, avec validation de leurs cibles.
- Contrôle de cohérence des fichiers LAN Messenger installés.
- Contrôle de cohérence entre l’installation Catalyst, son inscription de désinstallation et le désinstallateur.
- Détection des anciens dossiers runtime dans `Program Files` et des anciennes tâches planifiées LAN Messenger.

### Modifié
- Le Diagnostic importe la logique LAN Messenger depuis un module indépendant, sans modification du XAML.
- L’absence d’un raccourci Bureau optionnel est classée en **Attention** ; un raccourci présent mais cassé est classé en **Erreur**.
- Les contrôles sont en lecture seule, à l’exception d’un fichier temporaire immédiatement supprimé pour valider réellement l’accès en écriture aux dossiers runtime.

### Packaging
- `Modules\Catalyst.Diagnostic.psm1` doit être inclus dans la build.
- Le Release Manager doit déclarer `Modules\Catalyst.Diagnostic.psm1` dans ses listes de fichiers obligatoires.
- Aucune modification de LAN Messenger, de son agent ou du XAML Catalyst.

### Validation
- Étape 1 validée : agent actif et port TCP `45452` en écoute.
- Étape 2 validée : clé HKCU Run, chemin Program Files et règle firewall.
- Contrôles runtime, logs, version, raccourcis et cohérence à valider avant la build finale `1.6.1`.

## [1.6.0] - LAN Messenger / agent robuste / notifications / packaging

### Ajouté
- **LAN Messenger**
  - Ajout d'un lanceur de démarrage robuste pour l'agent local via `Start-LanMessenger-AgentStartup.ps1`.
  - Ajout d'un délai initial et d'une boucle de retry au démarrage de session afin de fiabiliser le lancement de l'agent après redémarrage Windows.
  - Ajout d'un journal de démarrage dédié `LanMessenger_Startup_YYYYMMDD.log` dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs`.
  - Ajout de l'activation automatique du **Démarrage session** au premier lancement de LAN Messenger lorsque la clé `HKCU\Run` est absente.
  - Ajout d'un marqueur utilisateur permettant de respecter une désactivation volontaire du démarrage automatique.
  - Ajout d'une notification sonore système à la réception d'un message instantané.
- **LAN Speed Test**
  - Ajout de la prise en charge complète de la mise à jour automatique de version via le Release Manager :
    - commentaire `.VERSION` du script principal ;
    - fonction `Get-CatalystLanSpeedTestVersion` ;
    - affichage XAML `Catalyst x.y.z`.

### Modifié
- **LAN Messenger**
  - `Launch-LanMessenger-Agent.vbs` passe désormais par `Start-LanMessenger-AgentStartup.ps1` pour démarrer l'agent en arrière-plan.
  - Le démarrage de l'agent est fiabilisé lorsque Catalyst est installé dans `C:\Program Files\Catalyst`.
  - Le rattrapage agent côté interface est renforcé : si l'agent local est absent au lancement, LAN Messenger tente de le relancer automatiquement.
  - Le routage visuel des messages entrants utilise désormais le fichier de conversation JSONL comme source fiable du correspondant à afficher.
  - Lorsqu'un message arrive depuis un autre poste, l'interface bascule automatiquement vers l'expéditeur et affiche immédiatement le message.
  - Le comportement validé reste conservé : bouton `—` vers le systray, `X` et **Fermer** pour quitter complètement, restauration depuis le systray, absence de popup secondaire.
- **Installateur / désinstallateur**
  - Renforcement de la désinstallation de LAN Messenger afin d'éviter qu'un dossier vide reste dans `C:\Program Files\Catalyst\assets\tools\LanMessenger`.
  - Ajout d'un arrêt préventif des processus LAN Messenger avant suppression des fichiers.
  - Conservation de `WorkingDir={app}` pendant les actions de désinstallation afin d'éviter de verrouiller le dossier LAN Messenger lui-même.
  - La commande d'arrêt des processus LAN Messenger est encodée via `-EncodedCommand` pour éviter les erreurs Inno Setup liées aux guillemets imbriqués.
  - Le message d'avertissement de suppression des raccourcis Bureau détecte désormais aussi les raccourcis **LAN Messenger** et **LAN Speed Test**, y compris les variantes `Catalyst - ...`.
  - Le Release Manager régénère les blocs `[UninstallRun]` et `[UninstallDelete]` avec les corrections de nettoyage LAN Messenger.

### Corrigé
- Correction du cas où l'agent LAN Messenger démarrait correctement en lancement direct, mais se fermait immédiatement lorsqu'il était lancé via le wrapper depuis `C:\Program Files\Catalyst`.
- Correction du passage d'arguments `Start-Process` vers `pwsh.exe` lorsque le chemin complet de `Catalyst.LanMessenger.Agent.ps1` contient un espace.
- Correction du cas où, après installation propre et redémarrage, **Agent local** devait parfois être rattrapé manuellement.
- Correction du cas où **Démarrage session** devait être activé manuellement après une installation propre.
- Correction d'une régression de routage : un message entrant depuis un autre poste pouvait rester invisible tant que l'utilisateur ne sélectionnait pas manuellement le correspondant.
- Correction de l'absence de son à la réception d'un message instantané.
- Correction du dossier vide `C:\Program Files\Catalyst\assets\tools\LanMessenger` qui pouvait rester présent après désinstallation.
- Correction d'erreurs de compilation Inno Setup rencontrées pendant la stabilisation du packaging :
  - directive `AppId` dupliquée dans `[Setup]` ;
  - guillemets manquants dans le paramètre `Parameters` ;
  - ligne de commande PowerShell trop fragile dans `[UninstallRun]`.
- Correction du message d'avertissement manquant à la désinstallation lorsque seuls les raccourcis Bureau **LAN Messenger** et/ou **LAN Speed Test** étaient présents.
- Correction de la version affichée par **LAN Speed Test**, qui pouvait rester bloquée sur une ancienne version malgré la mise à jour de Catalyst.

### Détails techniques
- `Start-LanMessenger-AgentStartup.ps1` attend brièvement après l'ouverture de session, tente plusieurs démarrages de l'agent, vérifie le processus, vérifie l'écoute TCP sur le port `45452` et écrit un log de démarrage.
- `LanMessenger.UI.psm1` active automatiquement `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` si nécessaire et respecte un marqueur local si l'utilisateur désactive volontairement le démarrage automatique.
- `LanMessenger.UI.psm1` joue un son système à chaque nouveau message entrant et bascule automatiquement vers le correspondant entrant en s'appuyant sur le fichier JSONL de conversation.
- `LanMessenger.UI.psm1` conserve l'`AppUserModelID` `BDSLab.Catalyst.LanMessenger` et l'icône `LanMessenger.png` en priorité pour l'affichage WPF.
- `ReleaseManager` ajoute `Start-LanMessenger-AgentStartup.ps1` dans les fichiers obligatoires LAN Messenger.
- `ReleaseManager` met à jour la version LAN Speed Test dans le script principal, le module Core et le XAML.
- `ReleaseManager` régénère la logique de détection/suppression des raccourcis Bureau outils.
- `ReleaseManager` sécurise la génération Inno Setup afin d'éviter les duplications dans `[Setup]`.
- `CatalystSetup.iss` arrête les processus LAN Messenger avant nettoyage, supprime explicitement `assets\tools\LanMessenger`, nettoie les dossiers parents vides lorsque possible et conserve le nettoyage de la clé `HKCU\Run` et de la règle firewall LAN Messenger.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.6.0`.
- Le Release Manager doit préparer la cible `1.6.0`.
- Les fichiers LAN Messenger corrigés doivent être inclus dans le build :
  - `assets\tools\LanMessenger\Modules\LanMessenger.UI.psm1` ;
  - `assets\tools\LanMessenger\Launch-LanMessenger-Agent.vbs` ;
  - `assets\tools\LanMessenger\Start-LanMessenger-AgentStartup.ps1` ;
  - `assets\tools\LanMessenger\Install-LanMessengerAgentStartupTask.ps1` ;
  - `assets\tools\LanMessenger\Uninstall-LanMessengerAgentStartupTask.ps1`.
- Les fichiers LAN Speed Test corrigés doivent être inclus dans le build :
  - `assets\tools\LanSpeedTest\Catalyst.LanSpeedTest.ps1` ;
  - `assets\tools\LanSpeedTest\Modules\Catalyst.LanSpeedTest.Core.psm1` ;
  - `assets\tools\LanSpeedTest\Views\Catalyst.LanSpeedTest.xaml`.

### Validation
- Compilation de la build de test validée.
- Installation de la build de test validée.
- Redémarrage Windows validé.
- Lancement LAN Messenger sur deux postes validé.
- **Agent local : actif** au lancement de LAN Messenger validé.
- **Démarrage session : actif** au premier lancement validé.
- Discussions instantanées entre postes validées.
- Affichage immédiat des messages entrants validé.
- Bascule automatique vers l'expéditeur entrant validée.
- Notification sonore à la réception validée.
- Création et suppression des raccourcis Bureau **LAN Messenger** et **LAN Speed Test** validées.
- Message d'avertissement de suppression des raccourcis Bureau outils corrigé.
- Mise à jour de version LAN Speed Test corrigée.
- Nettoyage du dossier `C:\Program Files\Catalyst\assets\tools\LanMessenger` corrigé.
- Non-régression LAN Messenger, LAN Speed Test et packaging à vérifier lors de la recette finale.

## [1.5.9] - LAN Messenger / agent / icône / routage conversations

### Modifié
- **LAN Messenger**
  - Ajout d'un rattrapage automatique de l'agent au lancement de l'interface.
  - Si **Démarrage session** est actif mais que **Agent local** est inactif, LAN Messenger tente de relancer l'agent automatiquement.
  - Conservation du démarrage session via `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`.
  - Conservation du comportement validé : bouton `—` vers le systray, `X` et **Fermer** pour quitter complètement.
  - Conservation de la restauration automatique de la fenêtre lorsqu'un message arrive pendant que LAN Messenger est réduit dans le systray.
  - Amélioration du routage des messages entrants lorsque plusieurs correspondants sont disponibles.

### Corrigé
- Correction du cas où, après redémarrage, **Démarrage session** était actif mais **Agent local** pouvait apparaître inactif au premier lancement de LAN Messenger.
- Correction du retour de l'icône PowerShell dans la barre des tâches pour LAN Messenger.
- Correction de la taille de l'icône LAN Messenger dans la barre des tâches, qui pouvait apparaître trop petite après usage de l'icône `.ico`.
- Correction du routage visuel des messages entrants :
  - si LAN Messenger affiche un correspondant différent de l'expéditeur ;
  - le message entrant bascule automatiquement l'interface vers l'expéditeur ;
  - le message devient visible immédiatement sans sélection manuelle.
- Correction du risque de perte visuelle d'un message entrant lorsque la fenêtre était déjà ouverte sur un autre poste.

### Ajouté
- Ajout d'une gestion de brouillons par correspondant dans LAN Messenger.
- Lorsqu'un message entrant force une bascule vers un autre poste, le brouillon en cours est conservé.
- Lorsque l'utilisateur revient sur le correspondant précédent, son brouillon est restauré.

### Détails techniques
- `LanMessenger.UI.psm1` conserve l'`AppUserModelID` dédié `BDSLab.Catalyst.LanMessenger`.
- `LanMessenger.UI.psm1` privilégie de nouveau `assets\icons\LanMessenger.png` pour l'icône WPF afin de conserver une taille normale dans la barre des tâches.
- `assets\icons\LanMessenger_256.ico` reste disponible en fallback.
- Le rattrapage agent est effectué côté interface via une vérification de l'état **Démarrage session** et de l'état **Agent local**.
- Le routage entrant bascule automatiquement vers le poste expéditeur lorsque le message entrant ne correspond pas au poste actuellement sélectionné.
- Les brouillons sont conservés en mémoire par correspondant pendant la session LAN Messenger.
- Le mécanisme de démarrage session reste basé sur `HKCU\Run` et n'utilise plus le Planificateur de tâches pour l'agent utilisateur.

### Packaging
- `CatalystSetup.iss` doit passer en version `1.5.9`.
- Le Release Manager doit préparer la cible `1.5.9`.
- Les fichiers corrigés LAN Messenger doivent être inclus dans le build :
  - `assets\tools\LanMessenger\Modules\LanMessenger.UI.psm1` ;
  - `assets\tools\LanMessenger\Launch-LanMessenger-Agent.vbs` ;
  - `assets\tools\LanMessenger\Install-LanMessengerAgentStartupTask.ps1` ;
  - `assets\tools\LanMessenger\Uninstall-LanMessengerAgentStartupTask.ps1`.

### Validation à effectuer
- Compiler la build `1.5.9`.
- Installer la build `1.5.9`.
- Redémarrer le poste.
- Vérifier **Démarrage session : actif**.
- Vérifier **Agent local : actif** au lancement de LAN Messenger.
- Vérifier que l'icône LAN Messenger apparaît correctement dans la barre des tâches, avec une taille normale.
- Vérifier l'envoi / réception entre plusieurs postes.
- Vérifier qu'un message entrant depuis un autre correspondant provoque une bascule automatique vers l'expéditeur.
- Vérifier que le message entrant est visible immédiatement.
- Vérifier que les brouillons par correspondant sont conservés et restaurés.
- Vérifier le systray et la réception depuis systray.
- Vérifier l'absence de popup secondaire.
- Vérifier la non-régression LAN Speed Test et des autres outils Catalyst.


## [1.5.8] - LAN Messenger / démarrage session build installée

### Modifié
- **LAN Messenger**
  - Remplacement du démarrage automatique de l'agent via tâche planifiée par une activation utilisateur via `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`.
  - Conservation du comportement validé : bouton `—` vers le systray, `X` et **Fermer** pour quitter complètement.
  - Conservation de la restauration automatique de la fenêtre lorsqu'un message arrive pendant que LAN Messenger est réduit dans le systray.
  - Conservation de la fenêtre unifiée et de la réception sans popup secondaire.

### Corrigé
- Correction de l'erreur **Accès refusé** observée en build installée lors de l'activation du démarrage session de l'agent LAN Messenger.
- Correction du lancement de LAN Messenger après intégration du correctif de démarrage session.
- Correction de la perte de fonctions internes liées à la réception depuis le systray après correctif intermédiaire.
- Correction complète du démarrage automatique de l'agent après fermeture / réouverture de session Windows.

### Détails techniques
- `LanMessenger.UI.psm1` utilise désormais une clé `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` nommée `Catalyst LanMessenger Agent`.
- `Install-LanMessengerAgentStartupTask.ps1` conserve son nom historique mais écrit désormais la clé `HKCU\Run` au lieu de créer une tâche planifiée.
- `Uninstall-LanMessengerAgentStartupTask.ps1` supprime désormais la clé `HKCU\Run`.
- `Launch-LanMessenger-Agent.vbs` reste le lanceur utilisé pour démarrer l'agent en arrière-plan.
- Le firewall LAN Messenger reste géré séparément par `Install-LanMessengerFirewallRule.ps1`.
- Aucun état utilisateur n'est écrit dans `C:\Program Files\Catalyst`.

### Packaging
- `CatalystSetup.iss` passe en version `1.5.8`.
- Le Release Manager prépare désormais la cible `1.5.8`.
- Le désinstallateur conserve l'appel au script `Uninstall-LanMessengerAgentStartupTask.ps1`, désormais chargé de nettoyer la clé `HKCU\Run`.

### Validation
- Build installée : lancement LAN Messenger validé.
- Activation **Démarrage session** validée sans erreur **Accès refusé**.
- Réouverture de session Windows validée.
- Agent local actif automatiquement après réouverture de session validé.
- Démarrage session affiché comme actif validé.
- Systray validé.
- Réception depuis systray avec notification / restauration validée.
- Absence de popup secondaire validée.
- Fermeture complète via `X` et **Fermer** validée.
- Build `1.5.8` à compiler et recetter.

## [1.5.7] - Stabilisation LAN Messenger / LAN Speed Test / packaging

### Ajouté
- Ajout d'un message de fin d'installation indiquant qu'un redémarrage du poste est recommandé avant l'utilisation de **Catalyst LAN Messenger**.
- Ajout d'un `AppUserModelID` dédié pour **Catalyst LAN Messenger** afin d'améliorer l'icône affichée dans la barre des tâches Windows.
- Ajout d'un `AppUserModelID` dédié pour **LAN Speed Test** afin d'améliorer l'icône affichée dans la barre des tâches Windows.

### Modifié
- **LAN Messenger**
  - Conservation du comportement validé : bouton `—` vers le systray, `X` et **Fermer** pour quitter complètement.
  - Conservation de la restauration automatique de la fenêtre lors de la réception d'un message pendant que LAN Messenger est réduit dans le systray.
  - Amélioration de l'utilisation de l'icône dédiée `LanMessenger_256.ico` pour la fenêtre et la barre des tâches.
- **LAN Speed Test**
  - Ouverture de l'outil en mode maximisé.
  - Passage de la fenêtre en `ResizeMode="CanResize"`.
  - Alignement visuel de l'interface sur le style de **VideoConverterEngine**.
  - Harmonisation des cartes, champs, boutons, résultats et journal avec la palette sombre Catalyst / VCE.
  - Amélioration de l'utilisation de l'icône dédiée `LanSpeedTest_256.ico` pour la fenêtre et la barre des tâches.
- **Installateur**
  - Ajout d'une consigne de redémarrage en fin d'installation pour éviter les faux diagnostics négatifs sur le démarrage automatique de l'agent LAN Messenger.

### Corrigé
- Correction de l'icône **LAN Messenger** dans la barre des tâches, qui pouvait encore afficher l'icône PowerShell.
- Correction de l'icône **LAN Speed Test** dans la barre des tâches, qui pouvait encore afficher l'icône PowerShell.
- Correction du contraste des listes déroulantes **Taille fichier** et **Passes** dans LAN Speed Test.
- Correction du rendu visuel des ComboBox LAN Speed Test afin d'éviter le style clair Windows par défaut.
- Clarification de la procédure post-installation : redémarrer le poste permet de finaliser proprement l'activation de l'agent LAN Messenger et de sa tâche de démarrage session.

### Détails techniques
- **LAN Messenger**
  - `LanMessenger.UI.psm1` force l'AppUserModelID `BDSLab.Catalyst.LanMessenger`.
  - L'icône de fenêtre privilégie `assets\icons\LanMessenger_256.ico`.
  - La réception depuis le systray reste pilotée par la fenêtre unifiée et n'ouvre pas de popup secondaire.
- **LAN Speed Test**
  - `Catalyst.LanSpeedTest.UI.psm1` force l'AppUserModelID `BDSLab.Catalyst.LanSpeedTest`.
  - L'icône de fenêtre privilégie `assets\icons\LanSpeedTest_256.ico`.
  - `Catalyst.LanSpeedTest.xaml` utilise `WindowState="Maximized"` et un style aligné sur VideoConverterEngine.
- **Packaging**
  - `CatalystSetup.iss` passe en version `1.5.7`.
  - Le Release Manager prépare désormais la cible `1.5.7`.
  - L'écran final de l'installateur affiche la recommandation de redémarrage.

### Validation
- LAN Messenger : icône barre des tâches validée.
- LAN Messenger : systray validé.
- LAN Messenger : réception depuis systray avec restauration validée.
- LAN Messenger : absence de popup secondaire validée.
- LAN Messenger : agent automatique validé après redémarrage.
- LAN Speed Test : lancement maximisé validé.
- LAN Speed Test : style aligné VideoConverterEngine validé.
- LAN Speed Test : contraste des ComboBox validé.
- LAN Speed Test : icône barre des tâches à valider sur build installée.
- Build `1.5.7` à compiler et recetter.

## [1.5.6] - LAN Messenger bidirectionnel / agent / systray

### Ajouté
- Ajout du protocole LAN Messenger TCP bidirectionnel sur le port `45452`.
- Ajout de l'agent local **Catalyst LAN Messenger Agent**.
- Ajout du démarrage et de l'arrêt de l'agent depuis l'interface LAN Messenger.
- Ajout d'une tâche planifiée utilisateur optionnelle **Catalyst LanMessenger Agent** pour lancer l'agent à l'ouverture de session.
- Ajout du mode conversation unifié dans la fenêtre principale LAN Messenger.
- Ajout de l'historique local des conversations dans `%LOCALAPPDATA%\BDSLab\Catalyst\State\LanMessenger\Conversations`.
- Ajout du bouton de réduction dans la zone de notification Windows.
- Ajout de la restauration automatique de LAN Messenger lorsqu'un message arrive alors que la fenêtre est réduite dans le systray.
- Ajout des scripts de gestion :
  - `Catalyst.LanMessenger.Agent.ps1` ;
  - `Catalyst.LanMessenger.ConversationWindow.ps1` ;
  - `Catalyst.LanMessenger.TcpSend.ps1` ;
  - `Launch-LanMessenger-Agent.vbs` ;
  - `Install-LanMessengerFirewallRule.ps1` ;
  - `Uninstall-LanMessengerFirewallRule.ps1` ;
  - `Install-LanMessengerAgentStartupTask.ps1` ;
  - `Uninstall-LanMessengerAgentStartupTask.ps1`.
- Ajout des modules :
  - `LanMessenger.Network.psm1` ;
  - `LanMessenger.Agent.psm1` ;
  - `LanMessenger.Conversation.psm1`.

### Modifié
- LAN Messenger devient un véritable outil de discussion interne bidirectionnel.
- L'interface s'ouvre directement sur une fenêtre de conversation unifiée, cohérente avec le style Catalyst.
- Le mode historique `msg.exe` est conservé comme mode de secours.
- La touche `Entrée` envoie le message en mode conversation.
- Le raccourci `Maj + Entrée` ajoute une nouvelle ligne.
- Le bouton `X` et le bouton **Fermer** ferment complètement LAN Messenger.
- Le bouton `—` réduit LAN Messenger dans la zone de notification.
- La réception n'ouvre plus de popup secondaire lorsque la fenêtre unifiée est déjà active ou réduite.
- L'installateur prépare l'ouverture du port TCP `45452` via la règle firewall **Catalyst LAN Messenger TCP 45452**.
- Le désinstallateur nettoie la tâche planifiée de démarrage de l'agent et la règle firewall LAN Messenger.

### Corrigé
- Correction de l'ouverture de fenêtres de conversation multiples pour un même correspondant.
- Correction de l'affichage de la zone de réponse.
- Correction de l'envoi via `Entrée` et conservation de `Maj + Entrée`.
- Correction de la perte visuelle de messages lorsque LAN Messenger est réduit dans le systray.
- Correction du comportement de fermeture afin d'éviter toute ambiguïté entre réduire et quitter.
- Correction de l'activation du démarrage session via `schtasks.exe`.

### Détails techniques
- Le protocole TCP utilise des messages JSON avec ACK de réception.
- L'agent écoute par défaut sur `0.0.0.0:45452`.
- Les logs restent stockés dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs`.
- Les fichiers d'état, conversations et marqueurs de fenêtres actives restent stockés dans `%LOCALAPPDATA%\BDSLab\Catalyst\State\LanMessenger`.
- Aucun état utilisateur n'est écrit dans `C:\Program Files\Catalyst`.
- L'installateur exécute `Install-LanMessengerFirewallRule.ps1` en post-installation.
- Le désinstallateur exécute `Uninstall-LanMessengerAgentStartupTask.ps1` et `Uninstall-LanMessengerFirewallRule.ps1`.
- Le Release Manager vérifie désormais les nouveaux scripts, modules et vues LAN Messenger dans le build.

### Validation
- Conversation TCP bidirectionnelle validée entre postes.
- Fenêtre unifiée validée.
- Réponse distante dans la même fenêtre validée.
- Agent local actif / inactif validé.
- Démarrage / arrêt agent depuis l'interface validé.
- Tâche de démarrage session validée après reconnexion.
- Réduction systray validée.
- Réception depuis systray avec notification et restauration validée.
- Absence de popup secondaire validée.
- Mode `msg.exe` conservé et validé.
- Logs validés.
- Non-régression LAN Speed Test, CopyEngine, PhotoEngine, VideoConverterEngine et Recette de Poste à vérifier lors de la recette build.


## [1.5.5] - Fusion VideoEngine vers VideoConverterEngine

### Ajouté
- Ajout des fonctions de renommage vidéo issues de **VideoEngine** dans **VideoConverterEngine**.
- Ajout du mode `RenameSequential` pour le renommage séquentiel des fichiers vidéo.
- Ajout du mode `RenameEpisodeDash` pour normaliser les noms d'épisodes avec un tiret après le numéro d'épisode.
- Ajout du champ **Préfixe de renommage** dans l'interface de VideoConverterEngine.
- Ajout d'une logique anti-collision avant renommage afin d'éviter tout écrasement involontaire.

### Modifié
- VideoConverterEngine devient l'outil vidéo unique de Catalyst pour la conversion, le remux, les métadonnées et le renommage.
- Le catalogue **Outils** ne référence plus VideoEngine.
- L'ancienne carte **VideoEngine** est retirée du menu **Outils**.
- Le Release Manager prépare désormais la build `1.5.5` sans livrer le dossier `assets\tools\VideoEngine`.
- L'installateur Inno Setup exclut le dossier VideoEngine du package final.
- L'installateur supprime l'ancien dossier `assets\tools\VideoEngine` lors d'une mise à jour vers `1.5.5`.
- Les raccourcis Bureau historiques `VideoEngine.lnk` et `Catalyst - VideoEngine.lnk` sont nettoyés lors de l'installation/mise à jour.

### Corrigé
- Correction du champ **Préfixe de renommage**, qui peut maintenant recevoir une saisie utilisateur.
- Correction du mode `RenameSequential`, qui n'utilise plus de valeur parasite en mémoire.
- Correction du mode `RenameEpisodeDash`, désormais plus permissif sur les formats de noms d'épisodes.
- Correction de la génération d'aperçu pour les options avancées déjà transmises par l'UI progressive de VideoConverterEngine.

### Détails techniques
- Suppression de l'entrée `VideoEngine` dans `Catalyst.SystemTools.psm1`.
- `Catalyst.SystemToolsUI.psm1` ne nécessite pas de logique spécifique : l'interface se base automatiquement sur la liste retournée par `Get-CatalystSystemTools`.
- Retrait de la checkbox VideoEngine du Release Manager.
- Ajout de `assets\tools\VideoEngine` dans les dossiers interdits du build final.
- Ajout d'une exclusion Inno Setup pour `assets\tools\VideoEngine` et `assets\tools\VideoEngine\*`.
- Retrait des tâches et raccourcis optionnels VideoEngine dans `CatalystSetup.iss`.
- Conservation des icônes vidéo existantes, car VideoConverterEngine peut encore les utiliser.

### Validation à effectuer
- Vérifier que VideoEngine n'apparaît plus dans le menu **Outils**.
- Vérifier que VideoConverterEngine apparaît toujours dans le menu **Outils**.
- Vérifier que les modes `RenameSequential` et `RenameEpisodeDash` fonctionnent dans VideoConverterEngine.
- Vérifier qu'une mise à jour depuis une version précédente supprime l'ancien dossier `C:\Program Files\Catalyst\assets\tools\VideoEngine`.
- Vérifier que les anciens raccourcis Bureau VideoEngine sont supprimés.
- Vérifier la génération du setup `CatalystSetup_v1.5.5.exe`.
- Vérifier la non-régression des autres outils : CopyEngine, PhotoEngine, LAN Messenger, LAN Speed Test et Recette de Poste.

## [1.5.4] - LAN Speed Test

### Ajouté
- Ajout du nouvel outil **LAN Speed Test** dans Catalyst.
- Ajout d’une architecture modulaire dédiée sous `assets\tools\LanSpeedTest`.
- Ajout du lanceur autonome `Launch-LanSpeedTest.vbs`.
- Ajout des modules dédiés :
  - `Catalyst.LanSpeedTest.Core.psm1` ;
  - `Catalyst.LanSpeedTest.UI.psm1` ;
  - `Catalyst.LanSpeedTest.Events.psm1`.
- Ajout de la vue WPF `Catalyst.LanSpeedTest.xaml`.
- Ajout d’une icône dédiée à LAN Speed Test :
  - `assets\icons\LanSpeedTest.png` ;
  - `assets\icons\LanSpeedTest_256.ico`.
- Ajout d’une entrée **LAN Speed Test** dans le menu **Outils** de Catalyst.
- Ajout d’une option de raccourci Bureau dédiée à LAN Speed Test dans l’installateur.
- Ajout d’un journal dédié `LanSpeedTest_YYYY-MM-DD.log` dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs\LanSpeedTest`.

### Modifié
- Intégration de LAN Speed Test au catalogue des outils Catalyst via `Catalyst.SystemTools.psm1`.
- Ajout du support de l’icône LAN Speed Test dans la fenêtre autonome et dans les raccourcis Bureau.
- Harmonisation du rendu visuel avec les icônes existantes, notamment LAN Messenger.
- Affichage automatique des débits en **Go/s** et **Gb/s** lorsque les valeurs dépassent 1024 Mo/s ou 1024 Mbit/s.
- Conservation d’une interface simple orientée usage réel NAS / SMB plutôt qu’un mode client/serveur type iperf.

### Détails techniques
- Le benchmark repose sur un fichier temporaire créé dans le dossier cible.
- L’outil mesure séparément l’écriture et la lecture.
- Le fichier temporaire est supprimé automatiquement après chaque passe.
- Les résultats sont calculés en Mo/s et Mbit/s, puis formatés automatiquement en Go/s et Gb/s si nécessaire.
- Les logs sont écrits dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs\LanSpeedTest`.
- Aucun log, rapport ou fichier temporaire n’est écrit dans le dossier applicatif `C:\Program Files\Catalyst`.
- L’intégration dans le menu **Outils** passe par le launcher `assets\tools\LanSpeedTest\Launch-LanSpeedTest.vbs`.
- Le fichier `Catalyst.SystemTools.psm1` référence désormais LAN Speed Test dans la liste des outils disponibles.
- Le Release Manager et le script Inno Setup ont été préparés pour inclure LAN Speed Test dans la build `1.5.4`.
- L’installateur vérifie également les verrous potentiels liés à `Catalyst.LanSpeedTest.ps1`.

### Validation
- Lancement autonome de LAN Speed Test validé.
- Interface Catalyst autonome validée.
- Sélection du dossier cible validée.
- Benchmark écriture validé.
- Benchmark lecture validé.
- Multi-passes validées.
- Calcul des moyennes validé.
- Affichage Mo/s, Mbit/s, Go/s et Gb/s validé.
- Suppression automatique du fichier temporaire validée.
- Logs UI validés.
- Logs AppData validés.
- Tests terrain local / SMB / NAS validés.
- Icône fenêtre validée.
- Intégration dans le menu **Outils** validée.
- Carte **LAN Speed Test** visible dans Catalyst validée.
- Icône visible dans le menu **Outils** validée.
- Lancement depuis le bouton **Exécuter** validé.
- Création du raccourci Bureau validée.
- Icône du raccourci Bureau validée après purge du cache Explorer.
- Non-régression des autres outils validée.

## [1.5.3] - Dashboard / menu Hamburger

### Ajouté
- Ajout d’un bouton **Hamburger** sur le Dashboard principal de Catalyst.
- Ajout d’un contrôle permettant d’afficher ou masquer le menu latéral depuis le Dashboard.

### Modifié
- Le menu latéral du Dashboard démarre désormais **masqué par défaut**.
- La zone principale du Dashboard occupe automatiquement toute la largeur au démarrage.
- Le bouton Hamburger permet de réafficher le menu latéral au premier clic, puis de le masquer à nouveau au clic suivant.
- Conservation du design existant via réutilisation du style visuel Catalyst déjà présent.

### Détails techniques
- La modification est limitée au Dashboard principal.
- Ajout des noms XAML nécessaires pour piloter proprement le menu latéral et sa colonne de layout.
- Initialisation du menu latéral avec une largeur de colonne à `0` et une visibilité `Collapsed`.
- Conservation d’une largeur de restauration de `280` afin de réafficher correctement le menu après démarrage masqué.
- Gestion du basculement directement depuis le handler UI du bouton Hamburger.
- Fichiers modifiés :
  - `Catalyst.xaml` ;
  - `Catalyst.UI.psm1`.
- Aucun changement appliqué à `Catalyst.Events.psm1`, `Catalyst.Navigation.psm1` ou `Catalyst.Core.psm1`.

### Validation
- Lancement de Catalyst validé.
- Menu latéral masqué au démarrage validé.
- Zone principale en pleine largeur au démarrage validée.
- Affichage du menu latéral via le bouton Hamburger validé.
- Masquage du menu latéral via un second clic validé.
- Redimensionnement automatique de la zone principale validé.
- Navigation principale validée : Accueil, Bloatwares, Logiciels, Personnalisation, Outils, Diagnostic et À propos.
- Bouton **Actualiser** du Dashboard validé.
- Aucun impact constaté sur la navigation principale.

## [1.5.2] - Intégration de LAN Messenger dans les Outils

### Ajouté
- Ajout du nouvel outil **LAN Messenger** dans Catalyst.
- Ajout d’une architecture modulaire dédiée sous `assets\tools\LanMessenger`.
- Ajout d’un lanceur autonome `Launch-LanMessenger.vbs`.
- Ajout des modules dédiés :
  - `LanMessenger.Core.psm1` ;
  - `LanMessenger.Runtime.psm1` ;
  - `LanMessenger.UI.psm1`.
- Ajout de la vue WPF `LanMessenger.MainView.xaml`.
- Ajout d’une icône dédiée à LAN Messenger :
  - `assets\icons\LanMessenger.png` ;
  - `assets\icons\LanMessenger_256.ico`.
- Ajout d’une entrée **LAN Messenger** dans le menu **Outils** de Catalyst.
- Ajout d’une option de raccourci Bureau dédiée à LAN Messenger dans l’installateur.
- Ajout d’un fichier de configuration utilisateur pour les cibles LAN dans `%LOCALAPPDATA%\BDSLab\Catalyst\Config\LanMessenger\targets.json`.
- Ajout d’un journal dédié `LanMessenger_YYYYMMDD.log` dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs`.

### Modifié
- Transformation du script initial `Catalyst.LanMessenger.ps1` en outil Catalyst autonome et modulaire.
- Refonte complète de l’interface en panneau de discussion compact.
- Positionnement automatique de la fenêtre en bas à droite, au-dessus de la barre des tâches.
- Modernisation du header avec intégration de l’icône LAN Messenger.
- Remplacement du champ cible par une liste déroulante éditable.
- Alimentation automatique de la liste des destinataires avec les postes du domaine lorsque l’environnement le permet.
- Conservation d’un fallback local via `targets.json` si la récupération des postes du domaine est indisponible.
- Conservation de la saisie manuelle d’un poste cible.
- Ajout d’une signature dans les messages envoyés afin d’indiquer le poste à contacter pour répondre.
- Harmonisation visuelle de la liste déroulante avec le thème sombre Catalyst.

### Corrigé
- Correction de l’affichage tronqué des boutons **Envoyer** et **Fermer** dans l’interface LAN Messenger.
- Correction du déplacement de la fenêtre depuis l’en-tête.
- Correction du contraste trop fort de la liste déroulante des postes du domaine.
- Correction de l’intégration visuelle de la ComboBox pour rester cohérent avec le design Catalyst.

### Détails techniques
- L’envoi des messages repose toujours sur `msg.exe` avec la commande `msg /server:<PC-CIBLE> * <message>`.
- La récupération des postes du domaine utilise prioritairement `Get-ADComputer` lorsque le module Active Directory est disponible.
- Un fallback LDAP natif via `DirectorySearcher` est utilisé lorsque possible.
- Si la récupération domaine échoue, l’outil utilise les cibles locales stockées dans `targets.json`.
- Les fichiers variables de LAN Messenger sont stockés dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Aucun log, état ou fichier de configuration utilisateur n’est écrit dans le dossier applicatif `C:\Program Files\Catalyst`.
- L’intégration dans le menu **Outils** passe par le launcher `assets\tools\LanMessenger\Launch-LanMessenger.vbs`.
- Le fichier `Catalyst.SystemTools.psm1` référence désormais LAN Messenger dans la liste des outils disponibles.
- Le Release Manager et le script Inno Setup ont été préparés pour inclure LAN Messenger dans la build `1.5.2`.
- L’installateur vérifie également les verrous potentiels liés à `Catalyst.LanMessenger.ps1`.

### Validation
- Lancement autonome de LAN Messenger validé.
- Architecture modulaire autonome validée.
- Interface type panneau de discussion validée.
- Positionnement en bas à droite validé.
- Icône LAN Messenger dans le header validée.
- Boutons **Envoyer**, **Fermer** et **X** validés.
- Raccourci `Ctrl + Entrée` validé.
- Fermeture par `Échap` validée.
- Envoi réel vers un PC distant validé.
- Réception du message par le PC distant validée.
- Signature `Répondre à : NOM-PC` validée.
- Création de `targets.json` dans `%LOCALAPPDATA%\BDSLab\Catalyst\Config\LanMessenger` validée.
- Création des logs dans `%LOCALAPPDATA%\BDSLab\Catalyst\Logs` validée.
- Liste déroulante des PC du domaine validée.
- Fallback `targets.json` validé.
- Saisie manuelle d’un destinataire validée.
- Intégration dans le menu **Outils** validée.
- Carte **LAN Messenger** visible dans Catalyst validée.
- Icône visible dans le menu **Outils** validée.
- Lancement depuis le bouton **Exécuter** validé.
- Non-régression des autres outils validée.

## [1.5.1] - Navigation / premier chargement des pages

### Analyse
- Analyse du temps de latence observé lors de la première ouverture de certaines pages.
- Test d’un warm-up différé après affichage du Dashboard.
- Résultat non concluant : amélioration insuffisante et risque de ralentissement perçu.
- Correctif non retenu.
- Retour à la base stable v1.5.0.
- Latence initiale ponctuelle documentée comme limite connue de l’architecture actuelle.

## [1.5.0] - Logiciels / durcissement des installations silencieuses

### Ajouté
- Ajout de métadonnées optionnelles dans le catalogue Logiciels afin de piloter plus finement les installations `winget` :
  - `DisableSilentFallback` ;
  - `PostInstallProcessNames` ;
  - `PostInstallWaitSeconds` ;
  - `InstallerOverride` ;
  - `InstallerCustom` ;
  - `AdditionalWingetArgs`.
- Ajout d’une logique de fermeture post-installation ciblée pour les applications qui se lancent automatiquement après installation.
- Ajout de la prise en charge d’un mode silencieux plus strict avec `--disable-interactivity`.
- Ajout d’un emplacement d’historique CopyEngine aligné sur l’architecture runtime Catalyst : `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\CopyEngine\history.json`.
- Ajout d’une migration douce de l’ancien historique CopyEngine depuis `%APPDATA%\CopyEngine\history.json` vers le nouveau dossier `Reports\CopyEngine`.

### Modifié
- Durcissement des installations silencieuses du menu Logiciels.
- Firefox est désormais installé via le package français `Mozilla.Firefox.fr`.
- L’entrée Firefox utilise la variante française du package plutôt qu’un forçage de locale séparé.
- TeamViewer, Malwarebytes, Opera GX et PowerToys utilisent désormais une logique post-installation renforcée pour éviter qu’ils restent ouverts après installation.
- OpenVPN Connect est retiré du catalogue Logiciels en raison d’un comportement d’installation `winget` trop long ou instable dans l’environnement de test.
- L’historique JSON de CopyEngine n’est plus stocké dans `%APPDATA%\CopyEngine`, mais dans le runtime Catalyst sous `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\CopyEngine`.

### Corrigé
- Correction de l’installation de Firefox en français par défaut.
- Correction du comportement post-installation de TeamViewer qui pouvait rester ouvert après installation.
- Correction du comportement post-installation de Malwarebytes qui pouvait rester ouvert après installation.
- Correction du comportement post-installation d’Opera GX qui pouvait rester ouvert après installation.
- Correction du comportement post-installation de PowerToys qui pouvait rester ouvert après installation.
- Suppression de l’argument `--locale fr-FR` pour Firefox, devenu inutile avec le package `Mozilla.Firefox.fr` et susceptible de provoquer un échec d’installation depuis Catalyst.
- Correction de l’ancien chemin d’historique CopyEngine `%APPDATA%\CopyEngine\history.json`, qui sortait de l’architecture Catalyst `Program Files` + `LocalAppData`.
- Correction du fallback CopyEngine susceptible de recréer l’historique dans `AppData\Roaming`.

### Détails techniques
- Les arguments `winget` restent basés sur une installation silencieuse avec acceptation des accords package/source.
- La fermeture post-installation est limitée aux noms de processus explicitement déclarés dans le catalogue Logiciels.
- Aucun `Stop-Process` global n’est appliqué.
- `Catalyst.LogicielsUI.psm1` n’a pas été modifié pour ce point.
- Le catalogue Logiciels reste stocké dans `assets\data\Logiciels\Logiciels_Database.json`.
- `CopyEngine.State.psm1` et `CopyEngine.History.psm1` utilisent désormais une résolution de chemin basée prioritairement sur `CATALYST_REPORTS_ROOT`, puis sur `%LOCALAPPDATA%\BDSLab\Catalyst\Reports`.
- La migration de l’ancien `history.json` CopyEngine ne remplace pas un historique déjà présent dans le nouvel emplacement.
- En cas d’échec de migration de l’ancien historique CopyEngine, le fonctionnement de CopyEngine reste non bloquant.

### Validation
- Installation Firefox en français validée.
- Installation TeamViewer validée.
- Installation Malwarebytes validée.
- Installation Opera GX validée.
- Installation PowerToys validée.
- Retrait d’OpenVPN Connect décidé après constat d’une installation `winget` figée ou trop longue.
- Aucun impact constaté sur les autres entrées validées du menu Logiciels.
- Génération de l’historique CopyEngine dans `%LOCALAPPDATA%\BDSLab\Catalyst\Reports\CopyEngine\history.json` validée.
- Absence de recréation de l’ancien `%APPDATA%\CopyEngine\history.json` validée.
- Migration douce de l’historique CopyEngine prévue et testée sans impact sur le fonctionnement de copie.


## [1.4.9] - Installation Program Files / runtime LocalAppData / stabilisation post-migration
### Ajouté
- Ajout d’une nouvelle architecture d’installation avec Catalyst installé dans `C:\Program Files\Catalyst`.
- Ajout d’une racine runtime utilisateur dédiée dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Création et utilisation des sous-dossiers runtime :
  - `Logs` ;
  - `Reports` ;
  - `Exports` ;
  - `Exports\Recette` ;
  - `Exports\Diagnostic` ;
  - `Config` ;
  - `Backups` ;
  - `Temp` ;
  - `State`.
- Ajout des variables d’environnement internes Catalyst pour centraliser les chemins runtime :
  - `CATALYST_DATA_ROOT` ;
  - `CATALYST_LOGS_ROOT` ;
  - `CATALYST_REPORTS_ROOT` ;
  - `CATALYST_EXPORTS_ROOT` ;
  - `CATALYST_CONFIG_ROOT` ;
  - `CATALYST_BACKUPS_ROOT` ;
  - `CATALYST_TEMP_ROOT` ;
  - `CATALYST_STATE_ROOT`.
- Ajout d’un mécanisme de migration sélective depuis une ancienne installation ou ancien runtime `C:\Catalyst`.
- Ajout d’un marqueur de migration dans `%LOCALAPPDATA%\BDSLab\Catalyst\State` afin d’éviter de reproposer plusieurs fois la même migration.
- Ajout d’un choix de désinstallation permettant de conserver ou supprimer les données utilisateur situées dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Ajout du nettoyage automatique des anciens dossiers runtime legacy dans `C:\Program Files\Catalyst` lors d’une installation ou mise à jour.
- Ajout du dossier applicatif `assets\data` pour les catalogues fournis avec Catalyst :
  - `assets\data\Bloatwares\Bloatwares_Database.json` ;
  - `assets\data\Logiciels\Logiciels_Database.json` ;
  - `assets\data\Perso\Catalyst.Perso.json`.
### Modifié
- Le Release Manager génère désormais un installateur Inno Setup aligné sur la nouvelle architecture `Program Files` + `LocalAppData`.
- Le chemin d’installation par défaut est désormais `{autopf}\Catalyst`.
- Les fichiers runtime, logs, rapports, exports, états et sauvegardes ne sont plus stockés dans le dossier applicatif.
- Les logs Catalyst, la trace de démarrage, les rapports Diagnostic et les rapports Recette de Poste sont désormais générés dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
- Le menu Outils lance les outils intégrés via les launchers validés.
- Les chemins affichés dans la page À propos reflètent désormais la séparation entre racine applicative et runtime utilisateur.
- Les catalogues Bloatwares, Logiciels et Personnalisation sont désormais lus depuis `assets\data` au lieu de l’ancien dossier `Data`.
- Le Release Manager n’exclut plus génériquement les dossiers nommés `Data`, afin de permettre l’inclusion de `assets\data` dans le package final.
- Les exclusions de build restent ciblées sur les dossiers runtime ou temporaires réellement interdits dans l’installation finale.
- L’installateur et le désinstallateur utilisent une logique de conservation/suppression centrée sur `%LOCALAPPDATA%\BDSLab\Catalyst`.
### Corrigé
- Correction des écritures résiduelles dans `C:\Program Files\Catalyst` après installation.
- Correction de la recréation accidentelle de `C:\Catalyst\Data\Log\Catalyst_StartupTrace.log`.
- Correction des anciens dossiers runtime `Data`, `Exports`, `Logs`, `Reports`, `Backups`, `Temp` et `State` qui pouvaient être recréés ou conservés dans le dossier applicatif.
- Correction des dossiers `Logs` des outils intégrés qui pouvaient encore être installés sous `assets\tools`.
- Correction du warning Inno Setup lié à l’ancien appel `FileCopy`, remplacé par `CopyFile`.
- Correction d’une erreur Inno Setup liée à un identifiant de migration legacy déclaré plusieurs fois.
- Correction du logo Catalyst absent dans la barre latérale après installation dans `Program Files`.
- Correction du chargement du logo de la barre latérale via un chemin absolu calculé depuis la racine réelle de Catalyst.
- Correction des crashes de navigation vers les menus Bloatwares, Logiciels, Personnalisation et À propos après migration vers `Program Files`.
- Correction du chargement des bases Bloatwares, Logiciels et Personnalisation après déplacement vers `assets\data`.
- Correction de la génération des rapports Diagnostic et Recette de Poste afin de garantir une sortie dans `%LOCALAPPDATA%\BDSLab\Catalyst`.
### Détails techniques
- Nettoyage automatique des sections Inno Setup legacy incompatibles avec la nouvelle architecture.
- Suppression de la section `[Dirs]` legacy qui recréait `Data`, `Exports` et les dossiers `Logs` des outils.
- Ajout ou régénération automatique de la section `[InstallDelete]` pour supprimer les anciens dossiers runtime installés sous `{app}`.
- Renforcement de la génération du fichier `.iss` depuis `Catalyst.ReleaseManager.ps1`.
- Ajout d’une passe de sanitation finale sur le `.iss` généré afin d’éviter les doublons et les appels Inno obsolètes.
- Migration legacy limitée aux données utiles :
  - anciens logs ;
  - anciennes configurations ;
  - anciens backups ;
  - anciens exports ;
  - anciens rapports ;
  - anciens logs outils.
- Aucun ancien fichier applicatif de `C:\Catalyst` n’est migré automatiquement.
- Aucun écrasement des fichiers déjà présents dans `%LOCALAPPDATA%\BDSLab\Catalyst` lors de la migration.
- Conservation de `C:\Catalyst` après migration, afin d’éviter toute suppression agressive non demandée.
- Lecture prioritaire possible d’une surcharge utilisateur dans `%LOCALAPPDATA%\BDSLab\Catalyst\Config`, puis fallback vers les catalogues applicatifs `assets\data`.
### Validation
- Compilation Inno Setup validée après correction des warnings et erreurs de génération.
- Installation propre sur VM validée.
- Installation par-dessus une version précédente validée.
- Désinstallation avec conservation des données utilisateur validée.
- Désinstallation avec suppression des données utilisateur validée.
- Migration depuis `C:\Catalyst` acceptée validée.
- Migration depuis `C:\Catalyst` refusée validée.
- Absence de reproposition après migration déjà effectuée validée.
- Audit strict `Program Files` / `LocalAppData` validé avec 0 bloquant et 0 avertissement.
- Lancement Catalyst validé.
- Navigation principale validée.
- Menus Bloatwares, Logiciels, Personnalisation, Outils, Diagnostic et À propos validés.
- Génération des rapports Diagnostic et Recette de Poste dans `%LOCALAPPDATA%\BDSLab\Catalyst` validée.
- Absence de dossiers runtime legacy dans `C:\Program Files\Catalyst` validée.
- Présence des catalogues applicatifs dans `C:\Program Files\Catalyst\assets\data` validée.

## [1.4.5] - Nettoyage du package de release
- Nettoyage du package de release.
- Les dossiers internes Install et Packaging sont désormais exclus du build distribuable.
- Les scripts de release, de signature et les fichiers de packaging ne sont plus copiés dans l’installation finale.
- Réduction du risque de diffusion involontaire de fichiers internes.

## [1.4.4] - Sécurisation installateur / File Lock Guard
### Améliorations
- Ajout d’une catégorie Réseau dans le menu Personnalisation.
- Ajout de l’option “Autoriser la réponse au ping IPv4”.
- L’action crée ou réactive proprement la règle firewall ICMPv4 Echo Request entrante.
- Détection d’état intégrée pour afficher l’option comme déjà appliquée lorsque la règle existe.
- Icône Catalyst stabilisée après redémarrages d’explorer.exe
- Correction de l’affichage de l’uptime dans le rapport HTML de la Recette de Poste.
- L’uptime est maintenant affiché dans un format lisible : minutes, heures, jours.
- La source de calcul a été alignée sur l’uptime visible côté utilisateur, afin d’éviter les valeurs faussées par le démarrage rapide Windows.
### Amélioration de l’installateur Catalyst.
Ajout d’options indépendantes pour créer les raccourcis Bureau des outils :
- CopyEngine
- PhotoEngine
- VideoEngine
- VideoConverterEngine
La génération du fichier .iss est maintenant prise en compte depuis Catalyst.ReleaseManager.ps1 afin que les options soient conservées à chaque build.

## [1.4.3] - Sécurisation installateur / File Lock Guard
### Améliorations
- Ajout d’une garde de sécurité dans l’installateur et le désinstalleur.
- Détection de fichiers Catalyst verrouillés avant installation, mise à jour ou désinstallation.
- Affichage d’un message utilisateur permettant de fermer Catalyst puis de relancer la vérification avec “Recommencer”.
- Réduction du risque d’erreur lors d’une mise à jour si Catalyst est encore ouvert, notamment en mode `-dev`.
### Détails techniques
- Abandon de la détection par ligne de commande PowerShell, jugée peu fiable en mode `-dev`.
- Remplacement par une détection basée sur les verrous fichiers réels.
- Utilisation des appels WinAPI `CreateFileW` et `CloseHandle` pour assurer la compatibilité avec Inno Setup.
- Correction du nom de sortie du setup pour revenir au format stable :
  `CatalystSetup_v1.4.3.exe`
- Aucun changement appliqué au code applicatif Catalyst.
- Aucun changement appliqué aux outils intégrés.
- Aucun changement appliqué aux modules PowerShell, vues XAML, données utilisateur ou exports.
### Validation
- Compilation Inno Setup validée.
- Installation avec Catalyst fermé validée.
- Détection de verrou avec Catalyst ouvert validée.
- Reprise après fermeture de Catalyst validée.
- Nom du setup généré corrigé et validé.

## [1.4.2] - Standardisation architecture outils / Core Dependency Root
### Améliorations
- Harmonisation prudente de la résolution des dépendances dans le module Core de VideoConverterEngine.
- Alignement de l’import du module Helpers sur le modèle déjà propre de VideoEngine.
### Outil concerné
- VideoConverterEngine
### Détails techniques
- Ajout d’une racine module basée sur `$PSScriptRoot`.
- Résolution de `VideoConverterEngine.Helpers.psm1` via `Join-Path`.
- Vérification explicite de l’existence du module helper avec `-PathType Leaf`.
- Import du helper avec `-Verbose:$false`.
- Aucune modification de la logique métier de conversion.
- Aucun changement appliqué aux fonctions exportées.
- Aucun changement appliqué aux modules UI, aux XAML, aux launchers ou aux entrypoints.
### Validation
- Lancement VideoConverterEngine validé.
- Détection des dépendances validée.
- Workflow rapide validé.
- Aucun impact constaté sur les autres outils.

## [1.4.1] - Standardisation architecture outils / UI Assembly Helpers
### Améliorations
- Harmonisation prudente du chargement des assemblies WPF dans certains modules UI.
- Ajout de helpers dédiés pour centraliser les imports WPF.
### Outils concernés
- CopyEngine
- PhotoEngine
### Détails techniques
- Ajout de `Import-CopyEngineWpfAssemblies`.
- Ajout de `Import-PhotoEngineWpfAssemblies`.
- Remplacement des blocs `Add-Type` locaux par des helpers nommés.
- Aucun changement appliqué aux fonctions exportées.
- Aucun changement métier.
- Aucun changement appliqué aux vues XAML.
- Aucun changement appliqué à VideoEngine, VideoConverterEngine ou Recette de Poste.
- Aucun changement appliqué aux launchers ou entrypoints.
### Validation
- Lancement intégré depuis Catalyst validé.
- Lancements standalone CopyEngine et PhotoEngine validés.
- Splashs standalone validés.
- Sélections et aperçus CopyEngine / PhotoEngine validés.
- Aucun impact constaté sur les workflows existants.

## [1.4.0] - Standardisation architecture outils / Entrypoints RootDetection
### Améliorations
- Harmonisation prudente de la détection de racine dans plusieurs entrypoints d’outils Catalyst.
- Standardisation du modèle `$PSScriptRoot` avec fallback sur `$MyInvocation.MyCommand.Path`.
- Meilleure cohérence entre les modes standalone et intégré.
### Outils concernés
- CopyEngine
- PhotoEngine
- VideoConverterEngine
### Détails techniques
- Mise à jour des scripts principaux `.ps1`.
- Regroupement plus propre des chemins dans PhotoEngine.
- Aucun changement appliqué à VideoEngine, déjà aligné sur ce modèle.
- Aucun changement appliqué aux launchers `.vbs`.
- Aucun changement appliqué aux modules `.psm1`.
- Aucun changement appliqué aux vues `.xaml`.
- Aucun changement appliqué à Recette de Poste.
### Validation
- Démarrage intégré depuis Catalyst validé.
- Lancements standalone validés.
- Icônes visibles.
- Splashs standalone validés.
- Contrôles rapides CopyEngine, PhotoEngine, VideoEngine et VideoConverterEngine validés.

## [1.3.9] - Standardisation architecture outils / Bootstrap Launchers
### Améliorations
- Standardisation prudente des launchers standalone des outils Catalyst.
- Suppression des chemins rigides dans les scripts `.vbs` de lancement.
- Résolution dynamique du dossier outil depuis l’emplacement réel du launcher.
- Harmonisation du lancement PowerShell 7 pour les outils standalone.
### Outils concernés
- CopyEngine
- PhotoEngine
- VideoEngine
- VideoConverterEngine
### Détails techniques
- Mise à jour des launchers `.vbs`.
- Ajout de `Option Explicit`.
- Ajout de `-NoLogo`.
- Ajout de `-STA`.
- Priorité donnée à `%ProgramFiles%\PowerShell\7\pwsh.exe`.
- Fallback sur `pwsh.exe` si nécessaire.
- Conservation du lancement masqué.
- Aucun changement appliqué aux fichiers `.ps1`, `.psm1` ou `.xaml`.
### Validation
- Lancement standalone CopyEngine validé.
- Lancement standalone PhotoEngine validé.
- Lancement standalone VideoEngine validé.
- Lancement standalone VideoConverterEngine validé.
- Lancement intégré depuis Catalyst validé.
- Aucun impact constaté sur les workflows existants.

## [1.3.8] - Standardisation architecture outils / PathResolution
### Améliorations
- Standardisation prudente de la résolution des chemins dans plusieurs outils Catalyst.
- Suppression des chemins absolus actifs `C:\Catalyst\...` dans les outils concernés.
- Résolution dynamique des chemins depuis l’emplacement réel des modules/scripts.
### Outils concernés
- VideoEngine
- VideoConverterEngine
- Recette de Poste
### Détails techniques
- Remplacement de chemins rigides par des chemins calculés depuis `$PSScriptRoot`.
- Résolution dynamique des icônes dans les vues XAML VideoEngine et VideoConverterEngine.
- Résolution dynamique des chemins de modules Recette.
- Résolution dynamique du dossier d’export des rapports Recette.
- Résolution dynamique du module `Catalyst.Perso.psm1`.
### Validation
- Démarrage Catalyst validé.
- Lancement VideoEngine validé.
- Icône VideoEngine validée.
- Lancement VideoConverterEngine validé.
- Icône VideoConverterEngine validée.
- Lancement Recette de Poste validé.
- Analyse poste validée.
- Génération rapport HTML validée.
- Ouverture dernier rapport validée.
- Ouverture dossier d’export validée.
- Icône du rapport HTML validée.

### [1.3.7] - 2026-06-15
#### Ajouté
- Modernisation de l’interface **Recette de Poste**.
- Harmonisation visuelle de la page Recette avec le style actuel de Catalyst.
- Ajout d’une présentation plus claire des actions principales de Recette de Poste.
- Amélioration de la lisibilité générale de la vue Recette.
#### Modifié
- Refonte XAML de `RecetteView.xaml` sans modification de la logique PowerShell existante.
- Conservation de l’intégration interne de Recette de Poste dans Catalyst depuis le menu **Outils**.
- Conservation du fonctionnement existant de l’analyse du poste, de la génération du rapport HTML et de l’ouverture des exports.
- Réorganisation visuelle de la page pour une meilleure cohérence avec les autres outils modernisés.
#### Corrigé
- Aucun correctif fonctionnel nécessaire : la modernisation a été réalisée sans impact sur les fonctionnalités existantes.

### [1.3.6] - 2026-06-15
### Ajouté
- Ajout d’une détection automatique d’une installation Catalyst existante lors du lancement de l’installateur.
- Ajout de la détection de la version Catalyst déjà installée.
- Ajout d’un message adapté selon le contexte d’installation :
- première installation ;
- mise à jour depuis une version précédente ;
- réinstallation ou réparation de la même version ;
- dossier Catalyst existant sans installation Windows enregistrée.
- Ajout d’une option de conservation ou suppression du dossier `Data` lors de la désinstallation.
- Ajout d’une option de conservation ou suppression du dossier `Exports` lors de la désinstallation.
#### Modifié
- Le désinstalleur ne supprime plus automatiquement les dossiers `Data` et `Exports`.
- Le comportement de désinstallation est désormais plus prudent afin d’éviter la suppression non confirmée des données utilisateur.
- L’installateur affiche désormais une information plus claire avant une mise à jour ou une réinstallation.
- Le script Inno Setup utilise une logique plus explicite pour gérer le chemin d’installation par défaut de Catalyst.
#### Corrigé
- Correction de la suppression conditionnelle des dossiers `Data` et `Exports` via le désinstalleur.
- Correction de la fonction de suppression récursive utilisée par Inno Setup.
- Correction de l’utilisation prématurée de la constante `{app}` pendant l’initialisation de l’installateur.
- Correction d’une erreur de syntaxe dans le script Inno Setup liée aux commentaires contenant des constantes Inno.
- Conservation du nettoyage existant des raccourcis d’outils Catalyst lors de la désinstallation.

### [1.3.5] - 2026-06-15
#### Ajouté
- Enrichissement de la page **À propos** de Catalyst.
- Ajout d’une présentation plus complète de l’environnement Catalyst.
- Ajout d’une synthèse visuelle des sections Architecture, Maintenance et Sécurité.
- Ajout de la liste des outils intégrés : CopyEngine, PhotoEngine, VideoEngine, VideoConverterEngine et Recette de Poste.
- Ajout de l’affichage dynamique de la version PowerShell utilisée.
- Ajout d’une section dédiée aux chemins importants de Catalyst.
- Ajout d’une section dédiée aux dépendances principales : winget, ffmpeg, ffprobe et mkvpropedit.
- Ajout de boutons rapides depuis la page **À propos** :
- ouverture du changelog ;
- ouverture de la racine Catalyst ;
- ouverture du dossier des logs ;
- ouverture du dossier des exports ;
- ouverture du dossier des outils ;
- accès direct à la page Diagnostic.
#### Modifié
- Modernisation visuelle de la page **À propos** pour l’aligner avec les dernières pages Catalyst.
- Réorganisation des informations de la page **À propos** pour améliorer la lisibilité.
- Mise à jour de l’affichage de version Catalyst en `1.3.5`.
- Clarification du rôle de Catalyst comme environnement modulaire regroupant outils, maintenance, diagnostic et sécurité.
#### Corrigé
- Correction des boutons rapides de la page **À propos** afin d’éviter les appels à des fonctions non disponibles au moment du clic.
- Correction de l’ouverture des chemins rapides Racine, Logs, Exports et Outils.
- Sécurisation des handlers WPF des boutons rapides avec capture propre des chemins au moment de l’initialisation.

### [1.3.4] - 2026-06-15
#### Ajouté
- Ajout d’un mécanisme de rotation et de purge automatique des logs Catalyst.
- Ajout d’un nettoyage automatique des anciens journaux applicatifs dans `Data\Log`.
- Ajout d’un nettoyage automatique des anciennes traces de démarrage `Catalyst_StartupTrace`.
- Ajout d’un contrôle de taille des logs avec archivage automatique si dépassement du seuil configuré.
- Ajout d’un nettoyage des logs runtime dans le dossier de build généré par le Release Manager.
- Ajout d’une vérification finale du build pour confirmer l’absence de logs runtime dans `Data\Log`.
- Ajout d’exclusions explicites des logs runtime dans le script Inno Setup.
#### Modifié
- Harmonisation des sorties console internes de Catalyst.
- Remplacement des messages console non essentiels `Write-Host` par `Write-Verbose` dans les modules UI principaux.
- Réduction du bruit console lors de la navigation et de l’initialisation des pages.
- Conservation des informations techniques en mode verbose/dev sans pollution de l’usage normal.
- Centralisation renforcée des journaux applicatifs dans `Data\Log`.
- Clarification de la séparation entre les logs applicatifs Catalyst, les traces de démarrage et les rapports Diagnostic Markdown.
#### Corrigé
- Correction des messages console trop bavards lors de la navigation entre les pages.
- Correction des traces visibles inutiles lors de l’initialisation des pages Logiciels, Bloatwares, Personnalisation, Outils et Dashboard.
- Correction du risque d’embarquer des logs runtime dans le package final.
- Correction du risque de conserver des journaux historiques inutiles dans le dossier de build.

### [1.3.3] - 2026-06-15
#### Ajouté
- Ajout d’une page Diagnostic Catalyst intégrée.
- Ajout d’un contrôle de l’environnement PowerShell et Windows.
- Ajout d’un contrôle du mode d’exécution Catalyst, avec session utilisateur standard considérée comme comportement attendu.
- Ajout d’un contrôle des dossiers principaux du projet.
- Ajout d’un contrôle de présence des outils intégrés : CopyEngine, PhotoEngine, VideoEngine, VideoConverterEngine et Recette de Poste.
- Ajout d’un contrôle des dépendances externes : winget, ffmpeg, ffprobe et mkvpropedit.
- Ajout d’un contrôle des lecteurs réseau configurés.
- Ajout d’un contrôle sécurité confirmant l’absence de LanEngine, des anciens fichiers credentials et des backups temporaires Release Manager.
- Ajout de l’export Markdown du rapport diagnostic.
- Ajout d’un accès rapide au dossier des rapports diagnostic.
#### Modifié
- Les dossiers Data\Config et Data\Backup absents en environnement source sont maintenant classés en information plutôt qu’en erreur ou avertissement.
- La confirmation d’export utilise désormais la pop-up stylisée Catalyst.
#### Corrigé
- Correction de la navigation depuis la page Diagnostic vers les autres vues.
- Correction du rafraîchissement visuel de la grille Diagnostic après exécution.

### [1.3.2] - 2026-06-15
- Nettoyage des résidus LanEngine non fonctionnels restants.
- Suppression des icônes LanEngine encore présentes dans les ressources Catalyst.
- Nettoyage des anciens artefacts de build, logs et fichiers de sauvegarde présents dans la source.
- Amélioration du Release Manager afin d’exclure les fichiers temporaires et artefacts inutiles du package final.
- Poursuite du durcissement sécurité du package Catalyst après le retrait de LanEngine et des anciens credentials NAS.

### [1.3.1] - 2026-06-15
- suppression des credentials NAS de la source ;
- suppression du fichier nas-credentials.xml ;
- ajout d’exclusions dans le Release Manager pour éviter que des credentials/secrets reviennent dans un build ;
- éventuellement préparation d’un mécanisme de configuration interactive plus propre.

### [1.3.0] - 2026-06-15
- Retrait de LanEngine de l’environnement Catalyst.
- Séparation de LanEngine en vue d’en faire un outil autonome avec son propre installateur.
- Suppression des composants LanEngine du package Catalyst afin de réduire l’exposition des secrets réseau, clés SSH et credentials.
- Préparation d’une nouvelle passe d’audit sécurité sur Catalyst après retrait de LanEngine.

### [1.2.9] - 2026-06-15
- Modernisation de l’interface VideoEngine.
- Harmonisation visuelle avec le style VideoConverterEngine, CopyEngine et PhotoEngine.
- Refonte XAML sans modification des fonctionnalités existantes.

### [1.2.8] - 2026-06-15
- Modernisation de l’interface PhotoEngine.
- Harmonisation visuelle avec le style VideoConverterEngine et CopyEngine.
- Refonte XAML sans modification des fonctionnalités existantes.

### [1.2.7] - 2026-06-15
- Modernisation de l’interface CopyEngine.
- Harmonisation visuelle de CopyEngine avec le style VideoConverterEngine.
- Refonte XAML de l’interface sans modification des fonctionnalités existantes.

### [1.2.6] - 2026-06-11
- Correction du nettoyage des raccourcis d’outils lors de la désinstallation.
- Amélioration de la détection et suppression du raccourci LanEngine sur le Bureau utilisateur.

### [1.2.5] - 2026-06-11
- Amélioration du désinstalleur Catalyst.
- Ajout d’une vérification des raccourcis d’outils présents sur le Bureau utilisateur lors de la désinstallation.
- Ajout d’une confirmation permettant de supprimer automatiquement les raccourcis Catalyst restants.

### [1.2.4] - 2026-06-11
- Mise à jour des détails de la page À propos

### [1.2.3] - 2026-06-11
- Amélioration de VideoConverterEngine.
- Ajout d’un retour visuel pendant les traitements batch :
  - statut du traitement en cours ;
  - fichier traité ;
  - compteur de progression `X / total` ;
  - barre de progression globale ;
  - désactivation du bouton Exécuter pendant le traitement.
- Extension de la progression aux modes :
  - `SetMp4Title` ;
  - `Mp4ToMkvRemux` ;
  - `AviToMkvReencode` ;
  - `SetMkvTitle`.
- Correction du mode `Mp4ToMkvRemux` :
  - le remux MP4 vers MKV ne copie plus tous les flux indiscriminément ;
  - seuls les flux vidéo, audio et sous-titres sont mappés afin d’éviter les erreurs Matroska liées aux pistes non supportées.
- Amélioration du résumé de fin de traitement avec le détail :
  - succès ;
  - fichiers ignorés ;
  - échecs ;
  - total parcouru.
- Réorganisation de l’interface VideoConverterEngine :
  - déplacement du mode de traitement dans le panneau d’action ;
  - repositionnement du bloc de progression ;
  - affichage côte à côte des blocs Aperçu / Résultats et Logs ;
  - réduction du scroll vertical et suppression du scroll horizontal.

### [1.2.2] - 2026-06-09
- Correction de l’affichage du menu déroulant de filtrage dans la fenêtre de prévisualisation CopyEngine.

### [1.2.1] - 2026-06-09
- Correction de la prévisualisation CopyEngine
- le premier fichier sélectionné n’est plus détecté à tort comme déjà existant lorsque la destination est vide.

## [1.2.0] - 2026-06-05
### Ajouté
- Ajout du fichier CHANGELOG.md.
- Ajout du badge version cliquable dans la page À propos.
- Ajout de raccourcis Bureau pour les outils intégrés.
- Ajout de l’ouverture des lecteurs depuis les cards du dashboard.
### Modifié
- Suppression des splashscreens au lancement des outils depuis leurs raccourcis.
- Harmonisation des titres des fenêtres outils avec la version Catalyst.
### Corrigé
- Correction de l’uptime affiché dans le panneau latéral.
- Masquage de la card Température si aucun capteur exploitable n’est disponible.
- Correction des icônes Catalyst et outils dans la barre des tâches.

## [1.1.9] - 2026-06-05
### Ajouté
- Ajout d’un fichier `CHANGELOG.md`.
- Ajout d’un bouton cliquable sur le badge de version de la page **À propos** pour ouvrir l’historique des versions.

## [1.1.8] - 2026-06-05
### Modifié
- Harmonisation du titre des fenêtres des outils avec le numéro de version Catalyst.
- Les fenêtres CopyEngine, PhotoEngine, VideoEngine, VideoConverterEngine et LanEngine affichent désormais leur version dans le bandeau de fenêtre.

## [1.1.7] - 2026-06-05
### Corrigé
- Correction des icônes des outils dans la barre des tâches.
- Les outils n’affichent plus l’icône PowerShell dans la barre des tâches.

## [1.1.6] - 2026-06-05
### Modifié
- Suppression des splashscreens au lancement des outils depuis leurs raccourcis Bureau.
- Les outils s’ouvrent plus rapidement et directement.

## [1.1.5] - 2026-06-05
### Modifié
- Mise à jour de la page **À propos** avec des informations complémentaires sur Catalyst.

## [1.1.4] - 2026-06-05
### Corrigé
- Correction de l’icône Catalyst dans la barre des tâches.
- La fenêtre principale utilise désormais l’icône Catalyst au lieu de l’icône PowerShell.

## [1.1.3] - 2026-06-05
### Corrigé
- Correction de l’affichage de la température dans le panneau latéral.
- La card Température est masquée lorsque Windows ne fournit aucun capteur exploitable.

## [1.1.2] - 2026-06-05
### Corrigé
- Correction de l’uptime affiché dans le panneau latéral.
- L’uptime affiché correspond désormais à la session utilisateur active.

## [1.1.1] - 2026-06-05
### Ajouté
- Ajout du clic sur les cards lecteurs du dashboard pour ouvrir le lecteur dans l’Explorateur.
- Ajout du bouton **🖥️ Raccourci Bureau** dans le menu Outils.
- Ajout d’une popup moderne Catalyst après création d’un raccourci Bureau.

## [1.0.0] - 2026-06-04
### Première version stable
- Première version stable packagée de Catalyst.
- Build propre, signature, installation EXE, lancement et désinstallation validés.
- Validation sur VM et machine physique.
