Status der Runtime-Validierung

Dokumentation für Version v0.1.0-beta.3Quelle auf GitHub ansehen

Übersetzung der englischen Originalseite für OmsiLaunch 0.1.0-beta3. Maßgeblich ist die englische Seite: Bei Abweichungen gelten die englische Seite und der Code.

Diese Seite ist die einzige Nachweistabelle für OmsiLaunch 0.1.0-beta3. Jede Zeile benennt eine Capability oder Funktion und ihren Nachweisstatus. RUNTIME_VALIDATED kann entweder auf research/reports/OMSILAUNCH-RUNTIME-VALIDATION-MATRIX.md verweisen (Matrix-IDs RV-nnn, Blocker BI-nnn, Sitzungs-IDs aus der Ausführungstabelle vom 2026-09-20) oder auf den Post-Fable-Bericht zu Runde A research/reports/OMSILAUNCH-RUNTIME-VALIDATION-ROUND-A-001.md (RA-nnn); alles andere ist aus dem Code und den Offline-Testsuiten abgeleitet. Die Härtungsrunde vom 2026-09-21 (research/reports/OMSILAUNCH-SECURITY-ROBUSTNESS-REVIEW-001.md, Befunde S-01 bis S-34) hat das Verhalten von Wiederherstellung, Recovery (Absturzwiederherstellung), Steuerungsebene (Control Plane) und Grenzen geändert; für diese Änderungen gab es nur Offline-Nachweise. Die abschließende Runtime-Closure-Runde vom 2026-09-23 (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md, Szenario-IDs wie F01, S05, T01, Kandidaten 2 und 3) hat sie in echten Sitzungen auf der autorisierten Installation ausgeführt; Zeilen, die durch diese Runde hochgestuft wurden, verweisen auf deren Szenario-IDs und Sitzungs-IDs. RUNTIME_VALIDATED kann daher auch auf diesen Bericht verweisen.

Nachweisstatus:

StatusBedeutung
RUNTIME_VALIDATEDIn einer kanonischen, in der Matrix erfassten Sitzung beobachtet (ID und Sitzung angegeben).
STATICALLY_VALIDATEDImplementiert und durch Offline-Tests abgedeckt (tools/OmsiLaunch.TestHost, tests/*), seit der letzten Änderung nicht in einer Live-Sitzung beobachtet.
PARTIALImplementiert, aber die Nachweise sind unvollständig oder widersprüchlich, oder das Verhalten ist bekanntermaßen eingeschränkt.
RUNTIME_VALIDATION_REQUIREDVerhalten wurde geändert oder nie beobachtet; muss in einer echten Sitzung validiert werden, bevor es hochgestuft werden kann.
UNAVAILABLENicht implementiert oder bewusst abgelehnt.

Sitzungslebenszyklus und Transaktion#

FunktionStatusNachweis
Headless-Start mit NEW_MAP (world.new-map, world.presented-entrypoint, boot.headless-start)RUNTIME_VALIDATEDMatrix „Existing Runtime Evidence“; Sitzungen e5454061, 1e8e0548, 5f641c8d, 50a1f1ec (Grundorf)
Start mit SAVED_SITUATION (world.saved-situation)RUNTIME_VALIDATEDHinweis in GetCapabilitiesAsync und Matrix (Berlin-Spandau, Start-Formular und Button1Click)
Erzwungene Beendigung durch session.stop und exakte WiederherstellungRUNTIME_VALIDATEDSitzung 50a1f1ec: Normales Beenden hinterließ keinen OMSI-Prozess und kein Journal
Idempotenz beim Start (wiederholtes PluginStart)RUNTIME_VALIDATEDSitzung 50a1f1ec
Semantisches Overlay der options.cfg und bytegenaue Wiederherstellung (RV-005)RUNTIME_VALIDATEDSitzung 1e8e0548: AIMaxCountRandom 150/200 plus erhaltener Dateirest; wiederhergestellter Hash A12982C3...
Verwaltetes Startbild plus Overlay-Transaktion (RV-006)RUNTIME_VALIDATEDMatrix RV-006 PASS (Darstellungs-Batch: verwaltet Standard, verwaltet benutzerdefiniert, Unset); Sitzungen von Release Presentation 001 388cf5d2-7310-4301-9313-e62c4c08a346, 794cae34-a2ac-4fcf-8981-f142ac14c308, 12a74b24-6c78-4863-8ffe-947651212eeb
Recovery nach vorzeitigem Beenden (RV-008, erzwungene Beendigung von OMSI)RUNTIME_VALIDATEDPost-Fable-Sitzungen der Runde A 9e7cad79-9c35-4f93-bfc8-71f455513f82 (nach dem Spielbetrieb) und dcac497e-ff35-4c97-b5e4-98b660f88032 (nach world.starting, vor dem Spielbetrieb): Der Eigentümer wurde abgeschlossen, Journal/Lease wurden entfernt, options.cfg und der ursprünglich nicht vorhandene Startbild-Zustand stimmten mit den Snapshots überein. Native Startfehler und die Injektion einer fehlgeschlagenen Wiederherstellung bleiben separat.
Grenzen bei Startfehlern und bewusst fehlgeschlagener Wiederherstellung (Rest von RV-008)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): Start-Timeout SF01 Sitzung 0b21c664-b0b2-46b2-9b6b-def536765fff und vom Plugin gemeldeter Weltfehler SF02 Sitzung 53358c75-469b-41d5-9ddb-cdb1d1ff828d endeten mit Failed, typisierten Codes und exakter Wiederherstellung; die fehlgeschlagene Wiederherstellung F01 Sitzung d4194a69-d858-42fe-97c7-ce93ccbdc3f6 (eine sitzungseigene Datei, die während des Beendens von einem reinen Testprozess gesperrt war) ergab OL_E_RESTORE_FAILED, behielt Journal und Backup bei, und /recover stellte den Zustand vor der Sitzung exakt wieder her. Die Fehlererzeuger sind ausschließlich Testinfrastruktur.
Wiederherstellung von Sitzungsartefakten für .itx-Ziele und Texture\standard.ipr (S-01)RUNTIME_VALIDATEDRunde A stellte vorhandene Pfade in 47efd323-4ce1-400a-ac83-74893cf82f26 wieder her; erstellte und entfernte ein registriertes, ursprünglich nicht vorhandenes Ziel beim normalen Beenden in 8d9bdedf-d7de-4c64-a8b1-627ae4deff7b; und wiederholte diese Bereinigung über eine Unterbrechung des Eigentümers plus /recover in aa9a45d4-302e-4cf5-8490-f5a1c9e44b79.
closecheck als Sitzungslöschung und Entfernung veralteter Marker (S-13)RUNTIME_VALIDATEDSitzungen der Runde A, darunter 47efd323-4ce1-400a-ac83-74893cf82f26, protokollierten closecheck.stale-removed gefolgt von restore.session-artifact-removed; es blieb kein Journal zurück.
Frühe Recovery vor dem Overlay-Aufbau, zurückgestellte Recovery vor dem Fingerprint (S-05)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) S05: Der Eigentümer der Sitzung f755ed51-b85c-4df2-b062-5bf65c768b32 wurde mit ausstehendem Journal beendet (maxFPS=77 aktiv); der nächste Start, Sitzung 291ea22b-f9b3-42a4-be07-7f0c055c7113, protokollierte PENDING_JOURNAL_RECOVERED vor TRANSACTION_STARTED, lief mit seinem eigenen Overlay (88) und endete bytegleich mit dem Zustand vor der ersten Sitzung. Der Zweig der zurückgestellten Recovery vor dem Fingerprint bleibt offline (transaction.legacy-journal-ownership-migration).
Wiederherstellung von Metadaten (Zeitstempel, Attribute, schreibgeschützt), Write-Through-Flush, Backup-Bereinigung (S-12)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S12a Sitzung 40de172b-e144-4f0a-9207-09c80b5d7df7 (bekannter options.cfg-Zeitstempel) und S12b Sitzung d9e2534b-3cb3-47ef-9cbd-1b92c62a35e7 (Zeitstempel plus ReadOnly): Das Overlay war während der Sitzung aktiv (ReadOnly für OMSI entfernt), und Bytes, Zeitpunkt des letzten Schreibzugriffs, Erstellungszeitpunkt und Attribute wurden exakt wiederhergestellt; es blieb kein Backup-Verzeichnis zurück.
/recover unter der Installations-Lease; Ablehnung im Fenster vor der PID (S-04)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S04 Sitzung 1fb2aad5-2985-4fa4-9c5a-6186f51d37b8: Unter einem aktiven Eigentümer ergaben /recovery-status und /recover den Code OL_E_INSTALLATION_BUSY, und ein zweiter Start wurde abgelehnt; nachdem der Eigentümer beendet worden war und OMSI weiterlief, wurden /recover und ein neuer Start abgelehnt, bis OMSI beendet war, danach stellte /recover exakt wieder her. S04b Sitzung 5e57ca51-ab5e-4e94-a0d0-531735ee4057: Ein Journal ohne PID (Fehlerinjektion durch das Harness) wurde abgelehnt, solange irgendein Omsi.exe aus dem Stammverzeichnis lief, und nach dessen Ende wiederhergestellt; ein von diesem OMSI geschriebenes closecheck wird mit OL_W_RESTORE_FOREIGN_FILE_RETAINED beibehalten (dokumentiert, konservativ).
Neuplanung bei StartSessionAsync, OL_E_PLAN_NOT_RUNNABLE bei einem veralteten Plan (S-15)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R02: Nachdem ein im Manifest aufgeführtes Plugin nach der Planung ausgelagert worden war, warf StartSessionAsync den Fehler OL_E_PLAN_NOT_RUNNABLE: OL_E_PERMANENT_PLUGIN_MISSING, bevor eine Sitzung existierte (Plan 4797c9ce-6eb3-47b1-b09d-03562dd3bd44, Kandidat 2, nach Fix BUG-01)
Lebenszyklus des Eigentümers: Beenden über die Pipe, Ctrl+C, Beenden über das Tray, Beenden von OMSI, beendeter Eigentümer, /observe-secondsRUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): Beenden über die Pipe während /observe-seconds L06 Sitzung 300a563e-7b0e-4f01-afbd-9e15df32c7e6; Ctrl+C L03 Sitzung 5e2aca54-bae2-4fc6-a106-93699e755bfc (Eigentümer endete 577 ms nach dem Signal); OMSI beendet L05a Sitzung d69658f9-16f6-43e9-8e36-682114b97e14; OMSI-Hauptfenster geschlossen L05b Sitzung 76b11ba4-8ddb-4611-9a1c-8be317cd0337 (OMSI ignoriert WM_CLOSE; durch Kill beendet); Beenden über das Tray T01/T03 Sitzungen 6d827c13-caf8-4221-832a-c91d26f130e0, 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; Eigentümer beendet S05. Jeder Pfad endete mit einer exakten Wiederherstellung. Wird der Eigentümer hart beendet, läuft Omsi.exe weiter (beabsichtigt); die Recovery wird abgelehnt, bis es beendet ist (S04).
ProcessExit-Budget von 4 s beim Schließen der Konsole oder bei der AbmeldungRUNTIME_VALIDATED (Schließen der Konsole)Runtime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) L04 Sitzung 559d0f1d-7d5b-4b6b-b70c-0acb272d53db: Konsolenfenster geschlossen; die Wiederherstellung wurde innerhalb des Budgets abgeschlossen, die Sitzung erreichte Completed ohne Journal; Windows beendete den Eigentümer etwa 5 s nach dem Schließen (Exitcode 0xC000013A). Die Abmeldung wurde nicht erprobt.
Kooperatives Herunterfahren per WM_CLOSEUNAVAILABLENicht implementiert (Produktentscheidung, S-11). Runtime-Closure L05b: OMSI wurde innerhalb von 30 s nach WM_CLOSE an sein Hauptfenster nicht geschlossen. ShutdownTimeoutSeconds wird nicht ausgewertet.
Semantik der Installations-Lease (Local\-Semaphor)STATICALLY_VALIDATEDlease.cross-thread-release; Grenzen als akzeptiertes Risiko dokumentiert (S-18)
Erhalt von CP1252 beim Patchen von OMSI-Dateien (S-07)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) C01 Sitzung 84a71235-d618-4917-9af4-c2a6025742f4: options.cfg mit einem CP1252-Wert mit Akzenten (einschließlich 0x80 und 0x96), gepatcht durch /set; die Live-Datei behielt die CP1252-Bytes ohne EF BF BD, und die Datei war nach der Sitzung bytegleich
Inhaltserkennung überspringt Analysepunkte (Reparse Points) (S-23)STATICALLY_VALIDATEDdiscovery.*-Tests
Aufbewahrung von Diagnosedaten (50 neueste Sitzungen) (S-26)STATICALLY_VALIDATEDHostTrace.Prune
Vorübergehende Dateisperren (Virenscanner, Indexdienst) bei Schreib- und Löschvorgängen der Transaktion werden etwa 1.5 s lang wiederholt; dauerhafte Sperren schlagen weiterhin fehl (Korrekturdurchgang CP-10)STATICALLY_VALIDATEDtransaction.transient-lock-retried, transaction.restore-failure-recovery (dauerhafte Sperre schlägt weiterhin fehl); vor dem Fix wurden zwei sporadische Offline-Fehler beobachtet, danach keiner in 16 Läufen

Permanentes Plugin und Plattform#

FunktionStatusNachweis
Profil Omsi23004_692EBFBF (692EBFBF...6243, 8,503,440 Bytes)RUNTIME_VALIDATEDJede Matrix-Sitzung
Steam-LAA-Executable (7DAB063D...D759)PARTIALRuntime-Closure LAA01 Sitzung 9ec975ca-7820-47be-b806-5f5a94aad4ab: Eine kontrollierte Kopie (abgeleitet vom ungepatchten Original der Installation mit IMAGE_FILE_LARGE_ADDRESS_AWARE und neu berechneter PE-Prüfsumme; 8,503,440 Bytes, Characteristics 0x81AE) stimmte mit dem Hash überein, der Fingerprint wurde akzeptiert und der Plan war ausführbar. Das Image ist die originale DRM-geschützte Steam-Executable: Außerhalb einer echten Steam-Installation übergibt sie an den Steam-Client und beendet sich, sodass die Sitzung mit OL_E_PROCESS_EXITED_EARLY und einer exakten Wiederherstellung fehlschlug. Spielbetrieb, Lesevorgänge, Befehle und Beenden erfordern eine echte Steam-Installation (ENVIRONMENT).
Installationsidentität: Lease und Name der Steuerungs-Pipe leiten sich aus einer einzigen Definition ab, InstallationPaths.IdentityKey (C:\OMSI = C:\OMSI\ = C:\OMSI\. = C:\foo\..\OMSI = Varianten der Groß-/Kleinschreibung; C:\OMSI-A unterscheidet sich von C:\OMSI-B) (Korrekturdurchgang CP-02, Nachtrag A/B)STATICALLY_VALIDATED; zur Laufzeit beobachtetlease.root-normalization, paths.installation-identity-and-containment. Runtime-Closure ID01: Während Sitzung 01bfc780-10ef-4390-b700-c08bf809a42f lief, wurden zweite Starts und /recovery-status mit dem Stammverzeichnis in den Schreibweisen mit \., mit einem ..-Segment, in Klein- und in Großbuchstaben abgelehnt (OL_E_SESSION_ALREADY_ACTIVE, OL_E_INSTALLATION_BUSY); ebenso die Schreibweise mit abschließendem Trennzeichen (ID01b, Sitzung ba3ea7c9-9826-453d-b447-81c48763e18f).
Kohärenz des Release-Pakets: sauberes Staging, Build-Beleg für Native.x86 (Inhalt, nicht Zeitstempel), Manifest ohne BOM, Integrität der bereitgestellten Plugin-Gesamtheit (Closure) und des erneut entpackten Archivs, Installer kopiert das Manifest (Korrekturdurchgang CP-01, Runde A RA-007, Nachtrag F/G/H)STATICALLY_VALIDATED; Installation beobachtetTest-PackagingPipeline.ps1 (kohärenter Kandidat plus 16 Negativfälle), runtime.release-manifest-bom, runtime.release-manifest-strict-parser. Runtime-Closure: In die autorisierte Installation installierte Pakete waren mit ihren Manifesten kohärent, und jede Sitzung wurde mit plugin.integrity.reference = manifest geplant (Kandidatenverzeichnis research/reports/runtime-closure/CANDIDATES.md).
Integrität der Plugin-Closure gegenüber release-manifest.json (S-09)RUNTIME_VALIDATEDSitzung der Runde A 47efd323-4ce1-400a-ac83-74893cf82f26; Runtime-Closure-Sitzungen auf installierten Release-Paketen (z. B. R01 Sitzung 878b5e3c-2f9d-46bf-a918-11bb2e227e55, Kandidat 3) wurden mit plugin.integrity.reference = manifest geplant; R02 zeigte, dass ein fehlendes aufgeführtes Plugin den Start blockiert.
In-Process-Build-Validierung (plugin.build.invalid -> OL_E_BUILD_VALIDATION_FAILED)RUNTIME_VALIDATEDMatrix-Sitzungen; zwei frühere plugin.build.invalid-Sitzungen mit einem veralteten Plugin
Handoff v4 mit SHA-256RUNTIME_VALIDATEDIntegrationstests handoff.*; jede Sitzung
Plugin inaktiv ohne OmsiLaunch (keine Übergabe)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) P01 (einfacher OMSI-Start, keine OmsiLaunch-Sitzung; OMSI-PID 35564): Die Plugin-Closure und der .NET-Host wurden geladen, OmsiLaunch.Native.x86.dll wurde nicht geladen, die drei nativen Patch-Stellen enthielten die ungepatchten Omsi.exe-Bytes, und es erschienen weder Steuerungs-Pipe noch Journal noch Diagnosedaten
DLL-Suchrichtlinie (AssemblyDirectory | System32) (S-24)STATICALLY_VALIDATEDAssembly-Attribute
Erkennung von Windows 10+ x64 und Ablehnung anderer PlattformenSTATICALLY_VALIDATEDCurrentWindowsX64Platform.Detect

Runtime-Steuerungskanal und Steuerungsebene#

FunktionStatusNachweis
Integrität der Mailbox-Übertragung, SitzungsbindungRUNTIME_VALIDATEDAlle Runtime-Sitzungen; runtime-command.wire-guard, runtime-command.session-binding
Verwerfen verspäteter Antworten und kein blockierter Kanal nach einem Timeout (S-08)RUNTIME_VALIDATEDSitzung der Runde A 173414a5-ee53-4b10-aeb7-046f40b851e9: Ein externer Client brach road-vehicles.spawn nach 250 ms ab; ein späteres map.read war erfolgreich, und der kanonische Stopp bereinigte die Sitzung. Die Ablehnung übergroßer Antworten ist weiterhin nur offline nachgewiesen.
Lokale Steuerungsebene: Pipe-Name pro Installation, session_id-Bindung, typisierte Handler-Fehler, Grenze von 64 KiB (S-06)RUNTIME_VALIDATEDSitzung der Runde A a00c6ff8-9cc9-4bce-ae44-c4314daad7bf: Ungültiges Protokoll, ungebundenes Beenden, Runtime-Anforderung für die falsche Sitzung und übergroßer Frame wurden abgelehnt; eine anschließende gültige Statusanforderung und ein gebundenes Beenden waren erfolgreich. Die Ablehnung übergroßer Antworten ist weiterhin nur offline nachgewiesen.
Telemetrie-Sequenz-Slot, Überspringen zerrissener Samples, identische aufeinanderfolgende Ereignisse (S-25)STATICALLY_VALIDATEDtelemetry.sequence-samples
API-Grenze lehnt internal.* ab und entfernt interne Ergebnisschlüssel (S-02)STATICALLY_VALIDATEDOmsiLaunchService.ExecuteRuntimeAsync; Registry-Validierung
Eine ungültige oder übergroße Mailbox-Antwort gibt den Slot frei; die nächste Anforderung ist erfolgreich (Korrekturdurchgang CP-03)STATICALLY_VALIDATEDruntime-command.oversized-response-rejected; Plugin-Seite plugin-runtime.oversized-and-abandoned-responses. Zur Laufzeit nicht erzeugbar: Keine öffentliche Operation liefert mehr als einen Slot (größte etwa 37.8 KB, Runtime-Closure R03).
Jeder Endpfad einer Runtime-Anforderung hinterlässt die Mailbox wiederverwendbar: typisierte Ablehnung, Timeout, Abbruch durch den Aufrufer, wiederverwendete Anforderungs-ID, interne Operation, falsche Sitzung, fehlendes Argument (Runtime); fehlerhafte, übergroße, beschädigte, veraltete und verwaiste Antworten (offline)RUNTIME_VALIDATED (erreichbare Pfade)Runtime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R03 Sitzung 1134fdc3-a469-4ff5-a511-9964ed65e7cd: Jeder Fehler war typisiert, und die nächste gültige Anforderung war erfolgreich. Pfade mit beschädigten Antworten können von außen nicht erzeugt werden und bleiben offline (runtime-command.terminal-paths-leave-channel-usable).
Übergroße Antwort der Steuerungsebene wird als OL_E_CONTROL_RESPONSE_TOO_LARGE beantwortet; Status/Ereignisse werden, beginnend mit den ältesten, auf einen Frame gekürzt (Korrekturdurchgang CP-04)STATICALLY_VALIDATEDcontrol-plane.binding-and-typed-errors. Zur Laufzeit nicht erzeugbar: Die größte in der Runtime-Closure-Runde beobachtete öffentliche Antwort betrug etwa 37.8 KB (R03), und der Ereignisverlauf einer Sitzung bleibt weit unter einem Frame.
Die Steuerungsebene bleibt nach dem Verbindungsaufbau nie stumm: fehlerhafte, übergroße, Frames mit negativer Länge, leere, JSON-null-, Frames ohne Befehl, mit Nicht-String-Argument, mit ungültigem Protokoll, mit unbekanntem Befehl, ungebundene Frames und Frames für die falsche Sitzung; abgeschnittene Client-Frames; hängende Clients; Clients, die vor der Antwort trennenRUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R04 Sitzung faaaf8a8-126d-4a23-a8f3-381e47c58de6 (Kandidat 2, nach Fix BUG-02): Jeder Frame erhielt seinen typisierten Fehler, jeweils gefolgt von einem erfolgreichen session.status; ein hängender Client blockierte keine anderen; ein gebundenes Beenden, das mit einem laufenden road-vehicles.spawn konkurrierte, beendete die Sitzung, und der Aufrufer des Spawns erhielt ein sauberes Stream-Ende. OL_E_TIMEOUT und Kürzungsmetadaten bleiben offline (control-plane.errors-never-silent).
Runtime-Batch-Harnesses (/runtime-batch, /runtime-write-batch, /d3d-batch)INTERNAL (STATICALLY_VALIDATED)Nur Validierungs-Harness (S-27)

Runtime-Operationen#

Operation(en)StatusNachweis
time.read, time.setRUNTIME_VALIDATEDSitzung e5454061 (Schreiben, SetTime, Zurücklesen, Wiederherstellung)
weather.read, weather.actual.readRUNTIME_VALIDATEDSitzung e5454061
weather.setUNAVAILABLEAbgelehnt mit OL_E_RUNTIME_SETTING_NOT_PERSISTENT; Persistenz FAIL in den Sitzungen e5454061 und 5f641c8d; Ablehnung PASS in 50a1f1ec
map.readRUNTIME_VALIDATEDNach der Korrektur des globalen Map-Slots in Sitzung 9dd62626-94c6-4cd7-bb6f-0288327696f4 erneut validiert: loaded=true, 19 Kacheln, Grundorf-Identität, Dateiname, Beschreibung und Jahresbereich kohärent.
camera.read, camera.setRUNTIME_VALIDATEDSitzung e5454061 (FOV schreiben, zurücklesen, wiederherstellen)
camera.lock, camera.unlockRUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) CAM01 Sitzung 5dfd9b96-fa94-4060-85af-0c9d19823a73: Die gespeicherte Situation Linie 5 lieferte ein PlayerVehicle (rv-000001); Sperren auf den Familien 0, 2 und 1 wurden durch Zurücklesen der Kamera bestätigt; das Entsperren gab die Richtlinie frei
road-vehicles.read, road-vehicles.list, road-vehicle.readRUNTIME_VALIDATEDSitzungen e5454061, 5f641c8d
Lebensdauer von RoadVehicle-Handles und Erkennung veralteter Handles (RV-002)PARTIALKein sicherer Erzeuger für das Entfernen: In drei Runtime-Closure-Fenstern (H01, H01b, H01c, bis zu 180 s, mit einem Zeitsprung) wuchsen die RoadVehicle- und Human-Populationen von Grundorf nur; keine öffentliche Operation entfernt ein Objekt. Die Erkennung veralteter Handles bleibt offline (S-19). Die Generations-/ABA-Regel ist für D3D-Texturen zur Laufzeit validiert (H02).
road-vehicles.spawn (RV-003)RUNTIME_VALIDATEDSitzung 5f641c8d: 2 -> 3, rv-000003 aufgelöst
road-vehicles.place-randomRUNTIME_VALIDATEDMatrix: Sammlung 2 -> 4
player-vehicle.readRUNTIME_VALIDATEDRunde A RA-002 Sitzung 9dd62626-94c6-4cd7-bb6f-0288327696f4 (present=false); Runtime-Closure CAM01 Sitzung 5dfd9b96-fa94-4060-85af-0c9d19823a73 las ein vorhandenes PlayerVehicle aus einer gespeicherten Situation
humans.read, humans.list, human.readRUNTIME_VALIDATEDSitzung e5454061
timetable.read, timetable.*.list, timetable.logs.readRUNTIME_VALIDATEDSitzung e5454061; Fahrteinträge 91 Datensätze
Kürzung begrenzter Listen statt OL_E_RUNTIME_RESPONSE_TOO_LARGE (Dokumentationsaudit BUG-05)RUNTIME_VALIDATEDErneuter Test des Dokumentationsaudits mit Paket 9F8CC87B..., gespeicherte Situation situations\Linie 5.osn (Berlin-Spandau): timetable.track-entries.list lieferte 137 von 825 Einträgen und timetable.tour-entries.list 224 von 4747, jeweils mit truncated=true (Sitzungen 08df97b8-06cc-4faa-be8b-f49ca1538dce und der erneute Test für die Dokumentationserfassung); vor dem Fix schlugen beide mit OL_E_RUNTIME_RESPONSE_TOO_LARGE fehl (Sitzung f51dcb59-a723-4570-b6c5-b61e628a7993). Nachweis: research/reports/documentation-audit/runtime/.
drivers.read, tickets.readRUNTIME_VALIDATEDSitzung e5454061
vehicle.variables.list, vehicle.variable.get, vehicle.variable.setRUNTIME_VALIDATEDRefresh_Strings 0 -> 1 -> 0 in der Runtime-Sitzung, die in research/reports/OmsiHook-Parity-Wave-A-Closure-001.md als Runtime-Proven erfasst ist (1,025 Namen aufgezählt, laut OMSILAUNCH-AUTONOMOUS-BUILD-001.md); der Bericht erfasst die Sitzungs-ID nicht
vehicle.string-variables.list, vehicle.string-variable.getRUNTIME_VALIDATED (nur lesend)Sitzung e5454061; Schreibvorgänge BI-004 UNAVAILABLE
vehicle.constants.list, vehicle.constant.get, vehicle.curves.list, vehicle.curve.evaluate, vehicle.hofs.readRUNTIME_VALIDATEDSitzung e5454061
d3d.status, d3d.texture.create, d3d.texture.describe, d3d.texture.update, d3d.texture.release, Ablehnung freigegebener HandlesRUNTIME_VALIDATEDMatrix „basic D3D texture lifecycle“; Capability-Hinweise zu runtime.d3d.* (Sitzung 4378899d für den Device-Slot)
Ereignisse für D3D-Geräteverlust / -Reset / -Wiederherstellung, Invalidierung der Generation (RV-007)RUNTIME_VALIDATED (resetting/restored)Runtime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) D01 Sitzung fc07946e-58dd-4ddc-af7e-10c7e61a899a: Eine vorübergehende Änderung des Anzeigemodus (Testerzeuger, nie öffentlich, kein synthetischer Reset-Aufruf) veranlasste OMSI, sein Device zweimal zurückzusetzen. d3d.resetting/d3d.restored wurden ausgegeben, die Generation stieg in jedem Zyklus, eine Anforderung während des Resets erhielt OL_E_D3D_RESET_IN_PROGRESS, die Textur von vor dem Verlust wurde mit OL_E_D3D_STALE_RESOURCE_HANDLE abgelehnt, und neue Texturen funktionierten. OMSI ging direkt zu DEVICENOTRESET über, daher wurde kein eigenständiger lost-Übergang erzeugt. Ein Versuch brachte OMSI in DSound.dll zum Absturz (Änderung des Anzeige-Audio-Endpunkts; der Eigentümer stellte exakt wieder her).
events.read / events watchRUNTIME_VALIDATEDJede Sitzung (telemetriegesteuerter Lebenszyklus)
internal.road-vehicles.make-basicINTERNALÜber öffentliche Schnittstellen nicht erreichbar

Startfunktionen#

FunktionStatusNachweis
/set und Profil-settings (configuration.options.semantic)RUNTIME_VALIDATEDRV-005
Sitzungsprofile (strikter Compiler, Konflikte, Pfadbeschränkung einschl. Reparse Points S-17)RUNTIME_VALIDATED (Umfang Profilstart)Runde A RA-009, Test-Beta3SessionProfile.ps1, 2026-09-22: verwaltetes Startbild, deaktivierte Internettexturen und Voreinstellung graphics.maxFPS=30; options.cfg wiederhergestellt, Fixture intakt, kein Journal/keine Lease/kein Prozess.
Laden per /spec (Grenze 1 MiB, unbekannte Eigenschaften abgelehnt, Timeouts berücksichtigt) (S-20)STATICALLY_VALIDATEDcli.*-Tests
Verwaltetes Startbild PTB/ENG/DEU/FRARUNTIME_VALIDATEDRV-006
Internettexturen Disabled (Unterdrückung des In-Process-Downloaders)STATICALLY_VALIDATEDTelemetriepfad internet-textures.suppressed; in der Matrix nicht angeführt
Zielschutz für .itx bei Internettexturen (Runde A RA-011/RA-012, Korrekturdurchgang CP-05, Nachtrag E): kanonisches Stammverzeichnis, kanonisches Ziel, relativer Pfad, Segmentregeln; nur ein Verzeichnissegment namens texture unterhalb des Stammverzeichnisses ist zulässig (mytexture, texture_backup, texture2 und texture im absoluten Stammverzeichnis nicht); Traversal-, absolute, stammverzeichnisrelative und Junction-Ziele werden abgelehnt; Schreibweisen werden zu einem einzigen kanonischen Transaktionspfad zusammengeführtSTATICALLY_VALIDATEDpresentation.itx-target-root-normalization, presentation.itx-target-guard-rejections
Internettexturen OverrideRUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): I01 Sitzung 6eac2dac-c7e9-49a1-acbf-2a5d59c1c0d3: Der Downloader von OMSI sendete HEAD und GET an einen Loopback-Server für ein vorhandenes und ein ursprünglich nicht vorhandenes Ziel, schrieb beide, und nach dem kanonischen Stopp wurde das nicht vorhandene Ziel entfernt und das vorhandene bytegenau wiederhergestellt; I02 Sitzung a8f2b720-e41a-4e34-86bf-125bf519a5bd: dasselbe, nachdem Eigentümer und OMSI beendet worden waren, über /recover.
/date, /time, /year, Wetter-Flags, Spielerfahrzeug-Flags (STATICALLY_PARTIAL)UNAVAILABLEDer Planer markiert den Plan als nicht ausführbar (OL_E_CAPABILITY_UNAVAILABLE); das Plugin lehnt Datums-/Zeitmodi ungleich Unset ab
/entrypoint:<identity> (BI-001)PARTIALPlan nicht ausführbar (RUNTIME_PARTIAL)
/last (LastMapState, BI-006)UNAVAILABLEUNSUPPORTED_FOR_CURRENT_PROFILE
Tastatur-/Controller-Overlays aus InputSpec (BI-005)UNAVAILABLEParser vorhanden; nicht angewendet
Headless-Zuweisung des PlayerVehicle (BI-007), SetActualDateTime (BI-002), ICAO-Wettersteuerung (BI-003), Schreiben von String-Variablen (BI-004), kachelübergreifende Verlagerung (BI-008)UNAVAILABLEBlockiert, bis die Implementierung abgeschlossen ist
Erkennung per /list (content.*)STATICALLY_VALIDATED; zur Laufzeit beobachtetdiscovery.fixture; die Runtime-Closure verwendete /list:situations für die autorisierte Installation (Identitäten einschließlich Nicht-ASCII situations\Nur für Fortgeschrittene.osn)
/quiet, /serveUNAVAILABLEACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT
Diagnose-Flags (/log, /logall, /omsi-logall, /verbose, /trace*)PARTIALIn DiagnosticsSpec übernommen; Wirkung auf den Host-Trace beschränkt

Windows-Host und Tray#

FunktionStatusNachweis
Tray-Anzeige (OmsiLaunchW.exe): Symbol im Infobereich (Benachrichtigungsbereich), Status, „End session“ mit Bestätigung und Abbrechen, Neustart des Explorers, geöffnete Dialoge beim Eintreffen eines Stopps, Stopp während /observe-seconds, Fehlerdialoge (S-16)RUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) auf Kandidat 3 (nach Fix BUG-04): T01 Sitzung 6d827c13-caf8-4221-832a-c91d26f130e0 (Symbol in Shell_TrayWnd gefunden, pt-BR-Statusfenster, der Neustart des Explorers fügte das Symbol erneut hinzu, Abbrechen behielt die Sitzung bei, „End session“ beendete sie in 607 ms und entfernte das Symbol); T02 Sitzung 0939a151-bf03-4ca9-8294-8b0088df7d30 (Status und Bestätigung während eines Stopps über die Pipe geöffnet); T03 Sitzung 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; T04 Sitzung 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (Dialoge für Argumentfehler, keine aktive Sitzung und Sitzungsfehler mit Codes). Die Shim-Exitcodes 100-106 wurden nicht erzeugt.
Neustart mit /silent liefert 0, wenn der Host gestartet wurdeRUNTIME_VALIDATEDRuntime-Closure-Runde (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) T04 Sitzung 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (Kandidat 3, nach Fix BUG-03): Der Launcher lieferte 0, und ein Aufrufer, der seine Ausgabe erfasste, erhielt nach 0.4 s das Stream-Ende, während die OmsiLaunchW-Sitzung ohne Konsolenfenster lief; die Sitzung wurde mit einer exakten Wiederherstellung beendet
Exitcodes 100-106 des Bootstrapper-Shims, dynamischer Pfadpuffer (S-21)STATICALLY_VALIDATEDTest-ReleaseIdentity.ps1

Erneuter Test des Dokumentationsaudits (Dokumentationsabschluss 0.1.0-beta3)#

Paket 9F8CC87B238A677F7238C262E8FE0496832263B6C0A58083409EB485C03C6F17 auf der autorisierten Installation, wobei BUG-05, BUG-06, BUG-07 und der Smoke-Test auf dem finalen Paket B8462ED6C596843E778C33DF4E93EBA3ACC875B7E43B011D60E5A21A16032E35 wiederholt wurden (R01 Sitzung 56cdee4b-9160-49fc-b0fd-5134ff9fe2d0, Sitzung der Dokumentationserfassung 40046805-5337-48fc-90dd-e7d3500ed3b4); Nachweise in research/reports/documentation-audit/runtime/ und research/reports/OMSILAUNCH-BETA3-FINAL-DOCUMENTATION-AUDIT.md.

PunktStatusNachweis
OmsiLaunchW.exe meldet einen nicht ausführbaren Start (BUG-06)RUNTIME_VALIDATED/new ... /date:2026-09-20 unter OmsiLaunchW.exe: Dialog Requested capability unavailable: world.explicit-date / Code: OL_E_CAPABILITY_UNAVAILABLE, Exitcode 1, kein OMSI-Prozess (doc-bug06-dialog.json; installiertes Paket 9f8cc87b..., beabsichtigt wird keine Sitzung erstellt)
Angekündigte CLI-Routen sind echte Syntax (BUG-07)RUNTIME_VALIDATEDJede Client-Routen-Alternative, die von den installierten Befehlen help --json und capabilities --json ausgegeben wurde (32 Deskriptoren), wurde vom installierten Parser akzeptiert; keine gab die Verwendungshilfe aus (doc-bug07-routes.json; installiertes Paket 9f8cc87b...)
Jede Befehlszeile der Seite mit CLI-BeispielenRUNTIME_VALIDATED43 Client-Zeilen wurden gegen die Eigentümersitzung 08df97b8-06cc-4faa-be8b-f49ca1538dce ausgeführt (gespeicherte Situation; events watch übersprungen, da es bis Ctrl+C läuft), abschließend mit dem seiteneigenen session stop (Exitcode des Eigentümers 0). Alle stimmten mit der Seite überein, außer vehicle.constant.get mit name=max_speed, einer Konstante, die dieser Bus nicht besitzt; die Seite verwendet jetzt antrieb_getr_version. Das Profilbeispiel grundorf-quick ließ sich nicht planen (doppelte Backslashes in einfachen YAML-Skalaren) und wurde korrigiert; jede Zeile ohne Sitzung wurde aus dem Installationsstammverzeichnis ausgeführt, Startzeilen mit /plan (doc-client-examples.json, doc-examples-no-session.json, doc-profile-example.json)
Smoke-Test NEW_MAP mit /observe-seconds auf dem finalen PaketRUNTIME_VALIDATEDR01 Sitzung 08570134-cfd8-4726-a472-5f6dd2f04c8f, sauberer Endzustand (research/reports/runtime-closure/doc-R01-*)

Konsolidierte RUNTIME_VALIDATION_REQUIRED-Liste#

Die Runtime-Closure-Runde vom 2026-09-23 hat die bisherige Warteschlange abgeschlossen. Sie bleibt leer, mit Ausnahme von Punkten, die auf dieser Installation nicht sicher erzeugt werden können:

  1. Spielbetrieb, Lesevorgänge, Befehle und Beenden mit Steam LAA: erfordern eine echte Steam-Installation (Umgebung; die Zeile oben ist PARTIAL).
  2. RV-002 Entfernen von RoadVehicle- und Human-Objekten: kein sicherer Erzeuger für das Entfernen (die Zeile oben ist PARTIAL).

Punkte, die offline bleiben, weil sie von außerhalb des Produkts nicht erzeugt werden können, sind in ihren Zeilen gekennzeichnet und nicht Teil der Warteschlange: beschädigte Mailbox-Antworten, übergroße Antworten, Kürzung des Ereignisverlaufs, der D3D-Übergang lost, Abmeldung, Shim-Exitcodes 100-106 und der Zweig der zurückgestellten Recovery vor dem Fingerprint.

Siehe auch: Capabilities, bekannte Einschränkungen, Transaktionen und Recovery, Kompatibilität.