État de la validation à l'exécution
Traduction de la page originale en anglais d’OmsiLaunch 0.1.0-beta3. La page anglaise fait foi : en cas de divergence, la page anglaise et le code prévalent.
Cette page est l'unique tableau de preuves d'OmsiLaunch 0.1.0-beta3. Chaque ligne nomme une capacité ou une fonctionnalité et l'état de ses preuves. RUNTIME_VALIDATED peut citer soit research/reports/OMSILAUNCH-RUNTIME-VALIDATION-MATRIX.md (identifiants de matrice RV-nnn, blocages BI-nnn, identifiants de session issus de son tableau d'exécution du 2026-09-20), soit le rapport post-Fable Round A research/reports/OMSILAUNCH-RUNTIME-VALIDATION-ROUND-A-001.md (RA-nnn) ; tout le reste est déduit du code et des suites de tests hors ligne. La campagne de durcissement du 2026-09-21 (research/reports/OMSILAUNCH-SECURITY-ROBUSTNESS-REVIEW-001.md, constats S-01 à S-34) a modifié le comportement de la restauration, de la récupération, du plan de contrôle et des frontières ; ces modifications ne disposaient que de preuves hors ligne. La campagne finale de clôture runtime du 2026-09-23 (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md, identifiants de scénario tels que F01, S05, T01, candidats 2 et 3) les a exécutées dans des sessions réelles sur l'installation autorisée ; les lignes promues par cette campagne citent ses identifiants de scénario et de session. RUNTIME_VALIDATED peut donc également citer ce rapport.
États des preuves :
| État | Signification |
|---|---|
| RUNTIME_VALIDATED | Observé dans une session canonique enregistrée dans la matrice (identifiant et session cités). |
| STATICALLY_VALIDATED | Implémenté et couvert par des tests hors ligne (tools/OmsiLaunch.TestHost, tests/*), non observé dans une session réelle depuis la dernière modification. |
| PARTIAL | Implémenté, mais les preuves sont incomplètes ou contredites, ou le comportement est connu pour être limité. |
| RUNTIME_VALIDATION_REQUIRED | Comportement modifié ou jamais observé ; doit être validé dans une session réelle avant de pouvoir être promu. |
| UNAVAILABLE | Non implémenté ou délibérément rejeté. |
Cycle de vie de la session et transaction#
| Fonctionnalité | État | Preuves |
|---|---|---|
Démarrage headless NEW_MAP (world.new-map, world.presented-entrypoint, boot.headless-start) | RUNTIME_VALIDATED | Matrice, section « Existing Runtime Evidence » ; sessions e5454061, 1e8e0548, 5f641c8d, 50a1f1ec (Grundorf) |
Démarrage SAVED_SITUATION (world.saved-situation) | RUNTIME_VALIDATED | Note de GetCapabilitiesAsync et matrice (Berlin-Spandau, formulaire Start et Button1Click) |
Arrêt forcé session.stop et restauration exacte | RUNTIME_VALIDATED | Session 50a1f1ec : l'arrêt normal n'a laissé ni processus OMSI ni journal |
Idempotence du démarrage (PluginStart répété) | RUNTIME_VALIDATED | Session 50a1f1ec |
Overlay sémantique de options.cfg et restauration à l'octet près (RV-005) | RUNTIME_VALIDATED | Session 1e8e0548 : AIMaxCountRandom 150/200 avec fin de fichier préservée ; hash restauré A12982C3... |
| Écran de démarrage géré et transaction d'overlay (RV-006) | RUNTIME_VALIDATED | Matrice RV-006 PASS (lot de présentation : géré par défaut, géré personnalisé, Unset) ; sessions Release Presentation 001 388cf5d2-7310-4301-9313-e62c4c08a346, 794cae34-a2ac-4fcf-8981-f142ac14c308, 12a74b24-6c78-4863-8ffe-947651212eeb |
| Récupération après sortie prématurée (RV-008, arrêt forcé d'OMSI) | RUNTIME_VALIDATED | Sessions post-Fable Round A 9e7cad79-9c35-4f93-bfc8-71f455513f82 (après la phase de jeu) et dcac497e-ff35-4c97-b5e4-98b660f88032 (après world.starting, avant la phase de jeu) : le propriétaire s'est terminé, le journal et le bail ont été effacés, options.cfg et l'état de l'écran de démarrage initialement absent correspondaient aux instantanés. L'injection d'un échec de démarrage natif et d'un échec de restauration reste distincte. |
| Frontières de l'échec de démarrage et de l'échec délibéré de restauration (reste de RV-008) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) : le timeout de démarrage SF01 session 0b21c664-b0b2-46b2-9b6b-def536765fff et l'échec du monde signalé par le plugin SF02 session 53358c75-469b-41d5-9ddb-cdb1d1ff828d se sont terminés en Failed avec des codes typés et une restauration exacte ; l'échec de restauration F01 session d4194a69-d858-42fe-97c7-ce93ccbdc3f6 (un fichier appartenant à la session verrouillé par un processus de test pendant l'arrêt) a produit OL_E_RESTORE_FAILED, a conservé le journal et la sauvegarde, et /recover a restauré exactement l'état antérieur à la session. Les producteurs d'échec relèvent uniquement de l'infrastructure de test. |
Restauration des artefacts de session pour les cibles .itx et Texture\standard.ipr (S-01) | RUNTIME_VALIDATED | Le Round A a restauré des chemins existants dans 47efd323-4ce1-400a-ac83-74893cf82f26 ; a créé puis supprimé une cible enregistrée initialement absente lors d'un arrêt normal dans 8d9bdedf-d7de-4c64-a8b1-627ae4deff7b ; et a répété ce nettoyage via une interruption du propriétaire suivie de /recover dans aa9a45d4-302e-4cf5-8490-f5a1c9e44b79. |
closecheck comme suppression de session et suppression des marqueurs obsolètes (S-13) | RUNTIME_VALIDATED | Les sessions du Round A, dont 47efd323-4ce1-400a-ac83-74893cf82f26, ont enregistré closecheck.stale-removed suivi de restore.session-artifact-removed ; aucun journal n'est resté. |
| Récupération anticipée avant la construction de l'overlay, récupération différée antérieure aux empreintes (S-05) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) S05 : le propriétaire de la session f755ed51-b85c-4df2-b062-5bf65c768b32 a été tué avec un journal en attente (maxFPS=77 actif) ; le démarrage suivant, session 291ea22b-f9b3-42a4-be07-7f0c055c7113, a journalisé PENDING_JOURNAL_RECOVERED avant TRANSACTION_STARTED, s'est exécuté avec son propre overlay (88) et s'est terminé identique à l'octet près à l'état antérieur à la première session. La branche différée antérieure aux empreintes reste hors ligne (transaction.legacy-journal-ownership-migration). |
| Restauration des métadonnées (horodatages, attributs, lecture seule), vidage en écriture directe (write-through), nettoyage des sauvegardes (S-12) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) : S12a session 40de172b-e144-4f0a-9207-09c80b5d7df7 (horodatage connu de options.cfg) et S12b session d9e2534b-3cb3-47ef-9cbd-1b92c62a35e7 (horodatage et ReadOnly) : l'overlay était actif pendant la session (ReadOnly retiré pour OMSI), et les octets, la date de dernière écriture, la date de création et les attributs ont été restaurés exactement ; aucun répertoire de sauvegarde n'est resté. |
/recover sous le bail d'installation ; refus pendant la fenêtre antérieure au PID (S-04) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) : S04 session 1fb2aad5-2985-4fa4-9c5a-6186f51d37b8 : avec un propriétaire actif, /recovery-status et /recover ont renvoyé OL_E_INSTALLATION_BUSY et un second démarrage a été refusé ; propriétaire tué et OMSI laissé en cours d'exécution, /recover et un nouveau démarrage ont été refusés jusqu'à la fermeture d'OMSI, puis /recover a restauré exactement. S04b session 5e57ca51-ab5e-4e94-a0d0-531735ee4057 : un journal antérieur au PID (injection de fautes par le harnais) a été refusé tant qu'un Omsi.exe quelconque s'exécutait depuis la racine, puis récupéré après sa fermeture ; un closecheck écrit par cet OMSI est conservé avec OL_W_RESTORE_FOREIGN_FILE_RETAINED (documenté, conservateur). |
Nouvelle planification dans StartSessionAsync, OL_E_PLAN_NOT_RUNNABLE sur un plan périmé (S-15) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R02 : un plugin listé dans le manifeste ayant été mis de côté après la planification, StartSessionAsync a levé OL_E_PLAN_NOT_RUNNABLE: OL_E_PERMANENT_PLUGIN_MISSING avant qu'aucune session n'existe (plan 4797c9ce-6eb3-47b1-b09d-03562dd3bd44, candidat 2, après le correctif BUG-01) |
Cycle de vie du propriétaire : arrêt par pipe, Ctrl+C, arrêt depuis la zone de notification, sortie d'OMSI, propriétaire tué, /observe-seconds | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) : arrêt par pipe pendant /observe-seconds L06 session 300a563e-7b0e-4f01-afbd-9e15df32c7e6 ; Ctrl+C L03 session 5e2aca54-bae2-4fc6-a106-93699e755bfc (propriétaire terminé 577 ms après le signal) ; OMSI tué L05a session d69658f9-16f6-43e9-8e36-682114b97e14 ; fenêtre principale d'OMSI fermée L05b session 76b11ba4-8ddb-4611-9a1c-8be317cd0337 (OMSI ignore WM_CLOSE ; terminé par kill) ; arrêt depuis la zone de notification T01/T03 sessions 6d827c13-caf8-4221-832a-c91d26f130e0, 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8 ; propriétaire tué S05. Chaque chemin s'est terminé par une restauration exacte. Lorsque le propriétaire est tué brutalement, Omsi.exe continue de s'exécuter (par conception) ; la récupération est refusée jusqu'à sa fermeture (S04). |
| Budget ProcessExit de 4 s à la fermeture de la console ou à la déconnexion | RUNTIME_VALIDATED (fermeture de la console) | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) L04 session 559d0f1d-7d5b-4b6b-b70c-0acb272d53db : fenêtre de console fermée ; la restauration s'est achevée dans le budget, la session a atteint Completed sans journal ; Windows a mis fin au propriétaire environ 5 s après la fermeture (sortie 0xC000013A). La déconnexion n'a pas été testée. |
| Arrêt coopératif par WM_CLOSE | UNAVAILABLE | Non implémenté (décision produit, S-11). Clôture runtime L05b : OMSI ne s'est pas fermé dans les 30 s suivant l'envoi de WM_CLOSE à sa fenêtre principale. ShutdownTimeoutSeconds n'est pas utilisé. |
Sémantique du bail d'installation (sémaphore Local\) | STATICALLY_VALIDATED | lease.cross-thread-release ; limites documentées comme risque accepté (S-18) |
| Préservation du CP1252 lors de la modification des fichiers OMSI (S-07) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) C01 session 84a71235-d618-4917-9af4-c2a6025742f4 : options.cfg contenant une valeur CP1252 accentuée (dont 0x80 et 0x96) modifié par /set ; le fichier actif a conservé les octets CP1252 sans EF BF BD, et le fichier était identique à l'octet près après la session |
| Découverte du contenu ignorant les points d'analyse (reparse points) (S-23) | STATICALLY_VALIDATED | Tests discovery.* |
| Rétention des diagnostics (50 sessions les plus récentes) (S-26) | STATICALLY_VALIDATED | HostTrace.Prune |
| Verrous de fichiers transitoires (antivirus, indexeur) sur les écritures et suppressions de la transaction réessayés pendant environ 1.5 s ; les verrous persistants échouent toujours (passe de correction CP-10) | STATICALLY_VALIDATED | transaction.transient-lock-retried, transaction.restore-failure-recovery (un verrou persistant échoue toujours) ; deux échecs intermittents hors ligne observés avant le correctif, aucun sur 16 exécutions après |
Plugin permanent et plateforme#
| Fonctionnalité | État | Preuves |
|---|---|---|
Profil Omsi23004_692EBFBF (692EBFBF...6243, 8,503,440 octets) | RUNTIME_VALIDATED | Toutes les sessions de la matrice |
Exécutable Steam LAA (7DAB063D...D759) | PARTIAL | Clôture runtime LAA01 session 9ec975ca-7820-47be-b806-5f5a94aad4ab : une copie contrôlée (dérivée de l'original non patché de l'installation avec IMAGE_FILE_LARGE_ADDRESS_AWARE et une somme de contrôle PE recalculée ; 8,503,440 octets, caractéristiques 0x81AE) correspondait au hash, l'empreinte a été acceptée et le plan était exécutable. L'image est l'exécutable Steam d'origine protégé par DRM : hors d'une véritable installation Steam, il passe la main au client Steam et se termine, si bien que la session a échoué avec OL_E_PROCESS_EXITED_EARLY et une restauration exacte. La phase de jeu, les lectures, les commandes et l'arrêt nécessitent une véritable installation Steam (ENVIRONMENT). |
Identité de l'installation : le bail et le nom du pipe de contrôle dérivent d'une seule définition, InstallationPaths.IdentityKey (C:\OMSI = C:\OMSI\ = C:\OMSI\. = C:\foo\..\OMSI = variantes de casse ; C:\OMSI-A diffère de C:\OMSI-B) (passe de correction CP-02, addendum A/B) | STATICALLY_VALIDATED ; observé à l'exécution | lease.root-normalization, paths.installation-identity-and-containment. Clôture runtime ID01 : pendant l'exécution de la session 01bfc780-10ef-4390-b700-c08bf809a42f, les seconds démarrages et /recovery-status avec la racine écrite avec \., un segment .., en minuscules et en majuscules ont été refusés (OL_E_SESSION_ALREADY_ACTIVE, OL_E_INSTALLATION_BUSY) ; de même pour l'écriture avec séparateur final (ID01b, session ba3ea7c9-9826-453d-b447-81c48763e18f). |
Cohérence du paquet de version : staging propre, reçu de build Native.x86 (contenu, pas horodatage), manifeste sans BOM, intégrité de la closure en staging et de l'archive ré-extraite, l'installateur copie le manifeste (passe de correction CP-01, Round A RA-007, addendum F/G/H) | STATICALLY_VALIDATED ; observé sur l'installation | Test-PackagingPipeline.ps1 (candidat cohérent et 16 cas négatifs), runtime.release-manifest-bom, runtime.release-manifest-strict-parser. Clôture runtime : les paquets installés dans l'installation autorisée étaient cohérents avec leurs manifestes, et chaque session a été planifiée avec plugin.integrity.reference = manifest (registre des candidats research/reports/runtime-closure/CANDIDATES.md). |
Intégrité de la closure du plugin par rapport à release-manifest.json (S-09) | RUNTIME_VALIDATED | Session Round A 47efd323-4ce1-400a-ac83-74893cf82f26 ; les sessions de clôture runtime sur des paquets de version installés (par exemple R01 session 878b5e3c-2f9d-46bf-a918-11bb2e227e55, candidat 3) ont été planifiées avec plugin.integrity.reference = manifest ; R02 a montré qu'un plugin listé manquant bloque le démarrage. |
Validation du build dans le processus (plugin.build.invalid -> OL_E_BUILD_VALIDATION_FAILED) | RUNTIME_VALIDATED | Sessions de la matrice ; deux sessions plugin.build.invalid antérieures sur un plugin périmé |
| Handoff v4 avec SHA-256 | RUNTIME_VALIDATED | Tests d'intégration handoff.* ; toutes les sessions |
| Plugin inerte sans OmsiLaunch (pas de handoff) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) P01 (démarrage simple d'OMSI, sans session OmsiLaunch ; pid OMSI 35564) : la closure du plugin et l'hôte .NET ont été chargés, OmsiLaunch.Native.x86.dll n'a pas été chargé, les trois sites de patch natif contenaient les octets non patchés de Omsi.exe, et aucun pipe de contrôle, journal ni diagnostic n'est apparu |
Politique de recherche des DLL (AssemblyDirectory | System32) (S-24) | STATICALLY_VALIDATED | Attributs d'assembly |
| Détection de Windows 10+ x64 et rejet des autres plateformes | STATICALLY_VALIDATED | CurrentWindowsX64Platform.Detect |
Canal de contrôle runtime et plan de contrôle#
| Fonctionnalité | État | Preuves |
|---|---|---|
| Intégrité du format de la boîte aux lettres, liaison à la session | RUNTIME_VALIDATED | Toutes les sessions runtime ; runtime-command.wire-guard, runtime-command.session-binding |
| Abandon des réponses tardives et absence de blocage du canal après un timeout (S-08) | RUNTIME_VALIDATED | Session Round A 173414a5-ee53-4b10-aeb7-046f40b851e9 : un client externe a abandonné road-vehicles.spawn après 250 ms ; un map.read ultérieur a réussi et l'arrêt canonique a nettoyé la session. Le rejet des réponses surdimensionnées reste couvert hors ligne uniquement. |
Plan de contrôle local : nom de pipe par installation, liaison session_id, erreurs typées des gestionnaires, limite de 64 KiB (S-06) | RUNTIME_VALIDATED | Session Round A a00c6ff8-9cc9-4bce-ae44-c4314daad7bf : un protocole invalide, un arrêt non lié, une requête runtime de mauvaise session et une trame surdimensionnée ont été rejetés ; une requête d'état valide et un arrêt lié ultérieurs ont réussi. Le rejet des réponses surdimensionnées reste couvert hors ligne uniquement. |
| Slot de séquence de télémétrie, omission des échantillons déchirés, événements consécutifs identiques (S-25) | STATICALLY_VALIDATED | telemetry.sequence-samples |
La frontière de l'API rejette internal.* et retire les clés de résultat internes (S-02) | STATICALLY_VALIDATED | OmsiLaunchService.ExecuteRuntimeAsync ; validation du registre |
| Une réponse de boîte aux lettres invalide ou surdimensionnée libère le slot ; la requête suivante réussit (passe de correction CP-03) | STATICALLY_VALIDATED | runtime-command.oversized-response-rejected ; côté plugin plugin-runtime.oversized-and-abandoned-responses. Non reproductible à l'exécution : aucune opération publique ne renvoie plus d'un slot (la plus grande fait environ 37.8 KB, clôture runtime R03). |
| Chaque chemin terminal d'une requête runtime laisse la boîte aux lettres réutilisable : rejet typé, timeout, annulation par l'appelant, identifiant de requête réutilisé, opération interne, mauvaise session, argument manquant (à l'exécution) ; réponses malformées, surdimensionnées, corrompues, périmées et orphelines (hors ligne) | RUNTIME_VALIDATED (chemins atteignables) | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R03 session 1134fdc3-a469-4ff5-a511-9964ed65e7cd : chaque échec a été typé et la requête valide suivante a réussi. Les chemins de corruption de réponse ne peuvent pas être produits de l'extérieur et restent hors ligne (runtime-command.terminal-paths-leave-channel-usable). |
Réponse surdimensionnée du plan de contrôle renvoyée sous forme de OL_E_CONTROL_RESPONSE_TOO_LARGE ; état et événements réduits en commençant par les plus anciens pour tenir dans une trame (passe de correction CP-04) | STATICALLY_VALIDATED | control-plane.binding-and-typed-errors. Non reproductible à l'exécution : la plus grande réponse publique observée lors de la campagne de clôture runtime faisait environ 37.8 KB (R03), et l'historique des événements d'une session reste très en deçà d'une trame. |
Plan de contrôle jamais muet une fois connecté : trames malformées, surdimensionnées, de longueur négative, vides, JSON null, sans commande, avec argument non chaîne, de protocole invalide, de commande inconnue, non liées et de mauvaise session ; trames client tronquées ; clients bloqués ; clients partant avant la réponse | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R04 session faaaf8a8-126d-4a23-a8f3-381e47c58de6 (candidat 2, après le correctif BUG-02) : chaque trame a reçu son erreur typée, suivie à chaque fois d'un session.status réussi ; un client bloqué n'a pas bloqué les autres ; un arrêt lié en concurrence avec un road-vehicles.spawn en cours a terminé la session et l'appelant du spawn a reçu une fin de flux propre. OL_E_TIMEOUT et les métadonnées de troncature restent hors ligne (control-plane.errors-never-silent). |
Harnais de lots runtime (/runtime-batch, /runtime-write-batch, /d3d-batch) | INTERNAL (STATICALLY_VALIDATED) | Harnais de validation uniquement (S-27) |
Opérations runtime#
| Opération(s) | État | Preuves |
|---|---|---|
time.read, time.set | RUNTIME_VALIDATED | Session e5454061 (écriture, SetTime, relecture, restauration) |
weather.read, weather.actual.read | RUNTIME_VALIDATED | Session e5454061 |
weather.set | UNAVAILABLE | Rejeté avec OL_E_RUNTIME_SETTING_NOT_PERSISTENT ; persistance FAIL dans les sessions e5454061 et 5f641c8d ; rejet PASS dans 50a1f1ec |
map.read | RUNTIME_VALIDATED | Revalidé après la correction du slot global Map dans la session 9dd62626-94c6-4cd7-bb6f-0288327696f4 : loaded=true, 19 tuiles, identité Grundorf, nom de fichier, description et plage d'années cohérents. |
camera.read, camera.set | RUNTIME_VALIDATED | Session e5454061 (écriture du FOV, relecture, restauration) |
camera.lock, camera.unlock | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) CAM01 session 5dfd9b96-fa94-4060-85af-0c9d19823a73 : la situation enregistrée Linie 5 a fourni un PlayerVehicle (rv-000001) ; les verrouillages sur les familles 0, 2 et 1 ont été confirmés par relecture de la caméra ; le déverrouillage a libéré la politique |
road-vehicles.read, road-vehicles.list, road-vehicle.read | RUNTIME_VALIDATED | Sessions e5454061, 5f641c8d |
| Durée de vie des handles RoadVehicle et détection des handles obsolètes (RV-002) | PARTIAL | Aucun producteur de suppression sûr : dans trois fenêtres de clôture runtime (H01, H01b, H01c, jusqu'à 180 s, avec un saut d'horloge), les populations RoadVehicle et Human de Grundorf n'ont fait que croître ; aucune opération publique ne supprime un objet. La détection des handles obsolètes reste hors ligne (S-19). La règle de génération/ABA est validée à l'exécution pour les textures D3D (H02). |
road-vehicles.spawn (RV-003) | RUNTIME_VALIDATED | Session 5f641c8d : 2 -> 3, rv-000003 résolu |
road-vehicles.place-random | RUNTIME_VALIDATED | Matrice : collection 2 -> 4 |
player-vehicle.read | RUNTIME_VALIDATED | Round A RA-002 session 9dd62626-94c6-4cd7-bb6f-0288327696f4 (present=false) ; la clôture runtime CAM01 session 5dfd9b96-fa94-4060-85af-0c9d19823a73 a lu un PlayerVehicle présent à partir d'une situation enregistrée |
humans.read, humans.list, human.read | RUNTIME_VALIDATED | Session e5454061 |
timetable.read, timetable.*.list, timetable.logs.read | RUNTIME_VALIDATED | Session e5454061 ; entrées de trajet : 91 enregistrements |
Troncature des listes bornées au lieu de OL_E_RUNTIME_RESPONSE_TOO_LARGE (audit de documentation BUG-05) | RUNTIME_VALIDATED | Nouveau test de l'audit de documentation sur le paquet 9F8CC87B..., situation enregistrée situations\Linie 5.osn (Berlin-Spandau) : timetable.track-entries.list a renvoyé 137 entrées sur 825 et timetable.tour-entries.list 224 sur 4747 avec truncated=true (sessions 08df97b8-06cc-4faa-be8b-f49ca1538dce et le nouveau test de capture de documentation) ; avant le correctif, les deux échouaient avec OL_E_RUNTIME_RESPONSE_TOO_LARGE (session f51dcb59-a723-4570-b6c5-b61e628a7993). Preuves : research/reports/documentation-audit/runtime/. |
drivers.read, tickets.read | RUNTIME_VALIDATED | Session e5454061 |
vehicle.variables.list, vehicle.variable.get, vehicle.variable.set | RUNTIME_VALIDATED | Refresh_Strings 0 -> 1 -> 0 dans la session runtime enregistrée comme Runtime-Proven dans research/reports/OmsiHook-Parity-Wave-A-Closure-001.md (1,025 noms énumérés, selon OMSILAUNCH-AUTONOMOUS-BUILD-001.md) ; le rapport n'enregistre pas l'identifiant de session |
vehicle.string-variables.list, vehicle.string-variable.get | RUNTIME_VALIDATED (lecture seule) | Session e5454061 ; écritures BI-004 UNAVAILABLE |
vehicle.constants.list, vehicle.constant.get, vehicle.curves.list, vehicle.curve.evaluate, vehicle.hofs.read | RUNTIME_VALIDATED | Session e5454061 |
d3d.status, d3d.texture.create, d3d.texture.describe, d3d.texture.update, d3d.texture.release, rejet des handles libérés | RUNTIME_VALIDATED | Matrice, « basic D3D texture lifecycle » ; notes de capacité runtime.d3d.* (session 4378899d pour le slot du périphérique) |
| Événements de perte / réinitialisation / restauration du périphérique D3D, invalidation de génération (RV-007) | RUNTIME_VALIDATED (resetting/restored) | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) D01 session fc07946e-58dd-4ddc-af7e-10c7e61a899a : un changement temporaire du mode d'affichage (producteur de test, jamais public, sans appel de réinitialisation synthétique) a amené OMSI à réinitialiser son périphérique deux fois. d3d.resetting/d3d.restored ont été émis, la génération a avancé à chaque cycle, une requête pendant la réinitialisation a reçu OL_E_D3D_RESET_IN_PROGRESS, la texture antérieure à la perte a été rejetée avec OL_E_D3D_STALE_RESOURCE_HANDLE et les nouvelles textures ont fonctionné. OMSI est passé directement à DEVICENOTRESET, si bien qu'aucune transition lost distincte n'a été produite. Une tentative a fait planter OMSI dans DSound.dll (changement de point de terminaison audio de l'affichage ; le propriétaire a restauré exactement). |
events.read / events watch | RUNTIME_VALIDATED | Toutes les sessions (cycle de vie piloté par la télémétrie) |
internal.road-vehicles.make-basic | INTERNAL | Inaccessible par les surfaces publiques |
Fonctionnalités de lancement#
| Fonctionnalité | État | Preuves |
|---|---|---|
/set et settings du profil (configuration.options.semantic) | RUNTIME_VALIDATED | RV-005 |
| Profils de session (compilateur strict, conflits, confinement des chemins y compris les reparse points S-17) | RUNTIME_VALIDATED (périmètre du démarrage par profil) | Round A RA-009, Test-Beta3SessionProfile.ps1, 2026-09-22 : écran de démarrage géré, textures Internet désactivées et préréglage graphics.maxFPS=30 ; options.cfg restauré, fixture intacte, aucun journal, bail ni processus. |
Chargement de /spec (limite de 1 MiB, propriétés inconnues rejetées, timeouts respectés) (S-20) | STATICALLY_VALIDATED | Tests cli.* |
Écran de démarrage géré PTB/ENG/DEU/FRA | RUNTIME_VALIDATED | RV-006 |
Textures Internet Disabled (suppression du téléchargeur dans le processus) | STATICALLY_VALIDATED | Chemin de télémétrie internet-textures.suppressed ; non cité dans la matrice |
Garde des cibles .itx des textures Internet (Round A RA-011/RA-012, passe de correction CP-05, addendum E) : racine canonique, cible canonique, chemin relatif, règles de segments ; seul un segment de répertoire nommé texture sous la racine est admis (mytexture, texture_backup, texture2 et texture dans la racine absolue ne le sont pas) ; cibles par traversée, absolues, relatives à la racine et par jonction rejetées ; les différentes écritures convergent vers un seul chemin de transaction canonique | STATICALLY_VALIDATED | presentation.itx-target-root-normalization, presentation.itx-target-guard-rejections |
Textures Internet Override | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) : I01 session 6eac2dac-c7e9-49a1-acbf-2a5d59c1c0d3 : le téléchargeur d'OMSI a envoyé HEAD et GET à un serveur loopback pour une cible existante et une cible initialement absente, a écrit les deux, et après l'arrêt canonique la cible absente a été supprimée et la cible existante restaurée à l'octet près ; I02 session a8f2b720-e41a-4e34-86bf-125bf519a5bd : même résultat après que le propriétaire et OMSI ont été tués, via /recover. |
/date, /time, /year, options météo, options du véhicule du joueur (STATICALLY_PARTIAL) | UNAVAILABLE | Le planificateur marque le plan comme non exécutable (OL_E_CAPABILITY_UNAVAILABLE) ; le plugin rejette les modes de date/heure autres que Unset |
/entrypoint:<identity> (BI-001) | PARTIAL | Plan non exécutable (RUNTIME_PARTIAL) |
/last (LastMapState, BI-006) | UNAVAILABLE | UNSUPPORTED_FOR_CURRENT_PROFILE |
Overlays clavier/manette InputSpec (BI-005) | UNAVAILABLE | Les parseurs existent ; non appliqués |
Attribution headless du PlayerVehicle (BI-007), SetActualDateTime (BI-002), contrôle météo ICAO (BI-003), écritures de variables chaîne (BI-004), relocalisation entre tuiles (BI-008) | UNAVAILABLE | Bloqué jusqu'à la fin de l'implémentation |
Découverte /list (content.*) | STATICALLY_VALIDATED ; observé à l'exécution | discovery.fixture ; la clôture runtime a utilisé /list:situations sur l'installation autorisée (identités incluant le nom non ASCII situations\Nur für Fortgeschrittene.osn) |
/quiet, /serve | UNAVAILABLE | ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT |
Options de diagnostic (/log, /logall, /omsi-logall, /verbose, /trace*) | PARTIAL | Transportées dans DiagnosticsSpec ; effet limité à la trace de l'hôte |
Hôte Windows et zone de notification#
| Fonctionnalité | État | Preuves |
|---|---|---|
Indicateur de la zone de notification (OmsiLaunchW.exe) : icône dans la zone de notification, état, « End session » (Terminer la session) avec confirmation et Cancel, redémarrage de l'Explorateur, boîtes de dialogue ouvertes à l'arrivée d'un arrêt, arrêt pendant /observe-seconds, boîtes de dialogue d'échec (S-16) | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) sur le candidat 3 (après le correctif BUG-04) : T01 session 6d827c13-caf8-4221-832a-c91d26f130e0 (icône trouvée dans Shell_TrayWnd, fenêtre d'état en pt-BR, le redémarrage de l'Explorateur a réajouté l'icône, Cancel a conservé la session, End session l'a terminée en 607 ms et a retiré l'icône) ; T02 session 0939a151-bf03-4ca9-8294-8b0088df7d30 (fenêtre d'état et confirmation ouvertes pendant un arrêt par pipe) ; T03 session 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8 ; T04 session 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (boîtes de dialogue d'erreur d'argument, d'absence de session active et d'échec de session, avec codes). Les codes de sortie 100-106 du shim n'ont pas été produits. |
Relancement /silent renvoyant 0 lorsque l'hôte a démarré | RUNTIME_VALIDATED | Campagne de clôture runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) T04 session 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (candidat 3, après le correctif BUG-03) : le lanceur a renvoyé 0 et un appelant capturant sa sortie a reçu la fin de flux après 0.4 s, tandis que la session OmsiLaunchW s'exécutait sans fenêtre de console ; la session s'est arrêtée avec une restauration exacte |
| Codes de sortie 100-106 du shim d'amorçage, tampon de chemin dynamique (S-21) | STATICALLY_VALIDATED | Test-ReleaseIdentity.ps1 |
Nouveau test de l'audit de documentation (clôture de la documentation 0.1.0-beta3)#
Paquet 9F8CC87B238A677F7238C262E8FE0496832263B6C0A58083409EB485C03C6F17 sur l'installation autorisée, avec BUG-05, BUG-06, BUG-07 et le test de fumée répétés sur le paquet final B8462ED6C596843E778C33DF4E93EBA3ACC875B7E43B011D60E5A21A16032E35 (session R01 56cdee4b-9160-49fc-b0fd-5134ff9fe2d0, session de capture de documentation 40046805-5337-48fc-90dd-e7d3500ed3b4) ; preuves dans research/reports/documentation-audit/runtime/ et research/reports/OMSILAUNCH-BETA3-FINAL-DOCUMENTATION-AUDIT.md.
| Élément | État | Preuves |
|---|---|---|
OmsiLaunchW.exe signale un lancement non exécutable (BUG-06) | RUNTIME_VALIDATED | /new ... /date:2026-09-20 sous OmsiLaunchW.exe : boîte de dialogue Requested capability unavailable: world.explicit-date / Code: OL_E_CAPABILITY_UNAVAILABLE, sortie 1, aucun processus OMSI (doc-bug06-dialog.json ; paquet installé 9f8cc87b..., aucune session n'est créée, par conception) |
| Les routes CLI annoncées sont une syntaxe réelle (BUG-07) | RUNTIME_VALIDATED | Chaque variante de route client affichée par help --json et capabilities --json installés (32 descripteurs) a été acceptée par le parseur installé ; aucune n'a affiché l'aide d'utilisation (doc-bug07-routes.json ; paquet installé 9f8cc87b...) |
| Chaque ligne de commande de la page d'exemples CLI | RUNTIME_VALIDATED | 43 lignes client exécutées contre la session propriétaire 08df97b8-06cc-4faa-be8b-f49ca1538dce (situation enregistrée ; events watch ignoré car il s'exécute jusqu'à Ctrl+C), se terminant par le propre session stop de la page (sortie du propriétaire 0). Toutes correspondaient à la page, sauf vehicle.constant.get avec name=max_speed, une constante que ce bus ne possède pas ; la page utilise désormais antrieb_getr_version. L'exemple de profil grundorf-quick ne se planifiait pas (barres obliques inverses doublées dans des scalaires YAML simples) et a été corrigé ; chaque ligne sans session a été exécutée depuis la racine de l'installation, les lignes de lancement avec /plan (doc-client-examples.json, doc-examples-no-session.json, doc-profile-example.json) |
Test de fumée NEW_MAP avec /observe-seconds sur le paquet final | RUNTIME_VALIDATED | R01 session 08570134-cfd8-4726-a472-5f6dd2f04c8f, état final propre (research/reports/runtime-closure/doc-R01-*) |
Liste consolidée RUNTIME_VALIDATION_REQUIRED#
La campagne de clôture runtime du 2026-09-23 a soldé la file précédente. Celle-ci reste vide, à l'exception des éléments qui ne peuvent pas être produits de façon sûre sur cette installation :
- Phase de jeu, lectures, commandes et arrêt avec Steam LAA : nécessitent une véritable installation Steam (environnement ; la ligne ci-dessus est
PARTIAL). - Suppression de RoadVehicle et de Human pour RV-002 : aucun producteur de suppression sûr (la ligne ci-dessus est
PARTIAL).
Les éléments qui restent hors ligne parce qu'ils ne peuvent pas être produits depuis l'extérieur du produit sont signalés dans leurs lignes et ne font pas partie de la file : corruption des réponses de la boîte aux lettres, réponses surdimensionnées, troncature de l'historique des événements, transition D3D lost, déconnexion, codes de sortie 100-106 du shim et branche de récupération différée antérieure aux empreintes.
Voir aussi : capacités, limitations connues, transactions et récupération, compatibilité.