Stan weryfikacji w runtime
Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.
Ta strona jest jedyną tabelą dowodów dla OmsiLaunch 0.1.0-beta3. Każdy wiersz wskazuje możliwość (capability) lub funkcję oraz stan jej dowodów. RUNTIME_VALIDATED może powoływać się na research/reports/OMSILAUNCH-RUNTIME-VALIDATION-MATRIX.md (identyfikatory macierzy RV-nnn, blokery BI-nnn, identyfikatory sesji z tabeli wykonania z 2026-09-20) albo na raport rundy post-Fable Round A research/reports/OMSILAUNCH-RUNTIME-VALIDATION-ROUND-A-001.md (RA-nnn); wszystko inne wynika z kodu i zestawów testów offline. Runda utwardzania z 2026-09-21 (research/reports/OMSILAUNCH-SECURITY-ROBUSTNESS-REVIEW-001.md, ustalenia od S-01 do S-34) zmieniła zachowanie przywracania, odzyskiwania, płaszczyzny sterowania i granic; zmiany te miały wyłącznie dowody offline. Końcowa runda domknięcia runtime z 2026-09-23 (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md, identyfikatory scenariuszy takie jak F01, S05, T01, kandydaci 2 i 3) wykonała je w rzeczywistych sesjach na autoryzowanej instalacji; wiersze awansowane w tej rundzie powołują się na jej identyfikatory scenariuszy i sesji. RUNTIME_VALIDATED może zatem powoływać się również na ten raport.
Stany dowodów:
| Stan | Znaczenie |
|---|---|
| RUNTIME_VALIDATED | Zaobserwowano w kanonicznej sesji zapisanej w macierzy (podano identyfikator i sesję). |
| STATICALLY_VALIDATED | Zaimplementowano i pokryto testami offline (tools/OmsiLaunch.TestHost, tests/*); od ostatniej zmiany nie zaobserwowano w działającej sesji. |
| PARTIAL | Zaimplementowano, ale dowody są niekompletne lub sprzeczne albo wiadomo, że zachowanie jest ograniczone. |
| RUNTIME_VALIDATION_REQUIRED | Zachowanie zmieniło się lub nigdy nie zostało zaobserwowane; przed awansem musi zostać zweryfikowane w rzeczywistej sesji. |
| UNAVAILABLE | Niezaimplementowane lub celowo odrzucane. |
Cykl życia sesji i transakcja#
| Funkcja | Stan | Dowody |
|---|---|---|
Uruchomienie bez interakcji (headless) NEW_MAP (world.new-map, world.presented-entrypoint, boot.headless-start) | RUNTIME_VALIDATED | Sekcja macierzy „Existing Runtime Evidence”; sesje e5454061, 1e8e0548, 5f641c8d, 50a1f1ec (Grundorf) |
Uruchomienie SAVED_SITUATION (world.saved-situation) | RUNTIME_VALIDATED | Uwaga w GetCapabilitiesAsync i macierz (Berlin-Spandau, formularz Start i Button1Click) |
Wymuszone zakończenie session.stop i dokładne przywrócenie | RUNTIME_VALIDATED | Sesja 50a1f1ec: normalne zatrzymanie nie pozostawiło procesu OMSI ani dziennika |
Idempotentność uruchamiania (powtórzone PluginStart) | RUNTIME_VALIDATED | Sesja 50a1f1ec |
Semantyczna nakładka (overlay) na options.cfg i przywrócenie bajt w bajt (RV-005) | RUNTIME_VALIDATED | Sesja 1e8e0548: AIMaxCountRandom 150/200 plus zachowana końcówka pliku; skrót po przywróceniu A12982C3... |
| Zarządzany ekran startowy wraz z transakcją nakładki (RV-006) | RUNTIME_VALIDATED | Macierz RV-006 PASS (partia prezentacji: zarządzany domyślny, zarządzany własny, Unset); sesje Release Presentation 001 388cf5d2-7310-4301-9313-e62c4c08a346, 794cae34-a2ac-4fcf-8981-f142ac14c308, 12a74b24-6c78-4863-8ffe-947651212eeb |
| Odzyskiwanie po wczesnym zakończeniu (RV-008, wymuszone zakończenie OMSI) | RUNTIME_VALIDATED | Sesje post-Fable Round A 9e7cad79-9c35-4f93-bfc8-71f455513f82 (po rozgrywce) i dcac497e-ff35-4c97-b5e4-98b660f88032 (po world.starting, przed rozgrywką): właściciel zakończył pracę, dziennik i dzierżawa zostały usunięte, options.cfg i pierwotnie nieobecny stan ekranu startowego odpowiadały migawkom. Natywne błędy uruchamiania i wstrzykiwanie nieudanego przywracania pozostają osobnymi pozycjami. |
| Granice błędu uruchamiania i celowo nieudanego przywracania (pozostała część RV-008) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): przekroczenie limitu czasu uruchamiania SF01 sesja 0b21c664-b0b2-46b2-9b6b-def536765fff oraz zgłoszony przez wtyczkę błąd świata SF02 sesja 53358c75-469b-41d5-9ddb-cdb1d1ff828d zakończyły się stanem Failed z typowanymi kodami i dokładnym przywróceniem; nieudane przywracanie F01 sesja d4194a69-d858-42fe-97c7-ce93ccbdc3f6 (plik należący do sesji zablokowany podczas zatrzymania przez proces wyłącznie testowy) dało OL_E_RESTORE_FAILED, zachowało dziennik i kopię zapasową, a /recover dokładnie przywrócił stan sprzed sesji. Źródła tych błędów są wyłącznie infrastrukturą testową. |
Przywracanie artefaktów sesji dla celów .itx i Texture\standard.ipr (S-01) | RUNTIME_VALIDATED | Round A przywróciła istniejące ścieżki w 47efd323-4ce1-400a-ac83-74893cf82f26; utworzyła i usunęła zarejestrowany, pierwotnie nieobecny cel przy normalnym zatrzymaniu w 8d9bdedf-d7de-4c64-a8b1-627ae4deff7b; a także powtórzyła to sprzątanie po przerwaniu pracy właściciela i /recover w aa9a45d4-302e-4cf5-8490-f5a1c9e44b79. |
closecheck jako usunięcie przez sesję i usunięcie nieaktualnego znacznika (S-13) | RUNTIME_VALIDATED | Sesje Round A, w tym 47efd323-4ce1-400a-ac83-74893cf82f26, zapisały closecheck.stale-removed, a następnie restore.session-artifact-removed; nie pozostał żaden dziennik. |
| Wczesne odzyskiwanie przed budową nakładki, odroczone odzyskiwanie sprzed odcisków (pre-fingerprint) (S-05) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) S05: właściciel sesji f755ed51-b85c-4df2-b062-5bf65c768b32 został zabity przy oczekującym dzienniku (maxFPS=77 aktywne); następne uruchomienie, sesja 291ea22b-f9b3-42a4-be07-7f0c055c7113, zapisało PENDING_JOURNAL_RECOVERED przed TRANSACTION_STARTED, działało z własną nakładką (88) i zakończyło się stanem identycznym bajt w bajt ze stanem sprzed pierwszej sesji. Odroczona gałąź sprzed odcisków pozostaje tylko offline (transaction.legacy-journal-ownership-migration). |
| Przywracanie metadanych (znaczniki czasu, atrybuty, tylko do odczytu), zapis z opróżnieniem (write-through), sprzątanie kopii zapasowych (S-12) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S12a sesja 40de172b-e144-4f0a-9207-09c80b5d7df7 (znany znacznik czasu options.cfg) i S12b sesja d9e2534b-3cb3-47ef-9cbd-1b92c62a35e7 (znacznik czasu plus ReadOnly): nakładka była aktywna podczas sesji (ReadOnly wyczyszczony dla OMSI), a bajty, czas ostatniego zapisu, czas utworzenia i atrybuty zostały dokładnie przywrócone; nie pozostał żaden katalog kopii zapasowej. |
/recover pod dzierżawą instalacji; odmowa w oknie sprzed PID (S-04) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S04 sesja 1fb2aad5-2985-4fa4-9c5a-6186f51d37b8: przy działającym właścicielu /recovery-status i /recover zwróciły OL_E_INSTALLATION_BUSY, a drugie uruchomienie zostało odrzucone; po zabiciu właściciela i pozostawieniu działającego OMSI /recover i nowe uruchomienie były odrzucane do czasu zakończenia OMSI, po czym /recover dokonał dokładnego przywrócenia. S04b sesja 5e57ca51-ab5e-4e94-a0d0-531735ee4057: dziennik sprzed PID (wstrzyknięcie błędu przez harness) był odrzucany, dopóki działał jakikolwiek Omsi.exe z tego katalogu głównego, i został odzyskany po jego zakończeniu; closecheck zapisany przez ten OMSI jest zachowywany z OL_W_RESTORE_FOREIGN_FILE_RETAINED (udokumentowane, zachowawcze). |
Ponowne planowanie w StartSessionAsync, OL_E_PLAN_NOT_RUNNABLE przy nieaktualnym planie (S-15) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R02: gdy wtyczkę wymienioną w manifeście odsunięto po planowaniu, StartSessionAsync zgłosił OL_E_PLAN_NOT_RUNNABLE: OL_E_PERMANENT_PLUGIN_MISSING, zanim powstała jakakolwiek sesja (plan 4797c9ce-6eb3-47b1-b09d-03562dd3bd44, kandydat 2, po poprawce BUG-01) |
Cykl życia właściciela: zatrzymanie przez potok, Ctrl+C, zatrzymanie z obszaru powiadomień, zakończenie OMSI, zabicie właściciela, /observe-seconds | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): zatrzymanie przez potok w trakcie /observe-seconds L06 sesja 300a563e-7b0e-4f01-afbd-9e15df32c7e6; Ctrl+C L03 sesja 5e2aca54-bae2-4fc6-a106-93699e755bfc (właściciel zakończył pracę 577 ms po sygnale); zabicie OMSI L05a sesja d69658f9-16f6-43e9-8e36-682114b97e14; zamknięcie głównego okna OMSI L05b sesja 76b11ba4-8ddb-4611-9a1c-8be317cd0337 (OMSI ignoruje WM_CLOSE; zakończono przez zabicie); zatrzymanie z obszaru powiadomień T01/T03 sesje 6d827c13-caf8-4221-832a-c91d26f130e0, 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; zabicie właściciela S05. Każda ścieżka zakończyła się dokładnym przywróceniem. Gdy właściciel zostanie po prostu zabity, Omsi.exe działa dalej (zgodnie z projektem); odzyskiwanie jest odrzucane do czasu jego zakończenia (S04). |
| Budżet 4 s dla ProcessExit przy zamknięciu konsoli lub wylogowaniu | RUNTIME_VALIDATED (zamknięcie konsoli) | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) L04 sesja 559d0f1d-7d5b-4b6b-b70c-0acb272d53db: okno konsoli zamknięto; przywracanie zakończyło się w ramach budżetu, sesja osiągnęła Completed bez dziennika; Windows zakończył właściciela około 5 s po zamknięciu (kod wyjścia 0xC000013A). Wylogowania nie sprawdzano. |
| Kooperacyjne zamykanie przez WM_CLOSE | UNAVAILABLE | Niezaimplementowane (decyzja produktowa, S-11). Domknięcie runtime L05b: OMSI nie zamknął się w ciągu 30 s od wysłania WM_CLOSE do jego głównego okna. ShutdownTimeoutSeconds nie jest wykorzystywany. |
Semantyka dzierżawy instalacji (semafor Local\) | STATICALLY_VALIDATED | lease.cross-thread-release; ograniczenia udokumentowane jako zaakceptowane ryzyko (S-18) |
| Zachowanie kodowania CP1252 przy modyfikowaniu plików OMSI (S-07) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) C01 sesja 84a71235-d618-4917-9af4-c2a6025742f4: options.cfg z wartością CP1252 zawierającą znaki diakrytyczne (w tym 0x80 i 0x96) zmodyfikowany przez /set; aktywny plik zachował bajty CP1252 bez EF BF BD, a po sesji plik był identyczny bajt w bajt |
| Pomijanie punktów ponownej analizy (reparse points) przy wykrywaniu zawartości (S-23) | STATICALLY_VALIDATED | Testy discovery.* |
| Retencja diagnostyki (50 najnowszych sesji) (S-26) | STATICALLY_VALIDATED | HostTrace.Prune |
| Przejściowe blokady plików (antywirus, indeksator) przy zapisach i usunięciach w transakcji są ponawiane przez około 1.5 s; trwałe blokady nadal kończą się błędem (przebieg korekcyjny CP-10) | STATICALLY_VALIDATED | transaction.transient-lock-retried, transaction.restore-failure-recovery (trwała blokada nadal kończy się błędem); przed poprawką zaobserwowano dwa sporadyczne błędy offline, po niej żadnego w 16 przebiegach |
Stała wtyczka i platforma#
| Funkcja | Stan | Dowody |
|---|---|---|
Profil Omsi23004_692EBFBF (692EBFBF...6243, 8,503,440 bajtów) | RUNTIME_VALIDATED | Każda sesja macierzy |
Plik wykonywalny Steam LAA (7DAB063D...D759) | PARTIAL | Domknięcie runtime LAA01 sesja 9ec975ca-7820-47be-b806-5f5a94aad4ab: kontrolowana kopia (utworzona z niezmodyfikowanego oryginału z instalacji z flagą IMAGE_FILE_LARGE_ADDRESS_AWARE i przeliczoną sumą kontrolną PE; 8,503,440 bajtów, charakterystyka 0x81AE) miała zgodny skrót, odcisk został zaakceptowany, a plan był możliwy do uruchomienia. Obraz jest oryginalnym plikiem wykonywalnym Steam chronionym DRM: poza autentyczną instalacją Steam przekazuje sterowanie klientowi Steam i kończy działanie, więc sesja zakończyła się błędem OL_E_PROCESS_EXITED_EARLY i dokładnym przywróceniem. Rozgrywka, odczyty, polecenia i zatrzymanie wymagają autentycznej instalacji Steam (ENVIRONMENT). |
Tożsamość instalacji: nazwa dzierżawy i nazwa potoku sterowania wynikają z jednej definicji, InstallationPaths.IdentityKey (C:\OMSI = C:\OMSI\ = C:\OMSI\. = C:\foo\..\OMSI = warianty wielkości liter; C:\OMSI-A różni się od C:\OMSI-B) (przebieg korekcyjny CP-02, addendum A/B) | STATICALLY_VALIDATED; zaobserwowano w runtime | lease.root-normalization, paths.installation-identity-and-containment. Domknięcie runtime ID01: podczas działania sesji 01bfc780-10ef-4390-b700-c08bf809a42f drugie uruchomienia i /recovery-status z katalogiem głównym zapisanym z \., segmentem .., małymi i wielkimi literami były odrzucane (OL_E_SESSION_ALREADY_ACTIVE, OL_E_INSTALLATION_BUSY); podobnie zapis z końcowym separatorem (ID01b, sesja ba3ea7c9-9826-453d-b447-81c48763e18f). |
Spójność pakietu wydania: czysty katalog przejściowy, potwierdzenie budowania Native.x86 (zawartość, nie znacznik czasu), manifest bez BOM, integralność przygotowanego zestawu plików i ponownie rozpakowanego archiwum, instalator kopiuje manifest (przebieg korekcyjny CP-01, Round A RA-007, addendum F/G/H) | STATICALLY_VALIDATED; zaobserwowano w instalacji | Test-PackagingPipeline.ps1 (spójny kandydat plus 16 przypadków negatywnych), runtime.release-manifest-bom, runtime.release-manifest-strict-parser. Domknięcie runtime: pakiety zainstalowane w autoryzowanej instalacji były spójne ze swoimi manifestami, a każda sesja była planowana z plugin.integrity.reference = manifest (rejestr kandydatów research/reports/runtime-closure/CANDIDATES.md). |
Integralność zestawu plików wtyczki względem release-manifest.json (S-09) | RUNTIME_VALIDATED | Sesja Round A 47efd323-4ce1-400a-ac83-74893cf82f26; sesje domknięcia runtime na zainstalowanych pakietach wydania (na przykład R01 sesja 878b5e3c-2f9d-46bf-a918-11bb2e227e55, kandydat 3) były planowane z plugin.integrity.reference = manifest; R02 pokazało, że brak wymienionej wtyczki blokuje uruchomienie. |
Walidacja kompilacji w procesie (plugin.build.invalid -> OL_E_BUILD_VALIDATION_FAILED) | RUNTIME_VALIDATED | Sesje macierzy; dwie wcześniejsze sesje plugin.build.invalid z nieaktualną wtyczką |
| Handoff v4 z SHA-256 | RUNTIME_VALIDATED | Testy integracyjne handoff.*; każda sesja |
| Wtyczka nieaktywna bez OmsiLaunch (brak handoffu) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) P01 (zwykłe uruchomienie OMSI, bez sesji OmsiLaunch; PID OMSI 35564): zestaw plików wtyczki i host .NET zostały załadowane, OmsiLaunch.Native.x86.dll nie został załadowany, trzy natywne miejsca modyfikacji zawierały niezmodyfikowane bajty Omsi.exe, a nie pojawił się żaden potok sterowania, dziennik ani diagnostyka |
Polityka wyszukiwania DLL (AssemblyDirectory | System32) (S-24) | STATICALLY_VALIDATED | Atrybuty zestawu |
| Wykrywanie Windows 10+ x64 i odrzucanie innych platform | STATICALLY_VALIDATED | CurrentWindowsX64Platform.Detect |
Kanał sterowania runtime i płaszczyzna sterowania#
| Funkcja | Stan | Dowody |
|---|---|---|
| Integralność transmisji przez skrzynkę runtime (mailbox), powiązanie z sesją | RUNTIME_VALIDATED | Wszystkie sesje runtime; runtime-command.wire-guard, runtime-command.session-binding |
| Odrzucanie spóźnionych odpowiedzi i brak zablokowania kanału po przekroczeniu limitu czasu (S-08) | RUNTIME_VALIDATED | Sesja Round A 173414a5-ee53-4b10-aeb7-046f40b851e9: zewnętrzny klient porzucił road-vehicles.spawn po 250 ms; późniejsze map.read zakończyło się powodzeniem, a kanoniczne zatrzymanie wyczyściło sesję. Odrzucanie zbyt dużych odpowiedzi pozostaje tylko offline. |
Lokalna płaszczyzna sterowania: nazwa potoku per instalacja, powiązanie session_id, typowane błędy procedur obsługi, limit 64 KiB (S-06) | RUNTIME_VALIDATED | Sesja Round A a00c6ff8-9cc9-4bce-ae44-c4314daad7bf: nieprawidłowy protokół, niepowiązane zatrzymanie, żądanie runtime dla niewłaściwej sesji i zbyt duża ramka zostały odrzucone; następne prawidłowe żądanie stanu i powiązane zatrzymanie zakończyły się powodzeniem. Odrzucanie zbyt dużych odpowiedzi pozostaje tylko offline. |
| Slot sekwencji telemetrii, pomijanie rozerwanych próbek, identyczne kolejne zdarzenia (S-25) | STATICALLY_VALIDATED | telemetry.sequence-samples |
Granica API odrzuca internal.* i usuwa wewnętrzne klucze wyniku (S-02) | STATICALLY_VALIDATED | OmsiLaunchService.ExecuteRuntimeAsync; walidacja rejestru |
| Nieprawidłowa lub zbyt duża odpowiedź w skrzynce zwalnia slot; następne żądanie kończy się powodzeniem (przebieg korekcyjny CP-03) | STATICALLY_VALIDATED | runtime-command.oversized-response-rejected; po stronie wtyczki plugin-runtime.oversized-and-abandoned-responses. Niemożliwe do wywołania w runtime: żadna publiczna operacja nie zwraca więcej niż jeden slot (największa około 37.8 KB, domknięcie runtime R03). |
| Każda końcowa ścieżka żądania runtime pozostawia skrzynkę gotową do ponownego użycia: typowane odrzucenie, przekroczenie limitu czasu, anulowanie przez wywołującego, ponownie użyty identyfikator żądania, operacja wewnętrzna, niewłaściwa sesja, brakujący argument (runtime); błędnie sformatowane, zbyt duże, uszkodzone, nieaktualne i osierocone odpowiedzi (offline) | RUNTIME_VALIDATED (ścieżki osiągalne) | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R03 sesja 1134fdc3-a469-4ff5-a511-9964ed65e7cd: każdy błąd był typowany, a następne prawidłowe żądanie kończyło się powodzeniem. Ścieżek uszkodzenia odpowiedzi nie da się wywołać z zewnątrz i pozostają one offline (runtime-command.terminal-paths-leave-channel-usable). |
Zbyt duża odpowiedź płaszczyzny sterowania zwracana jako OL_E_CONTROL_RESPONSE_TOO_LARGE; stan i zdarzenia przycinane od najstarszych do jednej ramki (przebieg korekcyjny CP-04) | STATICALLY_VALIDATED | control-plane.binding-and-typed-errors. Niemożliwe do wywołania w runtime: największa publiczna odpowiedź zaobserwowana w rundzie domknięcia runtime miała około 37.8 KB (R03), a historia zdarzeń sesji pozostaje znacznie poniżej jednej ramki. |
Płaszczyzna sterowania nigdy nie milczy po nawiązaniu połączenia: ramki błędnie sformatowane, zbyt duże, o ujemnej długości, puste, JSON null, bez polecenia, z argumentem niebędącym ciągiem, z nieprawidłowym protokołem, z nieznanym poleceniem, niepowiązane i dla niewłaściwej sesji; obcięte ramki klienta; zawieszeni klienci; klienci odchodzący przed odpowiedzią | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R04 sesja faaaf8a8-126d-4a23-a8f3-381e47c58de6 (kandydat 2, po poprawce BUG-02): każda ramka otrzymała swój typowany błąd, po każdej następowało udane session.status; zawieszony klient nie blokował innych; powiązane zatrzymanie konkurujące z trwającym road-vehicles.spawn zakończyło sesję, a wywołujący spawn otrzymał czysty koniec strumienia. OL_E_TIMEOUT i metadane obcięcia pozostają offline (control-plane.errors-never-silent). |
Harnessy partii runtime (/runtime-batch, /runtime-write-batch, /d3d-batch) | INTERNAL (STATICALLY_VALIDATED) | Wyłącznie harness walidacyjny (S-27) |
Operacje runtime#
| Operacje | Stan | Dowody |
|---|---|---|
time.read, time.set | RUNTIME_VALIDATED | Sesja e5454061 (zapis, SetTime, odczyt kontrolny, przywrócenie) |
weather.read, weather.actual.read | RUNTIME_VALIDATED | Sesja e5454061 |
weather.set | UNAVAILABLE | Odrzucane z OL_E_RUNTIME_SETTING_NOT_PERSISTENT; trwałość FAIL w sesjach e5454061 i 5f641c8d; odrzucenie PASS w 50a1f1ec |
map.read | RUNTIME_VALIDATED | Ponownie zweryfikowane po korekcie globalnego slotu Map w sesji 9dd62626-94c6-4cd7-bb6f-0288327696f4: loaded=true, 19 kafelków, tożsamość Grundorf, nazwa pliku, opis i zakres lat spójne. |
camera.read, camera.set | RUNTIME_VALIDATED | Sesja e5454061 (zapis FOV, odczyt kontrolny, przywrócenie) |
camera.lock, camera.unlock | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) CAM01 sesja 5dfd9b96-fa94-4060-85af-0c9d19823a73: zapisana sytuacja Linie 5 dostarczyła PlayerVehicle (rv-000001); blokady w rodzinach 0, 2 i 1 zostały potwierdzone odczytem kamery; odblokowanie zwolniło politykę |
road-vehicles.read, road-vehicles.list, road-vehicle.read | RUNTIME_VALIDATED | Sesje e5454061, 5f641c8d |
| Czas życia uchwytów RoadVehicle i wykrywanie nieaktualnych uchwytów (RV-002) | PARTIAL | Brak bezpiecznego źródła usuwania: w trzech oknach domknięcia runtime (H01, H01b, H01c, do 180 s, ze skokiem zegara) populacje RoadVehicle i Human w Grundorf jedynie rosły; żadna publiczna operacja nie usuwa obiektu. Wykrywanie nieaktualnych uchwytów pozostaje offline (S-19). Reguła generacji/ABA jest zweryfikowana w runtime dla tekstur D3D (H02). |
road-vehicles.spawn (RV-003) | RUNTIME_VALIDATED | Sesja 5f641c8d: 2 -> 3, rv-000003 rozwiązany |
road-vehicles.place-random | RUNTIME_VALIDATED | Macierz: kolekcja 2 -> 4 |
player-vehicle.read | RUNTIME_VALIDATED | Round A RA-002 sesja 9dd62626-94c6-4cd7-bb6f-0288327696f4 (present=false); domknięcie runtime CAM01 sesja 5dfd9b96-fa94-4060-85af-0c9d19823a73 odczytało obecny PlayerVehicle z zapisanej sytuacji |
humans.read, humans.list, human.read | RUNTIME_VALIDATED | Sesja e5454061 |
timetable.read, timetable.*.list, timetable.logs.read | RUNTIME_VALIDATED | Sesja e5454061; wpisy tras: 91 rekordów |
Obcinanie list ograniczonych zamiast OL_E_RUNTIME_RESPONSE_TOO_LARGE (audyt dokumentacji BUG-05) | RUNTIME_VALIDATED | Ponowny test audytu dokumentacji na pakiecie 9F8CC87B..., zapisana sytuacja situations\Linie 5.osn (Berlin-Spandau): timetable.track-entries.list zwróciło 137 z 825 wpisów, a timetable.tour-entries.list 224 z 4747, z truncated=true (sesje 08df97b8-06cc-4faa-be8b-f49ca1538dce i ponowny test doc-capture); przed poprawką obie operacje kończyły się błędem OL_E_RUNTIME_RESPONSE_TOO_LARGE (sesja f51dcb59-a723-4570-b6c5-b61e628a7993). Dowody: research/reports/documentation-audit/runtime/. |
drivers.read, tickets.read | RUNTIME_VALIDATED | Sesja e5454061 |
vehicle.variables.list, vehicle.variable.get, vehicle.variable.set | RUNTIME_VALIDATED | Refresh_Strings 0 -> 1 -> 0 w sesji runtime zapisanej jako Runtime-Proven w research/reports/OmsiHook-Parity-Wave-A-Closure-001.md (wyliczono 1,025 nazw, zgodnie z OMSILAUNCH-AUTONOMOUS-BUILD-001.md); raport nie zapisuje identyfikatora sesji |
vehicle.string-variables.list, vehicle.string-variable.get | RUNTIME_VALIDATED (tylko odczyt) | Sesja e5454061; zapisy BI-004 UNAVAILABLE |
vehicle.constants.list, vehicle.constant.get, vehicle.curves.list, vehicle.curve.evaluate, vehicle.hofs.read | RUNTIME_VALIDATED | Sesja e5454061 |
d3d.status, d3d.texture.create, d3d.texture.describe, d3d.texture.update, d3d.texture.release, odrzucanie zwolnionych uchwytów | RUNTIME_VALIDATED | Macierz „basic D3D texture lifecycle”; uwagi do możliwości runtime.d3d.* (sesja 4378899d dla slotu urządzenia) |
| Zdarzenia utraty / resetu / przywrócenia urządzenia D3D, unieważnianie generacji (RV-007) | RUNTIME_VALIDATED (resetting/restored) | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) D01 sesja fc07946e-58dd-4ddc-af7e-10c7e61a899a: tymczasowa zmiana trybu wyświetlania (źródło testowe, nigdy publiczne, bez syntetycznego wywołania resetu) spowodowała dwukrotny reset urządzenia przez OMSI. Emitowane były d3d.resetting/d3d.restored, generacja zwiększała się w każdym cyklu, żądanie w trakcie resetu otrzymało OL_E_D3D_RESET_IN_PROGRESS, tekstura sprzed utraty została odrzucona z OL_E_D3D_STALE_RESOURCE_HANDLE, a nowe tekstury działały. OMSI przeszedł bezpośrednio do DEVICENOTRESET, więc odrębne przejście lost nie wystąpiło. Jedna próba spowodowała awarię OMSI w DSound.dll (zmiana punktu końcowego audio wyświetlacza; właściciel dokonał dokładnego przywrócenia). |
events.read / events watch | RUNTIME_VALIDATED | Każda sesja (cykl życia sterowany telemetrią) |
internal.road-vehicles.make-basic | INTERNAL | Nieosiągalne przez interfejsy publiczne |
Funkcje uruchamiania#
| Funkcja | Stan | Dowody |
|---|---|---|
/set i settings profilu (configuration.options.semantic) | RUNTIME_VALIDATED | RV-005 |
| Profile sesji (ścisły kompilator, konflikty, ograniczenie ścieżek, w tym punkty ponownej analizy S-17) | RUNTIME_VALIDATED (zakres uruchomienia z profilu) | Round A RA-009, Test-Beta3SessionProfile.ps1, 2026-09-22: zarządzany ekran startowy, wyłączone tekstury internetowe i ustawienie wstępne graphics.maxFPS=30; options.cfg przywrócony, fixture nienaruszony, brak dziennika, dzierżawy i procesu. |
Wczytywanie /spec (limit 1 MiB, odrzucanie nieznanych właściwości, przestrzeganie limitów czasu) (S-20) | STATICALLY_VALIDATED | Testy cli.* |
Zarządzany ekran startowy PTB/ENG/DEU/FRA | RUNTIME_VALIDATED | RV-006 |
Tekstury internetowe Disabled (wyłączenie pobierania w procesie) | STATICALLY_VALIDATED | Ścieżka telemetrii internet-textures.suppressed; nie powołano się na nią w macierzy |
Ochrona celu .itx tekstur internetowych (Round A RA-011/RA-012, przebieg korekcyjny CP-05, addendum E): kanoniczny katalog główny, kanoniczny cel, ścieżka względna, reguły segmentów; kwalifikuje się tylko segment katalogu o nazwie texture poniżej katalogu głównego (mytexture, texture_backup, texture2 ani texture w bezwzględnej ścieżce katalogu głównego nie); cele z przechodzeniem po katalogach, bezwzględne, względne wobec katalogu głównego i będące połączeniami (junction) są odrzucane; różne zapisy sprowadzają się do jednej kanonicznej ścieżki transakcji | STATICALLY_VALIDATED | presentation.itx-target-root-normalization, presentation.itx-target-guard-rejections |
Tekstury internetowe Override | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): I01 sesja 6eac2dac-c7e9-49a1-acbf-2a5d59c1c0d3: moduł pobierania OMSI wysłał HEAD i GET do serwera loopback dla istniejącego i pierwotnie nieobecnego celu, zapisał oba, a po kanonicznym zatrzymaniu nieobecny cel został usunięty, a istniejący przywrócony bajt w bajt; I02 sesja a8f2b720-e41a-4e34-86bf-125bf519a5bd: to samo po zabiciu właściciela i OMSI, przez /recover. |
/date, /time, /year, flagi pogody, flagi pojazdu gracza (STATICALLY_PARTIAL) | UNAVAILABLE | Planista oznacza plan jako niemożliwy do uruchomienia (OL_E_CAPABILITY_UNAVAILABLE); wtyczka odrzuca tryby daty/czasu inne niż Unset |
/entrypoint:<identity> (BI-001) | PARTIAL | Plan niemożliwy do uruchomienia (RUNTIME_PARTIAL) |
/last (LastMapState, BI-006) | UNAVAILABLE | UNSUPPORTED_FOR_CURRENT_PROFILE |
Nakładki klawiatury/kontrolera InputSpec (BI-005) | UNAVAILABLE | Parsery istnieją; nie są stosowane |
Przypisanie PlayerVehicle bez interakcji (BI-007), SetActualDateTime (BI-002), sterowanie pogodą ICAO (BI-003), zapisy zmiennych tekstowych (BI-004), przenoszenie między kafelkami (BI-008) | UNAVAILABLE | Zablokowane do czasu zamknięcia implementacji |
Wykrywanie /list (content.*) | STATICALLY_VALIDATED; zaobserwowano w runtime | discovery.fixture; domknięcie runtime użyło /list:situations na autoryzowanej instalacji (tożsamości, w tym nie-ASCII situations\Nur für Fortgeschrittene.osn) |
/quiet, /serve | UNAVAILABLE | ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT |
Flagi diagnostyki (/log, /logall, /omsi-logall, /verbose, /trace*) | PARTIAL | Przenoszone w DiagnosticsSpec; efekt ograniczony do śladu hosta |
Host Windows i obszar powiadomień#
| Funkcja | Stan | Dowody |
|---|---|---|
Wskaźnik w obszarze powiadomień (OmsiLaunchW.exe): ikona w obszarze powiadomień, stan, „End session” z potwierdzeniem i Cancel, ponowne uruchomienie Eksploratora (Explorer), okna dialogowe otwarte w chwili nadejścia zatrzymania, zatrzymanie w trakcie /observe-seconds, okna dialogowe błędu (S-16) | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) na kandydacie 3 (po poprawce BUG-04): T01 sesja 6d827c13-caf8-4221-832a-c91d26f130e0 (ikona znaleziona w Shell_TrayWnd, okno stanu pt-BR, ponowne uruchomienie Eksploratora ponownie dodało ikonę, Cancel zachował sesję, End session zakończył ją w 607 ms i usunął ikonę); T02 sesja 0939a151-bf03-4ca9-8294-8b0088df7d30 (okno stanu i potwierdzenia otwarte podczas zatrzymania przez potok); T03 sesja 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; T04 sesja 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (okna dialogowe błędu argumentów, braku aktywnej sesji i błędu sesji z kodami). Kody wyjścia shimu 100-106 nie wystąpiły. |
Ponowne uruchomienie /silent zwracające 0 po starcie hosta | RUNTIME_VALIDATED | Runda domknięcia runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) T04 sesja 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (kandydat 3, po poprawce BUG-03): program uruchamiający zwrócił 0, a wywołujący przechwytujący jego wyjście otrzymał koniec strumienia po 0.4 s, podczas gdy sesja OmsiLaunchW działała bez okna konsoli; sesja zatrzymała się z dokładnym przywróceniem |
| Kody wyjścia shimu programu rozruchowego (bootstrapper) 100-106, dynamiczny bufor ścieżki (S-21) | STATICALLY_VALIDATED | Test-ReleaseIdentity.ps1 |
Ponowny test audytu dokumentacji (domknięcie dokumentacji 0.1.0-beta3)#
Pakiet 9F8CC87B238A677F7238C262E8FE0496832263B6C0A58083409EB485C03C6F17 na autoryzowanej instalacji, przy czym BUG-05, BUG-06, BUG-07 i test dymny powtórzono na pakiecie końcowym B8462ED6C596843E778C33DF4E93EBA3ACC875B7E43B011D60E5A21A16032E35 (R01 sesja 56cdee4b-9160-49fc-b0fd-5134ff9fe2d0, sesja doc capture 40046805-5337-48fc-90dd-e7d3500ed3b4); dowody w research/reports/documentation-audit/runtime/ i research/reports/OMSILAUNCH-BETA3-FINAL-DOCUMENTATION-AUDIT.md.
| Pozycja | Stan | Dowody |
|---|---|---|
OmsiLaunchW.exe zgłasza uruchomienie niemożliwe do uruchomienia (BUG-06) | RUNTIME_VALIDATED | /new ... /date:2026-09-20 w OmsiLaunchW.exe: okno dialogowe Requested capability unavailable: world.explicit-date / Code: OL_E_CAPABILITY_UNAVAILABLE, kod wyjścia 1, brak procesu OMSI (doc-bug06-dialog.json; zainstalowany pakiet 9f8cc87b..., zgodnie z projektem nie jest tworzona żadna sesja) |
| Ogłaszane ścieżki poleceń CLI są rzeczywistą składnią (BUG-07) | RUNTIME_VALIDATED | Każda alternatywa ścieżki poleceń klienta wypisywana przez zainstalowane help --json i capabilities --json (32 deskryptory) została zaakceptowana przez zainstalowany parser; żadna nie spowodowała wypisania tekstu pomocy (doc-bug07-routes.json; zainstalowany pakiet 9f8cc87b...) |
| Każdy wiersz poleceń ze strony przykładów CLI | RUNTIME_VALIDATED | 43 wiersze klienta wykonane względem sesji właściciela 08df97b8-06cc-4faa-be8b-f49ca1538dce (zapisana sytuacja; events watch pominięto, ponieważ działa do Ctrl+C), zakończone własnym session stop strony (kod wyjścia właściciela 0). Wszystkie były zgodne ze stroną z wyjątkiem vehicle.constant.get z name=max_speed, stałej, której ten autobus nie ma; strona używa teraz antrieb_getr_version. Przykład profilu grundorf-quick nie dał się zaplanować (podwojone ukośniki odwrotne w zwykłych skalarach YAML) i został poprawiony; każdy wiersz bez sesji uruchomiono z katalogu głównego instalacji, wiersze uruchomienia z /plan (doc-client-examples.json, doc-examples-no-session.json, doc-profile-example.json) |
Test dymny NEW_MAP z /observe-seconds na pakiecie końcowym | RUNTIME_VALIDATED | R01 sesja 08570134-cfd8-4726-a472-5f6dd2f04c8f, czysty stan końcowy (research/reports/runtime-closure/doc-R01-*) |
Skonsolidowana lista RUNTIME_VALIDATION_REQUIRED#
Runda domknięcia runtime z 2026-09-23 zamknęła poprzednią kolejkę. Pozostaje ona pusta z wyjątkiem pozycji, których nie da się bezpiecznie wywołać na tej instalacji:
- Rozgrywka, odczyty, polecenia i zatrzymanie dla Steam LAA: wymagają autentycznej instalacji Steam (środowisko; powyższy wiersz ma stan
PARTIAL). - Usuwanie RoadVehicle i Human (RV-002): brak bezpiecznego źródła usuwania (powyższy wiersz ma stan
PARTIAL).
Pozycje, które pozostają offline, ponieważ nie da się ich wywołać spoza produktu, są oznaczone w swoich wierszach i nie należą do kolejki: uszkodzenie odpowiedzi w skrzynce, zbyt duże odpowiedzi, obcinanie historii zdarzeń, przejście D3D lost, wylogowanie, kody wyjścia shimu 100-106 oraz odroczona gałąź odzyskiwania sprzed odcisków.
Powiązane: możliwości, znane ograniczenia, transakcje i odzyskiwanie, zgodność.