diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index ec4d90c..520132f 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -53,6 +53,7 @@ Supabase ### Bridge .NET - Connexion/reconnexion SimConnect. +- Client hors processus self-contained Windows x64, limité à la session locale. - Normalisation, validation et agrégation de la télémétrie. - Machine à états de vol déterministe et rejouable. - Rapport de vol versionné. @@ -162,3 +163,6 @@ de caractérisation malgré l'absence de migration de code. - `ADR-0002` : réécriture totale isolée dans un nouveau dépôt ; ancien dépôt conservé comme référence en lecture seule, nouveau schéma sans migration des données de développement et une seule bascule publique après parité. +- `ADR-0003` : Windows 11 x64 maintenu et MSFS 2024 stable uniquement ; Store et + Steam sont validés séparément, sans support Windows 10, ARM64, MSFS 2020, + Insider ou Preview. WebView2 Evergreen et bridge .NET self-contained. diff --git a/docs/CURRENT_STATE.md b/docs/CURRENT_STATE.md index 7fceb57..ca6666d 100644 --- a/docs/CURRENT_STATE.md +++ b/docs/CURRENT_STATE.md @@ -168,11 +168,23 @@ Il n'y aura ni coexistence en production, ni double écriture, ni ancien client connecté au nouveau backend. Une seule bascule publique est prévue après les gates de caractérisation, SimConnect, parité, restauration et distribution. +## Décision de support + +`ADR-0003` retient Windows 11 x64, sur une version publique encore maintenue par +Microsoft, et MSFS 2024 stable uniquement. Microsoft Store/Xbox App et Steam sont +deux combinaisons distinctes qui restent `Unsupported — validation requise` +jusqu'à une fiche de test réelle par canal. Windows 10, ARM64, MSFS 2020, +Windows Insider et les builds MSFS Beta/Preview sont `Unsupported`. + +Une machine Ryzen 7 5800X, 32 Go et RX 6070 XT est disponible comme profil +recommandé de validation. Elle ne prouve pas le minimum matériel. Aucun test +MSFS réel n'a été exécuté dans T0004. + ## Prochain ticket recommandé -Créer et exécuter un ticket borné de caractérisation du golden path et des traces -SimConnect avant le nouveau socle. La matrice Windows/MSFS reste planifiée dans -T0004. +`T0005 — Budgets stabilité et performance`. Il doit mesurer et fixer les budgets +du profil minimum/recommandé. Les preuves Store/Steam et les replays SimConnect +seront réalisés lors du premier vertical slice bridge. ## Mise à jour de ce fichier diff --git a/docs/KNOWN_ISSUES.md b/docs/KNOWN_ISSUES.md index 564a818..29f5d3d 100644 --- a/docs/KNOWN_ISSUES.md +++ b/docs/KNOWN_ISSUES.md @@ -25,6 +25,8 @@ Statut : `Open`, `Accepted`, `Scheduled`, `Resolved`, `Invalid`. | KI-008 | High | Rebuild | Une réécriture totale peut omettre des comportements actuels non caractérisés. | ADR-0002 : couverture automatisée faible face au périmètre existant | Caractérisation du golden path | Open | | KI-009 | High | Bridge | Aucun corpus de traces SimConnect rejouables n'est fourni pour prouver la parité du moteur de vol. | T0001 et ADR-0002 | Premier vertical slice SimConnect | Open | | KI-010 | High | Release | Après création de données réelles dans le nouveau schéma, aucun retour vers l'ancien produit ne sera possible. | ADR-0002 : nouveau schéma sans compatibilité descendante | Phase 6 | Accepted | +| KI-011 | High | Support | Aucune preuve réelle distincte ne valide encore MSFS 2024 Microsoft Store/Xbox App et Steam ; une seule machine de test est disponible. | T0004 et proposition ADR-0003 | Validation plateformes / premier vertical slice SimConnect | Open | +| KI-012 | Medium | Support | Le profil matériel minimum Thrustline n'est pas mesuré ; la machine Ryzen 7 5800X, 32 Go, RX 6070 XT ne prouve que le profil recommandé cible. | Réponses Andy et ADR-0003 | T0005 | Open | ## Règles diff --git a/docs/PRODUCT.md b/docs/PRODUCT.md index 1c60256..837b9c8 100644 --- a/docs/PRODUCT.md +++ b/docs/PRODUCT.md @@ -78,8 +78,11 @@ ADR. Ne pas ajouter partiellement du multi-utilisateur. ## Contraintes de distribution -- Windows 10/11 à confirmer par matrice de tests. -- MSFS 2020/2024 et éditions réellement supportées à documenter. +- Windows 11 x64 uniquement, version publique encore maintenue par Microsoft. +- MSFS 2024 stable uniquement ; Microsoft Store/Xbox App et Steam sont deux + combinaisons distinctes à prouver avant toute déclaration `Supported`. +- Windows 10, ARM64, MSFS 2020, Windows Insider et MSFS Beta/Preview sont exclus + conformément à `ADR-0003`. - Aucun privilège administrateur permanent. - Données utilisateur séparées des fichiers d'installation. - Politique de confidentialité, support, sécurité et licence avant bêta publique. diff --git a/docs/QUALITY.md b/docs/QUALITY.md index 77be4b4..e1005ce 100644 --- a/docs/QUALITY.md +++ b/docs/QUALITY.md @@ -33,10 +33,12 @@ résultat. ### Manuel MSFS -- MSFS fermé, lancement tardif et redémarrage. -- Vol normal, touch-and-go, go-around, pause, slew et accélération temporelle. -- Perte réseau pendant et après le vol. -- Plusieurs appareils/add-ons représentatifs. +- Exécuter les quatorze scénarios définis par `ADR-0003` pour la première + promotion de chaque canal MSFS 2024 vers `Supported`. +- Conserver une fiche distincte Store/Steam dans `docs/validation/platforms/` + avec versions exactes, commit, appareil, résultat, testeur, anomalies et trace. +- Après Sim Update, exécuter au minimum les scénarios smoke 1–5, 9–11 et 14 avant + de retirer l'état `Compatibility pending`. ## Matrice de validation par zone @@ -49,6 +51,7 @@ résultat. | Contrat transverse | tests de contrat + builds des consommateurs | | Sécurité | scénario d'abus et contrôle rejeté | | Release | VM propre, signature, upgrade et rollback | +| Plateforme `Supported` | fiche réelle Windows/MSFS par canal + protocole ADR-0003 | ## Budgets initiaux à fixer en phase 0 @@ -81,6 +84,9 @@ Le Completion Report conserve : - étapes manuelles et résultat ; - capture ou extrait uniquement si utile et sans donnée sensible. +Une documentation fournisseur ou un test effectué sur un autre canal MSFS ne +remplace jamais la fiche réelle exigée pour une combinaison `Supported`. + ## Release gate Une release publique exige : @@ -93,4 +99,3 @@ Une release publique exige : - SBOM/checksums/provenance ; - parcours critiques sur VM propre ; - notes de version, limitations et procédure de rollback. - diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 4e29907..463ce01 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -10,14 +10,17 @@ Objectif : rendre l'existant mesurable et décider ce que l'on reconstruit. - Inventaire reproductible, tests/builds et matrice de dépendances. - Décision du modèle produit : MVP solo connecté préparé pour une collaboration ultérieure (`ADR-0001`, acceptée). -- Matrice Windows/MSFS supportée. +- Matrice Windows/MSFS acceptée (`ADR-0003`) : Windows 11 x64 et MSFS 2024 + stable, Store et Steam prouvés séparément. - Budgets stabilité/performance et politique de données. - Stratégie acceptée : réécriture totale isolée dans un nouveau dépôt (`ADR-0002`), sans migration des données de développement. - Environnements dev/staging/prod documentés. Gate : baseline verte ou écarts connus, ADR majeures acceptées, périmètre MVP -gelé et golden path à caractériser identifié. +gelé, golden path à caractériser identifié et protocole de preuve plateforme +défini. La promotion effective d'un canal MSFS vers `Supported` peut intervenir +avec les tests réels du vertical slice. ## Phase 1 — Socle reproductible @@ -92,7 +95,7 @@ Objectif : produire une bêta installable et récupérable. - Updater signé, canaux stable/bêta et rollback. - Logs redigés, diagnostics consentis et crash reporting. - Politique sécurité, confidentialité, licence et support. -- Tests VM Windows/MSFS. +- Tests Windows 11 x64/MSFS 2024 sur Store et Steam, avec fiches ADR-0003. Gate : installation, upgrade N-1, rollback et désinstallation validés. diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md new file mode 100644 index 0000000..f037841 --- /dev/null +++ b/docs/SUPPORT.md @@ -0,0 +1,111 @@ +# Plateformes prises en charge + +Dernière mise à jour : 24 juillet 2026 +Décision acceptée : `ADR-0003` + +Thrustline cible une application desktop **Windows 11 x64** connectée localement +à **Microsoft Flight Simulator 2024**. Le support Xbox console, Cloud Gaming et +PlayStation n'est pas possible : l'application et son client SimConnect doivent +fonctionner sur le même PC Windows. + +## Signification des niveaux + +- **Supported** : combinaison testée réellement pour la release, documentée et + prise en charge en cas d'incident. +- **Compatible** : test réel concluant, sans garantie à chaque release. +- **Experimental** : fonctionnement attendu mais couverture insuffisante. Ce + niveau n'est pas utilisé actuellement sur décision produit. +- **Unsupported** : combinaison exclue ou pas encore validée. + +`Compatibility pending` signifie qu'une combinaison auparavant `Supported` est +en cours de revalidation après une mise à jour. + +## Matrice actuelle + +### Windows + +| Système | Architecture | Niveau | +| --- | --- | --- | +| Windows 11 Home/Pro, version publique encore maintenue par Microsoft | x64 | **Unsupported — validation requise**, cible `Supported` | +| Windows 11 Enterprise/Education maintenu | x64 | **Unsupported — validation requise**, cible `Compatible` | +| Windows 11 Insider/Preview | x64 | **Unsupported** | +| Windows 11 ARM64 | ARM64 | **Unsupported** | +| Windows 10 | toute | **Unsupported** | +| Windows Server, Wine/Proton | toute | **Unsupported** | + +Une version Windows arrivée en fin de support Microsoft n'est pas supportée par +Thrustline. + +### Microsoft Flight Simulator + +| Simulateur | Canal | Niveau | +| --- | --- | --- | +| MSFS 2024 stable | Microsoft Store/Xbox App | **Unsupported — validation requise**, cible `Supported` | +| MSFS 2024 stable | Steam | **Unsupported — validation requise**, cible `Supported` | +| MSFS 2024 Beta/Sim Update Preview | Store ou Steam | **Unsupported** | +| MSFS 2020 | Store ou Steam | **Unsupported** | +| MSFS sur console/cloud | tout | **Unsupported** | + +Aucune ligne n'est encore `Supported`, car T0004 est documentaire et n'a exécuté +aucun vol réel. Les canaux Store et Steam doivent chacun réussir leur propre +validation ; le résultat de l'un ne prouve pas l'autre. + +## Prérequis + +- Windows 11 x64 maintenu et à jour. +- Session utilisateur standard ; aucun droit administrateur permanent. +- WebView2 Evergreen présent et maintenu. L'installateur doit le vérifier et + proposer sa réparation officielle s'il manque. +- Connexion Internet pour l'authentification et les fonctions cloud. +- MSFS 2024 lancé dans la même session Windows que Thrustline. +- Le compte ayant acheté ou installé MSFS peut être différent si le simulateur + démarre normalement dans cette session et si SimConnect local fonctionne sans + contourner les permissions. + +Le bridge .NET doit être livré avec son runtime. L'utilisateur ne doit installer +ni SDK .NET, ni outils de développement, ni SDK MSFS. + +## Profils matériels + +Les exigences propres à Thrustline restent provisoires jusqu'aux mesures T0005. +Les exigences officielles de MSFS 2024 s'ajoutent séparément. + +| Profil | Configuration Thrustline | +| --- | --- | +| Minimum supporté, à valider | CPU x64 moderne 4 cœurs, 16 Go de RAM, 2 Go libres hors MSFS, Windows 11 maintenu, écran 1280×720 à 100–150 % | +| Recommandé | Ryzen 7 5800X ou équivalent, 32 Go, 4 Go libres hors MSFS, écran 1920×1080 à 100–150 % | +| CI/replay sans MSFS | 4 vCPU x64, 8 Go, 10 Go pour sources/caches/artefacts, Windows 11, écran virtuel 1920×1080 | + +La machine de validation disponible possède un Ryzen 7 5800X, 32 Go de RAM et +un GPU RX 6070 XT confirmé par le propriétaire de la machine. + +## Quand une mise à jour arrive + +Après une feature update Windows ou une Sim Update MSFS, une combinaison déjà +supportée peut passer temporairement `Compatibility pending`. Thrustline : + +1. relève les versions sans collecter de donnée personnelle ; +2. exécute les smoke tests, puis le golden path ; +3. publie les limitations connues sans promettre un délai de confirmation ; +4. rétablit `Supported` uniquement après une nouvelle fiche de preuve ; +5. laisse l'application démarrer avec un avertissement lorsque c'est sûr. + +Un blocage ou kill switch n'est autorisé qu'en cas de risque réel de corruption, +double clôture, perte de données ou sécurité. La lecture et la récupération des +données doivent rester disponibles autant que possible. + +## Ce qui est testé + +La première promotion d'un canal vers `Supported` exige les 14 scénarios : +MSFS fermé ; ordres de lancement ; reconnexion ; menu/chargement/vol ; vol normal ; +go-around/touch-and-go ; pauses/accélération ; slew/téléportation ; retour menu et +changement d'appareil ; crash MSFS ; perte Internet ; vol long ; avion natif et +add-on ; variable SimConnect absente ou invalide. + +Chaque preuve indique la version Thrustline, le commit, Windows/build, MSFS/build +et canal, l'appareil, le scénario, le résultat, la date, le testeur, les anomalies +et la trace de replay. Les futures fiches seront conservées dans +`docs/validation/platforms/`. + +Le protocole détaillé et les sources officielles sont dans +`docs/decisions/ADR-0003-matrice-support-windows-msfs.md`. diff --git a/docs/decisions/ADR-0003-matrice-support-windows-msfs.md b/docs/decisions/ADR-0003-matrice-support-windows-msfs.md new file mode 100644 index 0000000..09c3abe --- /dev/null +++ b/docs/decisions/ADR-0003-matrice-support-windows-msfs.md @@ -0,0 +1,284 @@ +# ADR-0003 — Matrice de support Windows et Microsoft Flight Simulator + +Status: Accepted +Date: 2026-07-24 +Deciders: Andy (Product Owner) +Supersedes: — +Superseded by: — + +## Context + +Thrustline est une application desktop Windows qui utilise un bridge .NET hors +processus pour communiquer localement avec Microsoft Flight Simulator par +SimConnect. Avant de figer le socle de la réécriture, il faut distinguer la cible +produit de la compatibilité réellement prouvée. + +Andy possède MSFS 2024 et souhaite couvrir ses canaux Microsoft Store/Xbox App et +Steam. Une seule machine de test est disponible : AMD Ryzen 7 5800X, 32 Go de RAM +et AMD Radeon RX 6070 XT, sous réserve de confirmer le modèle exact du GPU, la +version/build de Windows 11, l'écran/DPI et les installations MSFS présentes. + +Andy décide : + +- Windows 11 x64 uniquement ; +- MSFS 2024 uniquement, canaux Microsoft Store/Xbox App et Steam ; +- aucun support Windows ARM64, Windows Insider, MSFS Beta ou Sim Update Preview ; +- fonctionnement dans la session utilisateur courante même lorsque MSFS dépend + d'un autre compte Windows/Microsoft, à valider sans contourner les permissions ; +- aucun engagement de délai après une mise à jour Windows ou MSFS ; +- aucun niveau `Experimental` faute de validation ; +- lancement autorisé avec avertissement sur une combinaison non supportée, + sauf risque réel de corruption ou de sécurité. + +Andy a confirmé le 24 juillet 2026 que le lancement reste autorisé avec +avertissement hors matrice, sous réserve du garde-fou corruption/sécurité. + +## Official facts and inferences + +Sources consultées le 24 juillet 2026 : + +| Source officielle | Publication/version | Fait retenu | +| --- | --- | --- | +| [Windows 11 release information](https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information) | état publié au 14 juillet 2026 | Windows 11 suit une cadence annuelle ; Home/Pro reçoivent 24 mois et Enterprise/Education 36 mois de support. Les versions actives et leurs builds changent dans le temps. | +| [Windows 11 Enterprise and Education lifecycle](https://learn.microsoft.com/en-us/lifecycle/products/windows-11-enterprise-and-education) | état consulté le 24 juillet 2026 | Les dates de fin de support diffèrent selon version et édition. | +| [MSFS 2024 SimConnect SDK](https://docs.flightsimulator.com/msfs2024/html/6_Programming_APIs/SimConnect/SimConnect_SDK.htm) | documentation SDK MSFS 2024 | Les clients hors processus peuvent être écrits en .NET ; la plateforme de build indiquée est x64 ; le hors-processus est recommandé pour la stabilité ; les clients SimConnect ne sont pas thread-safe. | +| [Upgrade SimConnect from MSFS 2020 to MSFS 2024](https://docs.flightsimulator.com/msfs2024/html/6_Programming_APIs/SimConnect/SimConnect_SDK.htm#upgrade-simconnect-from-msfs-2020-to-msfs-2024) | documentation SDK MSFS 2024 | Un module compilé avec le SDK 2020 peut rester reconnu comme module 2020, mais les structures et fonctionnalités 2024 comportent des différences. | +| [SimConnect INI Definition](https://docs.flightsimulator.com/msfs2024/html/6_Programming_APIs/SimConnect/SimConnect_INI_Definition.htm) | documentation SDK MSFS 2024 | Les chemins locaux diffèrent entre Microsoft Store et Steam ; ce mécanisme de diagnostic est hérité et déconseillé pour une dépendance produit. | +| [MSFS 2024 FAQ](https://www.flightsimulator.com/microsoft-flight-simulator-2024-faq/) | exigences PC officielles | MSFS 2024 requiert un environnement 64 bits, DirectX 12, une connexion réseau et au minimum 16 Go de RAM ; le profil recommandé du simulateur utilise 32 Go. | +| [MSFS 2024 on Steam](https://store.steampowered.com/app/2537590/Microsoft_Flight_Simulator_2024/) | fiche Steam consultée le 24 juillet 2026 | Steam publie les mêmes ordres de grandeur minimaux : processeur/OS 64 bits, 16 Go, DirectX 12, réseau haut débit et 50 Go pour MSFS. | +| [MSFS 2024 release notes — Sim Update 5.1](https://www.flightsimulator.com/category/releases/) | version stable 1.7.35.0, 29 juin 2026 | La version stable observée au moment de la décision est 1.7.35.0 ; elle n'est pas figée par l'ADR. | +| [MSFS Weekly Briefing — 16 juillet 2026](https://www.flightsimulator.com/july-16th-2026-msfs-weekly-briefing/) | SU6 bêta 1.8.8.0 | Les bêtas existent sur Store et Steam et évoluent séparément de la version publique ; elles sont exclues du support. | +| [WebView2 development best practices](https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/developer-guide) | mise à jour 15 octobre 2025 | Microsoft recommande Evergreen pour la plupart des applications, la détection du runtime, la gestion de ses mises à jour et la récupération après défaillance de processus. | +| [Distribute WebView2 Runtime](https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution) | documentation consultée le 24 juillet 2026 | WebView2 Evergreen est inclus avec Windows 11, mais l'installateur doit vérifier sa présence ; le runtime s'actualise automatiquement. | +| [Tauri Windows Installer](https://v2.tauri.app/distribute/windows-installer/) | documentation consultée le 24 juillet 2026 | Tauri propose MSI/NSIS et installe par défaut WebView2 via bootstrapper s'il manque ; un runtime fixe alourdit et transfère la charge de maintenance. | +| [Latest supported Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist) | famille v14, consultée le 24 juillet 2026 | Le redistribuable doit être au moins aussi récent que les outils MSVC employés et son architecture doit correspondre à l'application. | +| [.NET installation on Windows](https://learn.microsoft.com/en-us/dotnet/core/install/windows) | documentation consultée le 24 juillet 2026 | Une application .NET peut embarquer sa propre copie du runtime ; un runtime système global n'est donc pas une obligation produit. | + +Inférences de conception, et non promesses Microsoft : + +- limiter Thrustline à Windows 11 x64 réduit la matrice et permet de suivre le + cycle de vie Windows réellement maintenu ; +- Store et Steam doivent être testés séparément même si SimConnect expose une API + commune, car l'installation, les mises à jour et les données locales diffèrent ; +- le bridge doit être publié self-contained x64 afin de ne pas imposer un runtime + .NET global ni des privilèges administrateur permanents ; +- Evergreen WebView2 est préférable au runtime fixe pour recevoir les correctifs + de sécurité, avec vérification/réparation par l'installateur ; +- les exigences matérielles de MSFS ne prouvent pas les exigences propres à + Thrustline ; ces dernières devront être mesurées sur le profil minimum. + +## Support levels + +- **Supported** : CI quand possible, test manuel réel sur la combinaison exacte, + fiche de validation, documentation et prise en charge des incidents. +- **Compatible** : test réel concluant, sans garantie à chaque release. +- **Experimental** : compatibilité attendue mais preuve insuffisante. Ce niveau + existe dans le vocabulaire du produit, mais Andy refuse son usage initial. +- **Unsupported** : volontairement exclu, incompatible, ou non validé alors que + `Experimental` est interdit. Une plateforme non testée n'est jamais promue. + +`Compatibility pending` est un état temporaire d'une ligne déjà `Supported`, +pas un cinquième niveau. + +## Decision + +### Windows + +La cible officielle est Windows 11 x64, édition Home ou Pro, version publique +encore maintenue par Microsoft. Enterprise/Education peuvent être `Compatible` +après test, mais ne constituent pas le profil utilisateur principal. + +| Windows | Édition/build | Architecture | Niveau initial | Preuve requise | Fréquence cible | +| --- | --- | --- | --- | --- | --- | +| Windows 11 | Home/Pro, version publique maintenue | x64 | Unsupported — validation requise | Fiche réelle sur la machine minimale et golden path | chaque release Thrustline + après feature update | +| Windows 11 | Enterprise/Education, version publique maintenue | x64 | Unsupported — validation requise | Test d'installation, WebView2 et golden path | release majeure | +| Windows 11 | Insider/Preview | x64 | Unsupported | Exclusion volontaire | aucune garantie | +| Windows 11 | toute édition | ARM64 | Unsupported | Exclusion volontaire | aucune | +| Windows 10 | toute édition | x64/ARM64 | Unsupported | Exclusion volontaire | aucune | +| Windows Server, Xbox console, Wine/Proton | toutes | toutes | Unsupported | Hors produit desktop Windows 11 | aucune | + +Une version Windows quitte automatiquement la cible lorsqu'elle n'est plus +maintenue par Microsoft. Une ligne `Supported` passe alors `Compatibility +pending`, puis `Unsupported` à la prochaine release Thrustline sauf décision +documentée de transition. + +### Microsoft Flight Simulator + +| Simulateur | Canal | Version/build | Niveau initial | SimConnect testé | Dernier test | +| --- | --- | --- | --- | --- | --- | +| MSFS 2024 | Microsoft Store/Xbox App | stable publique courante | Unsupported — validation requise | Non dans T0004 | — | +| MSFS 2024 | Steam | stable publique courante | Unsupported — validation requise | Non dans T0004 | — | +| MSFS 2024 | Beta/Sim Update Preview | toute | Unsupported | Non requis | — | +| MSFS 2020 | Store ou Steam | toute | Unsupported | Non requis | — | +| MSFS sur Xbox/Cloud/PlayStation | tout | toute | Unsupported | SimConnect local desktop indisponible | — | + +Les deux canaux MSFS 2024 sont des cibles de promotion vers `Supported`. Chacun +exige sa propre fiche. Si une seule installation réelle est disponible, l'autre +reste `Unsupported — validation requise`; une preuve sur un canal ne vaut pas +pour l'autre. + +Le bridge ne dépend pas des fichiers privés de l'installation MSFS et n'exige +aucune modification du simulateur. Le compte ayant acheté/installé MSFS peut +différer du compte Windows courant uniquement si MSFS se lance normalement dans +la session courante et si SimConnect local fonctionne avec les permissions +standard. Thrustline ne contourne ni ACL, ni DRM, ni séparation de session. + +### Hardware profiles + +Les valeurs MSFS ci-dessous sont citées séparément des budgets Thrustline. + +| Profil | CPU/architecture | RAM | Disque Thrustline | Windows | WebView2 | Réseau | Écran/DPI | MSFS | +| --- | --- | ---: | ---: | --- | --- | --- | --- | --- | +| Minimum supporté | x64, à mesurer ; cible provisoire 4 cœurs modernes | 16 Go provisoires | 2 Go provisoires hors données | Windows 11 Home/Pro maintenu | Evergreen présent/réparable | Internet requis pour fonctions cloud ; SimConnect reste local | 1280×720, 100–150 % à valider | MSFS 2024 doit satisfaire séparément ses exigences officielles | +| Recommandé | Ryzen 7 5800X ou équivalent x64 | 32 Go | 4 Go provisoires hors MSFS | Windows 11 Home/Pro maintenu | Evergreen à jour | haut débit stable | 1920×1080, 100–150 % | MSFS 2024 ; GPU selon exigences propres au simulateur | +| CI/test sans MSFS | x64, 4 vCPU | 8 Go | 10 Go pour sources, caches et artefacts | Windows 11 maintenu | présent pour E2E UI | Internet pour restauration/outils selon politique CI | écran virtuel 1920×1080, 100 % | absent ; replays déterministes obligatoires | + +Le profil disponible d'Andy (Ryzen 7 5800X, 32 Go, RX 6070 XT confirmée par +Andy) est le profil recommandé de validation, pas la preuve du minimum. + +### Runtime, installation and user data + +- Application, bridge et installateur x64 uniquement. +- Bridge .NET publié self-contained ; aucun SDK .NET requis chez l'utilisateur. +- WebView2 Evergreen vérifié à l'installation et réparé par le mécanisme officiel + si absent ; aucune désactivation de ses mises à jour. +- Redistribuable Visual C++ x64 inclus ou chaîné seulement si les binaires finaux + l'exigent, dans une version compatible avec les outils de build. +- Installation par utilisateur privilégiée ; aucune exécution permanente en + administrateur. Une élévation ponctuelle de l'installateur doit être justifiée. +- Exécutables dans le dossier d'installation ; configuration, caches, logs + redigés, outbox et diagnostics dans les dossiers utilisateur Windows prévus à + cet effet, jamais dans le dossier MSFS. +- Update signée, atomique et récupérable ; désinstallation sans suppression des + données métier locales non synchronisées sans confirmation explicite. +- Aucun accès ou changement des fichiers MSFS sans consentement explicite. + +## SimConnect validation protocol + +Chaque scénario conserve une trace rejouable versionnée quand des événements +SimConnect sont reçus. Les logs autorisés contiennent versions, transitions, +codes d'erreur, compteurs et identifiants techniques aléatoires ; jamais JWT, +headers d'authentification, secret, nom réel, adresse courriel ou chemin utilisateur +complet. Les chemins sont redigés. + +| # | État initial et action | Événements attendus | Dégradation et critère de réussite | +| ---: | --- | --- | --- | +| 1 | MSFS fermé ; lancer Thrustline | état `sim-unavailable`, tentatives bornées | UI utilisable pour la gestion, aucune boucle agressive ni crash ; trace d'absence conservée | +| 2 | Tester MSFS avant puis après Thrustline | `open`, version détectée, abonnement unique | connexion dans les deux ordres sans redémarrage obligatoire ; trace de handshake | +| 3 | Vol actif ; couper/relancer MSFS ou le bridge | perte détectée, backoff, reconnexion et resynchronisation | aucun double événement ni perte silencieuse ; reprise ou état actionnable | +| 4 | Menu, chargement, puis vol actif | états distincts menu/loading/active | aucune phase de vol créée au menu ; démarrage unique en vol | +| 5 | Cold-and-dark → taxi → décollage → croisière → atterrissage | transitions ordonnées et télémétrie bornée | rapport cohérent, une seule clôture candidate ; trace golden path | +| 6 | Go-around puis touch-and-go | atterrissage non final, remise de gaz, nouveau cycle | aucune clôture prématurée ; segments correctement distingués | +| 7 | Pause, active pause, accélération temporelle | événements/variables de pause et temps simulé séparé | aucun faux temps de vol réel ni consommation calculée silencieusement | +| 8 | Slew ou téléportation | anomalie/flow event détecté, segment marqué | économie non autorisée à partir du segment ambigu ; reprise explicitée | +| 9 | Retour menu puis changement d'appareil | fin de session, nouvel appareil et définitions réinitialisées | aucune donnée de l'ancien appareil ne contamine la nouvelle session | +| 10 | Crash ou fermeture forcée de MSFS | quit/perte de transport, vol local préservé | Thrustline reste stable ; reprise/revue possible sans clôture automatique | +| 11 | Couper Internet en gardant MSFS local | SimConnect reste connecté, cloud passe offline/pending | télémétrie locale continue ; outbox bornée et aucune perte silencieuse | +| 12 | Vol long représentatif, cible initiale 4 h | rythme stable, compteurs mémoire/CPU | absence de croissance mémoire non bornée et rapport final valide ; budget fixé par T0005 | +| 13 | Avion natif puis au moins un add-on représentatif | variables requises présentes ou capacités déclarées | avion natif passe ; add-on sans variable produit une limitation explicite, jamais une valeur inventée | +| 14 | Variable absente, invalide ou corrompue injectée/rejouée | validation rejette/isole la donnée | aucun crash, NaN ou transition autoritaire ; diagnostic redigé et état dégradé | + +Pour chaque scénario : noter état initial, action exacte, version Windows, +version/canal MSFS, appareil, événements observés, comportement dégradé, résultat, +anomalies et chemin de la trace. Les scénarios 1–14 sont requis pour la première +promotion d'un canal vers `Supported`; un smoke subset 1–5, 9–11 et 14 est requis +après mise à jour. + +## Evidence system + +Les fiches futures résident dans `docs/validation/platforms/` et contiennent : + +- version Thrustline et commit ; +- édition/version/build Windows et architecture ; +- version/build/canal MSFS ; +- version SimConnect/SDK utilisée par le bridge ; +- appareil natif ou add-on et version ; +- scénario, résultat, date et testeur ; +- anomalies liées et trace de replay ; +- signature ou checksum de l'artefact testé. + +Une fiche n'est jamais précréée vide. `Supported` exige au moins une fiche valide +par combinaison et par release candidate. `Compatible` exige une fiche réelle +encore pertinente. Une déclaration orale ou une documentation fournisseur ne +remplace pas un test. + +## Update and incident policy + +1. Relever automatiquement quand possible les versions Thrustline, Windows, + WebView2, bridge, MSFS et canal, sans lire de données personnelles. +2. Après une feature update Windows, Sim Update MSFS ou changement SimConnect, + passer la ligne déjà `Supported` à `Compatibility pending`. +3. Ne prendre aucun engagement de délai ; publier l'état et les limitations dès + qu'elles sont connues. +4. Exécuter d'abord le smoke subset, puis le golden path et les scénarios touchés. +5. Seul le mainteneur de release désigné, sur revue de la fiche de preuve, peut + rétablir `Supported`. +6. Si le test échoue, conserver l'accès avec avertissement et désactiver seulement + la fonction dangereuse. Ne jamais bloquer arbitrairement toute l'application. +7. Un kill switch signé et auditable est réservé à un risque avéré de corruption, + de double clôture, de sécurité ou de perte de données. Il doit préserver + lecture, export/récupération et diagnostic autant que possible. +8. Les builds Insider/Beta restent `Unsupported`, même si un test ponctuel passe. + +Une mise à jour mensuelle Windows n'entraîne pas automatiquement +`Compatibility pending` sans signal de régression ; elle déclenche la CI et un +smoke test proportionné sur la prochaine release candidate. + +## Consequences + +### Positive + +- Matrice réduite et testable autour du matériel et du simulateur réellement + possédés. +- Aucun support déclaré sans preuve. +- Store et Steam sont traités comme deux risques de distribution distincts. +- Les mises à jour n'entraînent ni blocage arbitraire ni promesse de délai + impossible à tenir. + +### Negative + +- Aucune combinaison n'est initialement `Supported`; des tests réels restent + nécessaires. +- MSFS 2020, Windows 10 et ARM64 sont exclus même si une compatibilité technique + partielle pourrait exister. +- Une seule machine ne prouve ni le minimum matériel ni la diversité Windows. +- Le refus de `Experimental` impose `Unsupported — validation requise` aux cibles + encore non testées. + +### Risks and mitigations + +- **Un seul poste** : recruter un testeur ou une VM/hôte distinct par combinaison + avant promotion ; conserver la preuve exacte. +- **Deux canaux non simultanément disponibles** : ne jamais transposer une preuve + Store vers Steam ou inversement. +- **Mise à jour MSFS cassante** : `Compatibility pending`, smoke tests, limitation + ciblée et communication sans délai promis. +- **Add-on atypique** : capacités explicites, variables validées et aucune donnée + inventée. +- **Compte différent** : test standard dans la session courante ; aucun + contournement des permissions ou de la licence. +- **GPU déclaré incertain** : corriger le modèle avant toute fiche matérielle. + +## Validation and acceptance + +Andy a accepté le 24 juillet 2026 : + +1. le lancement avec avertissement hors matrice, sauf risque réel de corruption + ou de sécurité ; +2. le modèle matériel déclaré `RX 6070 XT` ; +3. le statut initial `Unsupported — validation requise` des deux canaux, avec + promotion vers `Supported` uniquement après preuve réelle. + +La vérification manuelle de T0004 consiste à retrouver une combinaison, son +niveau, le scénario et la preuve nécessaires, puis à simuler une mise à jour +MSFS encore non validée. + +## Follow-ups + +1. Capturer les premières fiches Store et Steam sur la machine réelle. +2. Créer le moteur de replay et les tests .NET lors du premier vertical slice + SimConnect. +3. Mesurer les profils minimum/recommandé dans T0005. +4. Choisir et tester l'installateur signé en phase 6. +5. Revoir cette ADR quand une nouvelle plateforme ou un nouveau simulateur est + envisagé. diff --git a/docs/tickets/README.md b/docs/tickets/README.md index ec3fae8..68bb50c 100644 --- a/docs/tickets/README.md +++ b/docs/tickets/README.md @@ -17,13 +17,12 @@ Créer un fichier par ticket à partir de `docs/templates/TICKET.md`. | T0001 | Baseline reproductible et inventaire | 0 | — | Done | | T0002 | Choisir le modèle produit solo ou collaboratif | 0 | T0001 | Done | | T0003 | Choisir la stratégie de refonte | 0 | T0001–T0002 | Done | -| T0004 | Matrice de support Windows/MSFS | 0 | T0001 | Draft | +| T0004 | Définir la matrice de support Windows et MSFS | 0 | T0001–T0003 | Done | | T0005 | Budgets stabilité et performance | 0 | T0001 | Draft | | T0006 | Consolider CI et versions d'outils | 1 | T0003 | Backlog | | T0007 | Supabase local et tests RLS | 1 | T0003 | Backlog | | T0008 | Source de version unique | 1 | T0003 | Backlog | -T0003 a retenu par `ADR-0002` une réécriture totale isolée dans un nouveau dépôt. -Le prochain ticket à rendre Ready doit caractériser le golden path et constituer -les traces SimConnect avant toute création du nouveau socle. T0004 reste le -prochain ticket déjà répertorié dans ce backlog. +T0005 est le prochain ticket exécutable. Les premières preuves réelles Store et +Steam seront capturées avec le vertical slice SimConnect, avant toute promotion +vers `Supported`. diff --git a/docs/tickets/T0004-matrice-support-windows-msfs.md b/docs/tickets/T0004-matrice-support-windows-msfs.md new file mode 100644 index 0000000..e3c1a6f --- /dev/null +++ b/docs/tickets/T0004-matrice-support-windows-msfs.md @@ -0,0 +1,469 @@ +# T0004 — Définir la matrice de support Windows et MSFS + +Status: Done +Owner: Andy +Branch: `docs/t0004-matrice-support` +Phase: 0 +Risk: High +Security-sensitive: No + +## Goal + +Définir les plateformes officiellement supportées par la nouvelle version de +Thrustline et la manière de prouver leur compatibilité. + +Le résultat doit fixer : + +- les versions et architectures Windows ; +- les versions de Microsoft Flight Simulator ; +- les canaux d'installation MSFS concernés ; +- les prérequis système et runtimes ; +- les configurations minimales, recommandées et de test ; +- les niveaux de support ; +- le protocole de validation SimConnect ; +- la politique lorsqu'une mise à jour Windows ou MSFS casse la compatibilité. + +La décision sera enregistrée dans +`docs/decisions/ADR-0003-matrice-support-windows-msfs.md` et résumée dans +`docs/SUPPORT.md`. + +## Context + +ADR-0002 retient une réécriture totale isolée dans un nouveau dépôt, avec un +nouveau backend et aucune migration des données de développement actuelles. + +Avant de sélectionner les versions de Tauri, .NET, Rust, Node et des bibliothèques +SimConnect, il faut savoir quelles plateformes la refonte doit réellement +supporter. Annoncer « Windows et MSFS » ne suffit pas : + +- les versions Windows n'ont pas la même durée de support ; +- MSFS 2020 et MSFS 2024 peuvent exposer des comportements SimConnect différents ; +- les éditions Microsoft Store/Xbox App et Steam peuvent installer les composants + et données dans des emplacements différents ; +- x64 et ARM64 n'ont pas les mêmes contraintes ; +- WebView2, SimConnect et l'installateur ont leurs propres prérequis ; +- les mises à jour du simulateur peuvent provoquer des régressions indépendantes + de Thrustline. + +La baseline T0001 ne contient ni replay SimConnect automatisé ni validation réelle +avec MSFS. T0004 définit donc aussi le minimum de preuve nécessaire pour déclarer +une combinaison « supportée ». + +## Research requirement + +L'exécution de ce ticket nécessite une recherche web actualisée à la date du +ticket. Utiliser en priorité les sources officielles : + +- Microsoft Lifecycle et documentation Windows ; +- documentation officielle MSFS/SimConnect ; +- documentation Microsoft Store/Xbox App et Steam lorsque pertinente ; +- documentation officielle Tauri, WebView2 et .NET ; +- notes de version et exigences système officielles. + +Pour chaque fait susceptible de changer, conserver : + +- URL directe ; +- titre de la source ; +- date de consultation ; +- version/date publiée si disponible ; +- distinction entre fait officiel et inférence. + +Ne pas utiliser un article communautaire comme seule preuve d'une compatibilité. + +## Inputs required from Andy + +1. Possèdes-tu MSFS 2020, MSFS 2024 ou les deux ? +2. Les utilises-tu via Microsoft Store/Xbox App, Steam ou plusieurs canaux ? +3. Souhaites-tu officiellement supporter Windows 10 malgré sa situation de + support en 2026, ou cibler Windows 11 uniquement ? +4. Veux-tu supporter Windows ARM64 ou seulement x64 ? +5. Quelles machines réelles sont disponibles pour les tests ? +6. Acceptes-tu qu'une combinaison soit `Experimental` tant qu'aucun testeur ne + peut la valider ? +7. Thrustline doit-il fonctionner lorsque MSFS est installé via un autre compte + Windows ou uniquement dans la session utilisateur courante ? +8. Le support des versions bêta/Insider de Windows ou MSFS est-il exclu ? +9. Quelle durée maximale après une mise à jour MSFS est acceptable avant + confirmation de compatibilité ? +10. Souhaites-tu bloquer le lancement sur une plateforme non supportée ou afficher + seulement un avertissement ? + +Une combinaison ne peut pas être déclarée officiellement supportée sans moyen +réaliste de la tester. + +### Answers received on 2026-07-24 + +1. MSFS 2024 uniquement. +2. Microsoft Store/Xbox App et Steam. +3. Windows 11 uniquement. +4. x64 uniquement. +5. Une machine : Ryzen 7 5800X, 32 Go de RAM et GPU déclaré `RX 6070 XT` + (modèle exact, build Windows, écran/DPI et installations à confirmer). +6. Aucun classement `Experimental` accepté en attente d'un testeur. +7. Oui au fonctionnement lorsque le compte d'installation/achat diffère, sous + réserve que MSFS et SimConnect soient accessibles normalement dans la session + courante sans contournement des permissions. +8. Windows Insider, MSFS Beta et Sim Update Preview exclus. +9. Aucun engagement de délai après une mise à jour MSFS. +10. Lancement autorisé avec avertissement ; blocage réservé à un risque réel de + corruption ou de sécurité. Confirmé par Andy le 24 juillet 2026. + +## Dependencies + +- T0001 terminé. +- T0002 terminé. +- T0003 terminé. +- `docs/decisions/ADR-0001-modele-produit.md` +- `docs/decisions/ADR-0002-strategie-de-refonte.md` +- `docs/CURRENT_STATE.md` +- `docs/PRODUCT.md` +- `docs/ARCHITECTURE.md` +- `docs/QUALITY.md` + +## Allowed areas + +- `docs/SUPPORT.md` +- `docs/PRODUCT.md` +- `docs/ARCHITECTURE.md` +- `docs/QUALITY.md` +- `docs/CURRENT_STATE.md` +- `docs/ROADMAP.md` +- `docs/KNOWN_ISSUES.md` +- `docs/decisions/` +- `docs/tickets/README.md` +- ce ticket + +## Do not touch + +- `app/` +- `sim-bridge/` +- `supabase/` +- `legacy/` +- `.github/` +- scripts, manifests, lockfiles et dépendances +- installation Windows ou MSFS de la machine +- registre Windows et fichiers du simulateur +- modification utilisateur existante dans `app/src-tauri/Cargo.toml` + +## Requirements + +### 1. Définir les niveaux de support + +Utiliser quatre niveaux explicites : + +- **Supported** : combinaison couverte par CI lorsque possible, test manuel réel, + documentation et support des incidents ; +- **Compatible** : test concluant, mais pas de garantie à chaque release ; +- **Experimental** : devrait fonctionner, couverture insuffisante et aucune + garantie ; +- **Unsupported** : volontairement exclue ou incompatible. + +Une plateforme non testée ne peut pas être classée `Supported`. + +### 2. Construire la matrice Windows + +Pour chaque combinaison pertinente : + +| Windows | Édition/build | Architecture | Niveau | Preuve | Fréquence de test | +| --- | --- | --- | --- | --- | --- | + +Analyser au minimum : + +- Windows 11 x64 sur les versions encore supportées par Microsoft ; +- Windows 10 x64 si Andy souhaite le conserver ; +- Windows ARM64 si envisagé ; +- versions Insider/Preview ; +- installation standard sans privilèges administrateur permanents. + +Documenter : + +- politique de fin de support ; +- WebView2 Evergreen ou runtime embarqué ; +- prérequis Visual C++/Windows App SDK si nécessaires ; +- emplacement des données utilisateur ; +- règles installateur, update et désinstallation. + +### 3. Construire la matrice MSFS + +Pour chaque combinaison pertinente : + +| Simulateur | Canal | Version/build | Niveau | SimConnect testé | Dernier test | +| --- | --- | --- | --- | --- | --- | + +Analyser au minimum : + +- Microsoft Flight Simulator 2020 ; +- Microsoft Flight Simulator 2024 ; +- Microsoft Store/Xbox App ; +- Steam ; +- versions publiques stables ; +- versions bêta/Sim Update Preview si elles existent. + +Ne pas promettre Xbox console : Thrustline est une application desktop Windows et +nécessite un accès local à SimConnect. + +### 4. Définir la matrice matérielle + +Créer trois profils : + +- **Minimum supporté** : machine la plus faible sur laquelle la stabilité est + vérifiée ; +- **Recommandé** : expérience normale ; +- **CI/test sans MSFS** : machine permettant builds et replays. + +Pour chaque profil, préciser : + +- CPU et architecture ; +- RAM ; +- espace disque ; +- version Windows ; +- disponibilité WebView2 ; +- réseau ; +- écran/DPI ; +- présence ou absence de MSFS. + +Les exigences matérielles de MSFS ne doivent pas être présentées comme celles de +Thrustline. Séparer clairement les deux. + +### 5. Définir le protocole SimConnect + +Le protocole doit couvrir : + +1. MSFS fermé au lancement ; +2. MSFS lancé avant et après Thrustline ; +3. connexion, déconnexion et reconnexion ; +4. menu principal, chargement et vol actif ; +5. cold-and-dark, taxi, décollage, croisière et atterrissage ; +6. go-around et touch-and-go ; +7. pause, active pause et accélération temporelle ; +8. slew/téléportation ; +9. retour au menu et changement d'appareil ; +10. crash MSFS ou fermeture forcée ; +11. perte réseau sans perte de connexion locale ; +12. vol long et consommation mémoire ; +13. avions natifs et au moins un add-on représentatif ; +14. absence ou corruption d'une variable SimConnect attendue. + +Pour chaque scénario, définir : + +- état initial ; +- action ; +- événements attendus ; +- comportement dégradé ; +- logs autorisés ; +- critère de réussite ; +- trace de replay à conserver. + +### 6. Définir le système de preuves + +Chaque ligne `Supported` doit référencer une fiche de validation indiquant : + +- version exacte de Thrustline ; +- commit ; +- Windows/build ; +- MSFS/build et canal ; +- appareil utilisé ; +- scénario exécuté ; +- résultat ; +- date ; +- testeur ; +- anomalies liées. + +Prévoir un emplacement futur tel que `docs/validation/platforms/`, sans créer des +dizaines de fiches vides dans ce ticket. + +### 7. Définir la politique après mise à jour + +Pour Windows, MSFS et SimConnect : + +- détecter ou relever la version active ; +- passer temporairement une combinaison en `Compatibility pending` si nécessaire ; +- exécuter smoke tests et golden path ; +- communiquer les limitations connues ; +- définir qui peut rétablir le statut `Supported` ; +- ne jamais bloquer arbitrairement une version sans mécanisme de récupération ; +- prévoir un kill switch seulement pour un risque réel de corruption/sécurité. + +### 8. Propager la décision + +Après validation : + +- créer `docs/decisions/ADR-0003-matrice-support-windows-msfs.md` ; +- créer `docs/SUPPORT.md` avec la matrice lisible par les utilisateurs ; +- mettre `PRODUCT.md`, `ARCHITECTURE.md` et `QUALITY.md` en cohérence ; +- adapter les gates de `ROADMAP.md` ; +- consigner les combinaisons non testables dans `KNOWN_ISSUES.md` ; +- actualiser `CURRENT_STATE.md` et le prochain ticket. + +## Non-goals + +- Installer ou désinstaller Windows/MSFS. +- Tester réellement toutes les combinaisons dans ce ticket documentaire. +- Choisir toutes les versions de la stack technique. +- Mettre à niveau Tauri, .NET, Rust, Node ou SimConnect.NET. +- Implémenter la détection de version. +- Créer le moteur de replay SimConnect. +- Construire l'installateur. +- Promettre le support d'une plateforme sans preuve. + +## Acceptance criteria + +- [x] Les dix questions d'Andy sont résolues ou le ticket est `Blocked`. +- [x] Les sources officielles sont datées et liées. +- [x] Windows, architecture CPU et cycle de support sont explicitement décidés. +- [x] MSFS 2020/2024 et Store/Steam ont chacun un niveau de support. +- [x] Les versions Preview/Insider ont une politique explicite. +- [x] Les profils matériel minimum, recommandé et CI sont définis. +- [x] Les quatorze scénarios SimConnect possèdent des critères de réussite. +- [x] Chaque niveau `Supported` a une preuve réalisable. +- [x] La politique après mise à jour Windows/MSFS est définie. +- [x] `ADR-0003` est acceptée. +- [x] `docs/SUPPORT.md` est compréhensible sans lire l'ADR. +- [x] Aucun fichier applicatif, workflow, manifeste ou dépendance n'est modifié. +- [x] Le prochain ticket recommandé est identifié. + +## Security review + +Ce ticket ne modifie aucun contrôle de sécurité, mais la matrice doit préserver : + +- aucune exécution permanente en administrateur ; +- aucune désactivation de TLS, antivirus ou protection Windows ; +- bridge limité à la session locale ; +- données utilisateur hors du dossier d'installation ; +- installateur et updates signés ; +- diagnostics sans secret ni donnée personnelle ; +- aucune modification des fichiers MSFS sans consentement explicite. + +Une plateforme nécessitant d'affaiblir ces contrôles doit être classée +`Unsupported`. + +## Automated validation + +Ticket documentaire : aucun build applicatif requis. + +```powershell +# Vérifier les livrables +Test-Path docs/SUPPORT.md +Test-Path docs/decisions/ADR-0003-matrice-support-windows-msfs.md + +# Vérifier que les catégories principales sont présentes +rg -n "Supported|Compatible|Experimental|Unsupported|Windows 11|MSFS 2020|MSFS 2024|SimConnect" ` + docs/SUPPORT.md docs/decisions/ADR-0003-matrice-support-windows-msfs.md + +# Examiner la portée réelle du ticket +git diff --name-only +``` + +La validité des sources et des choix reste une revue humaine obligatoire. + +## Manual verification + +1. Choisir une combinaison Windows/MSFS réelle. +2. Trouver immédiatement son niveau de support dans `docs/SUPPORT.md`. +3. Identifier le scénario de test et la preuve nécessaires. +4. Simuler une mise à jour MSFS non encore testée. +5. Vérifier que la politique indique clairement ce qui reste utilisable. +6. Vérifier qu'aucune combinaison non testable n'est annoncée comme supportée. + +Temps cible : 10–15 minutes. + +## Rollback + +Une nouvelle ADR peut remplacer ADR-0003 lorsque Microsoft modifie ses cycles de +support ou que de nouvelles preuves deviennent disponibles. Conserver l'historique +des matrices pour savoir quelles versions de Thrustline supportaient quelles +plateformes. + +## Completion Report + +ADR-0003 acceptée explicitement par Andy le 24 juillet 2026. + +### Summary + +Proposition de matrice Windows 11 x64/MSFS 2024 rédigée, avec Store et Steam +comme cibles distinctes. Aucun niveau `Supported` n'est attribué sans test réel. + +### Supported platform decision + +Accepté : Windows 11 x64 public et maintenu ; MSFS 2024 stable Store et Steam. +Windows 10, ARM64, MSFS 2020, Insider/Preview, consoles et cloud sont exclus. +Les cibles non encore testées restent `Unsupported — validation requise` puisque +le niveau `Experimental` est refusé. + +### Official sources consulted + +Microsoft Lifecycle/Windows release health, documentation officielle +MSFS 2024/SimConnect et release notes, Microsoft WebView2/.NET/Visual C++, Tauri +v2 et fiche officielle Steam. URLs, dates et distinction fait/inférence sont +conservées dans ADR-0003. + +### Validation coverage and gaps + +Aucun test MSFS réel n'a été exécuté. La version/build Windows, les deux +installations Store/Steam, le modèle exact du GPU et l'écran/DPI ne sont pas +confirmés. Les profils minimum et CI restent à mesurer. + +### Files changed + +- `docs/decisions/ADR-0003-matrice-support-windows-msfs.md` +- `docs/SUPPORT.md` +- `docs/PRODUCT.md` +- `docs/ARCHITECTURE.md` +- `docs/QUALITY.md` +- `docs/ROADMAP.md` +- `docs/CURRENT_STATE.md` +- `docs/tickets/T0004-matrice-support-windows-msfs.md` +- `docs/tickets/README.md` +- `docs/KNOWN_ISSUES.md` + +### Commands and results + +- Lecture des sources de vérité et des deux ADR précédentes : réussie. +- Recherche web officielle datée du 24 juillet 2026 : réussie. +- `Test-Path` des deux livrables : réussi. +- `rg` des niveaux, plateformes et SimConnect : réussi. +- Comptage des scénarios : 14 lignes. +- `git diff --check` : réussi. +- Contrôle de portée `app/`, `sim-bridge/`, `supabase/`, `legacy/`, `.github/` + et `scripts/` : aucune modification. +- Aucun build applicatif requis ou exécuté. + +### Manual verification result + +Réussie sur documentation : une combinaison se retrouve immédiatement dans +`SUPPORT.md`, son niveau et sa preuve sont explicites, et une mise à jour MSFS +place une ligne supportée en `Compatibility pending`. Aucun test MSFS réel n'a +été exécuté, conformément au non-goal. + +### Risks and limitations + +Une seule machine, aucune preuve distincte Store/Steam et minimum matériel non +mesuré. Les deux canaux restent donc `Unsupported — validation requise`. + +### Follow-ups + +Tester chaque canal, créer les fiches de preuve et implémenter le replay lors du +vertical slice SimConnect. Mesurer les budgets et le minimum dans T0005. + +### Documentation updated + +ADR-0003, SUPPORT, PRODUCT, ARCHITECTURE, QUALITY, ROADMAP, CURRENT_STATE, +KNOWN_ISSUES et l'index des tickets sont cohérents. + +### Git handoff + +Branche constatée : `docs/t0003-strategie-refonte`, upstream +`origin/docs/t0003-strategie-refonte`, cible distante par défaut `origin/main`. + +Le handoff de publication est bloqué : `docs/CURRENT_STATE.md` et +`docs/tickets/README.md` contenaient déjà des changements T0003 avant T0004. +`AGENTS.md`, `CONTRIBUTING.md`, `docs/WORKFLOW.md` et +`docs/templates/TICKET.md` sont également modifiés hors ticket. Un `git add --` +des fichiers partagés inclurait silencieusement du travail préexistant, ce qui +est interdit. Finaliser/committer T0003 ou isoler ses changements avant de +construire le bloc de publication T0004. + +À remplir avec la branche constatée, les fichiers exacts du ticket, les +modifications hors ticket à préserver, le message de commit et les commandes +PowerShell de vérification, commit, push et création de PR. Ne jamais utiliser +`git add .`.