Status der Runtime-Validierung
Ü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:
| Status | Bedeutung |
|---|---|
| RUNTIME_VALIDATED | In einer kanonischen, in der Matrix erfassten Sitzung beobachtet (ID und Sitzung angegeben). |
| STATICALLY_VALIDATED | Implementiert und durch Offline-Tests abgedeckt (tools/OmsiLaunch.TestHost, tests/*), seit der letzten Änderung nicht in einer Live-Sitzung beobachtet. |
| PARTIAL | Implementiert, aber die Nachweise sind unvollständig oder widersprüchlich, oder das Verhalten ist bekanntermaßen eingeschränkt. |
| RUNTIME_VALIDATION_REQUIRED | Verhalten wurde geändert oder nie beobachtet; muss in einer echten Sitzung validiert werden, bevor es hochgestuft werden kann. |
| UNAVAILABLE | Nicht implementiert oder bewusst abgelehnt. |
Sitzungslebenszyklus und Transaktion#
| Funktion | Status | Nachweis |
|---|---|---|
Headless-Start mit NEW_MAP (world.new-map, world.presented-entrypoint, boot.headless-start) | RUNTIME_VALIDATED | Matrix „Existing Runtime Evidence“; Sitzungen e5454061, 1e8e0548, 5f641c8d, 50a1f1ec (Grundorf) |
Start mit SAVED_SITUATION (world.saved-situation) | RUNTIME_VALIDATED | Hinweis in GetCapabilitiesAsync und Matrix (Berlin-Spandau, Start-Formular und Button1Click) |
Erzwungene Beendigung durch session.stop und exakte Wiederherstellung | RUNTIME_VALIDATED | Sitzung 50a1f1ec: Normales Beenden hinterließ keinen OMSI-Prozess und kein Journal |
Idempotenz beim Start (wiederholtes PluginStart) | RUNTIME_VALIDATED | Sitzung 50a1f1ec |
Semantisches Overlay der options.cfg und bytegenaue Wiederherstellung (RV-005) | RUNTIME_VALIDATED | Sitzung 1e8e0548: AIMaxCountRandom 150/200 plus erhaltener Dateirest; wiederhergestellter Hash A12982C3... |
| Verwaltetes Startbild plus Overlay-Transaktion (RV-006) | RUNTIME_VALIDATED | Matrix 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_VALIDATED | Post-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_VALIDATED | Runtime-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_VALIDATED | Runde 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_VALIDATED | Sitzungen 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_VALIDATED | Runtime-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_VALIDATED | Runtime-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_VALIDATED | Runtime-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_VALIDATED | Runtime-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-seconds | RUNTIME_VALIDATED | Runtime-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 Abmeldung | RUNTIME_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_CLOSE | UNAVAILABLE | Nicht 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_VALIDATED | lease.cross-thread-release; Grenzen als akzeptiertes Risiko dokumentiert (S-18) |
| Erhalt von CP1252 beim Patchen von OMSI-Dateien (S-07) | RUNTIME_VALIDATED | Runtime-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_VALIDATED | discovery.*-Tests |
| Aufbewahrung von Diagnosedaten (50 neueste Sitzungen) (S-26) | STATICALLY_VALIDATED | HostTrace.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_VALIDATED | transaction.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#
| Funktion | Status | Nachweis |
|---|---|---|
Profil Omsi23004_692EBFBF (692EBFBF...6243, 8,503,440 Bytes) | RUNTIME_VALIDATED | Jede Matrix-Sitzung |
Steam-LAA-Executable (7DAB063D...D759) | PARTIAL | Runtime-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 beobachtet | lease.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 beobachtet | Test-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_VALIDATED | Sitzung 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_VALIDATED | Matrix-Sitzungen; zwei frühere plugin.build.invalid-Sitzungen mit einem veralteten Plugin |
| Handoff v4 mit SHA-256 | RUNTIME_VALIDATED | Integrationstests handoff.*; jede Sitzung |
| Plugin inaktiv ohne OmsiLaunch (keine Übergabe) | RUNTIME_VALIDATED | Runtime-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_VALIDATED | Assembly-Attribute |
| Erkennung von Windows 10+ x64 und Ablehnung anderer Plattformen | STATICALLY_VALIDATED | CurrentWindowsX64Platform.Detect |
Runtime-Steuerungskanal und Steuerungsebene#
| Funktion | Status | Nachweis |
|---|---|---|
| Integrität der Mailbox-Übertragung, Sitzungsbindung | RUNTIME_VALIDATED | Alle Runtime-Sitzungen; runtime-command.wire-guard, runtime-command.session-binding |
| Verwerfen verspäteter Antworten und kein blockierter Kanal nach einem Timeout (S-08) | RUNTIME_VALIDATED | Sitzung 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_VALIDATED | Sitzung 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_VALIDATED | telemetry.sequence-samples |
API-Grenze lehnt internal.* ab und entfernt interne Ergebnisschlüssel (S-02) | STATICALLY_VALIDATED | OmsiLaunchService.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_VALIDATED | runtime-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_VALIDATED | control-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 trennen | RUNTIME_VALIDATED | Runtime-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) | Status | Nachweis |
|---|---|---|
time.read, time.set | RUNTIME_VALIDATED | Sitzung e5454061 (Schreiben, SetTime, Zurücklesen, Wiederherstellung) |
weather.read, weather.actual.read | RUNTIME_VALIDATED | Sitzung e5454061 |
weather.set | UNAVAILABLE | Abgelehnt mit OL_E_RUNTIME_SETTING_NOT_PERSISTENT; Persistenz FAIL in den Sitzungen e5454061 und 5f641c8d; Ablehnung PASS in 50a1f1ec |
map.read | RUNTIME_VALIDATED | Nach 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.set | RUNTIME_VALIDATED | Sitzung e5454061 (FOV schreiben, zurücklesen, wiederherstellen) |
camera.lock, camera.unlock | RUNTIME_VALIDATED | Runtime-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.read | RUNTIME_VALIDATED | Sitzungen e5454061, 5f641c8d |
| Lebensdauer von RoadVehicle-Handles und Erkennung veralteter Handles (RV-002) | PARTIAL | Kein 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_VALIDATED | Sitzung 5f641c8d: 2 -> 3, rv-000003 aufgelöst |
road-vehicles.place-random | RUNTIME_VALIDATED | Matrix: Sammlung 2 -> 4 |
player-vehicle.read | RUNTIME_VALIDATED | Runde 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.read | RUNTIME_VALIDATED | Sitzung e5454061 |
timetable.read, timetable.*.list, timetable.logs.read | RUNTIME_VALIDATED | Sitzung e5454061; Fahrteinträge 91 Datensätze |
Kürzung begrenzter Listen statt OL_E_RUNTIME_RESPONSE_TOO_LARGE (Dokumentationsaudit BUG-05) | RUNTIME_VALIDATED | Erneuter 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.read | RUNTIME_VALIDATED | Sitzung e5454061 |
vehicle.variables.list, vehicle.variable.get, vehicle.variable.set | RUNTIME_VALIDATED | Refresh_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.get | RUNTIME_VALIDATED (nur lesend) | Sitzung e5454061; Schreibvorgänge BI-004 UNAVAILABLE |
vehicle.constants.list, vehicle.constant.get, vehicle.curves.list, vehicle.curve.evaluate, vehicle.hofs.read | RUNTIME_VALIDATED | Sitzung e5454061 |
d3d.status, d3d.texture.create, d3d.texture.describe, d3d.texture.update, d3d.texture.release, Ablehnung freigegebener Handles | RUNTIME_VALIDATED | Matrix „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 watch | RUNTIME_VALIDATED | Jede Sitzung (telemetriegesteuerter Lebenszyklus) |
internal.road-vehicles.make-basic | INTERNAL | Über öffentliche Schnittstellen nicht erreichbar |
Startfunktionen#
| Funktion | Status | Nachweis |
|---|---|---|
/set und Profil-settings (configuration.options.semantic) | RUNTIME_VALIDATED | RV-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_VALIDATED | cli.*-Tests |
Verwaltetes Startbild PTB/ENG/DEU/FRA | RUNTIME_VALIDATED | RV-006 |
Internettexturen Disabled (Unterdrückung des In-Process-Downloaders) | STATICALLY_VALIDATED | Telemetriepfad 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ührt | STATICALLY_VALIDATED | presentation.itx-target-root-normalization, presentation.itx-target-guard-rejections |
Internettexturen Override | RUNTIME_VALIDATED | Runtime-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) | UNAVAILABLE | Der Planer markiert den Plan als nicht ausführbar (OL_E_CAPABILITY_UNAVAILABLE); das Plugin lehnt Datums-/Zeitmodi ungleich Unset ab |
/entrypoint:<identity> (BI-001) | PARTIAL | Plan nicht ausführbar (RUNTIME_PARTIAL) |
/last (LastMapState, BI-006) | UNAVAILABLE | UNSUPPORTED_FOR_CURRENT_PROFILE |
Tastatur-/Controller-Overlays aus InputSpec (BI-005) | UNAVAILABLE | Parser 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) | UNAVAILABLE | Blockiert, bis die Implementierung abgeschlossen ist |
Erkennung per /list (content.*) | STATICALLY_VALIDATED; zur Laufzeit beobachtet | discovery.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, /serve | UNAVAILABLE | ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT |
Diagnose-Flags (/log, /logall, /omsi-logall, /verbose, /trace*) | PARTIAL | In DiagnosticsSpec übernommen; Wirkung auf den Host-Trace beschränkt |
Windows-Host und Tray#
| Funktion | Status | Nachweis |
|---|---|---|
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_VALIDATED | Runtime-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 wurde | RUNTIME_VALIDATED | Runtime-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_VALIDATED | Test-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.
| Punkt | Status | Nachweis |
|---|---|---|
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_VALIDATED | Jede 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-Beispielen | RUNTIME_VALIDATED | 43 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 Paket | RUNTIME_VALIDATED | R01 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:
- Spielbetrieb, Lesevorgänge, Befehle und Beenden mit Steam LAA: erfordern eine echte Steam-Installation (Umgebung; die Zeile oben ist
PARTIAL). - 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.