Stato della validazione a runtime
Traduzione della pagina originale in inglese di OmsiLaunch 0.1.0-beta3. La pagina inglese è normativa: in caso di differenze prevalgono la pagina inglese e il codice.
Questa pagina è l'unica tabella delle evidenze per OmsiLaunch 0.1.0-beta3. Ogni riga indica una capability (funzionalità) o una caratteristica e il relativo stato di evidenza. RUNTIME_VALIDATED può citare research/reports/OMSILAUNCH-RUNTIME-VALIDATION-MATRIX.md (id della matrice RV-nnn, blocchi BI-nnn, id di sessione della sua tabella di esecuzione del 2026-09-20) oppure il report post-Fable Round A research/reports/OMSILAUNCH-RUNTIME-VALIDATION-ROUND-A-001.md (RA-nnn); tutto il resto deriva dal codice e dalle suite di test offline. Il ciclo di hardening del 2026-09-21 (research/reports/OMSILAUNCH-SECURITY-ROBUSTNESS-REVIEW-001.md, rilievi da S-01 a S-34) ha modificato il comportamento di ripristino, recupero, piano di controllo e confini; tali modifiche avevano solo evidenza offline. Il ciclo finale di chiusura a runtime del 2026-09-23 (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md, id di scenario come F01, S05, T01, candidati 2 e 3) le ha eseguite in sessioni reali sull'installazione autorizzata; le righe promosse da quel ciclo citano i relativi id di scenario e id di sessione. RUNTIME_VALIDATED può quindi citare anche quel report.
Stati di evidenza:
| Stato | Significato |
|---|---|
| RUNTIME_VALIDATED | Osservato in una sessione canonica registrata nella matrice (id e sessione citati). |
| STATICALLY_VALIDATED | Implementato e coperto da test offline (tools/OmsiLaunch.TestHost, tests/*), non osservato in una sessione reale dall'ultima modifica. |
| PARTIAL | Implementato, ma l'evidenza è incompleta o contraddetta, oppure il comportamento è notoriamente limitato. |
| RUNTIME_VALIDATION_REQUIRED | Comportamento modificato o mai osservato; deve essere validato in una sessione reale prima di poter essere promosso. |
| UNAVAILABLE | Non implementato o deliberatamente rifiutato. |
Ciclo di vita della sessione e transazione#
| Funzionalità | Stato | Evidenza |
|---|---|---|
Avvio headless NEW_MAP (world.new-map, world.presented-entrypoint, boot.headless-start) | RUNTIME_VALIDATED | Matrice, sezione "Existing Runtime Evidence"; sessioni e5454061, 1e8e0548, 5f641c8d, 50a1f1ec (Grundorf) |
Avvio SAVED_SITUATION (world.saved-situation) | RUNTIME_VALIDATED | Nota di GetCapabilitiesAsync e matrice (Berlin-Spandau, modulo Start e Button1Click) |
Terminazione forzata tramite session.stop e ripristino esatto | RUNTIME_VALIDATED | Sessione 50a1f1ec: l'arresto normale non ha lasciato alcun processo OMSI né alcun journal |
Idempotenza dell'avvio (PluginStart ripetuto) | RUNTIME_VALIDATED | Sessione 50a1f1ec |
Overlay semantico di options.cfg e ripristino esatto a livello di byte (RV-005) | RUNTIME_VALIDATED | Sessione 1e8e0548: AIMaxCountRandom 150/200 più coda preservata; hash ripristinato A12982C3... |
| Splash screen gestita più transazione di overlay (RV-006) | RUNTIME_VALIDATED | Matrice RV-006 PASS (batch di presentazione: gestita predefinita, gestita personalizzata, Unset); sessioni di Release Presentation 001 388cf5d2-7310-4301-9313-e62c4c08a346, 794cae34-a2ac-4fcf-8981-f142ac14c308, 12a74b24-6c78-4863-8ffe-947651212eeb |
| Recupero dopo uscita anticipata (RV-008, terminazione forzata di OMSI) | RUNTIME_VALIDATED | Sessioni post-Fable Round A 9e7cad79-9c35-4f93-bfc8-71f455513f82 (dopo il gameplay) e dcac497e-ff35-4c97-b5e4-98b660f88032 (dopo world.starting, prima del gameplay): owner completato, journal/lease rimossi, options.cfg e stato della splash screen originariamente assente corrispondenti agli snapshot. L'errore di avvio nativo e l'iniezione di un ripristino fallito restano separati. |
| Confini di errore di avvio e di ripristino deliberatamente fallito (parte restante di RV-008) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): il timeout di avvio SF01 sessione 0b21c664-b0b2-46b2-9b6b-def536765fff e l'errore del mondo segnalato dal plugin SF02 sessione 53358c75-469b-41d5-9ddb-cdb1d1ff828d si sono conclusi in Failed con codici tipizzati e un ripristino esatto; il ripristino fallito F01 sessione d4194a69-d858-42fe-97c7-ce93ccbdc3f6 (un file di proprietà della sessione bloccato da un processo di solo test durante l'arresto) ha restituito OL_E_RESTORE_FAILED, ha conservato journal e backup, e /recover ha ripristinato esattamente lo stato precedente alla sessione. I produttori di errori sono esclusivamente infrastruttura di test. |
Ripristino degli artefatti di sessione per i target .itx e Texture\standard.ipr (S-01) | RUNTIME_VALIDATED | Il Round A ha ripristinato percorsi esistenti in 47efd323-4ce1-400a-ac83-74893cf82f26; ha creato e rimosso un target registrato, originariamente assente, all'arresto normale in 8d9bdedf-d7de-4c64-a8b1-627ae4deff7b; e ha ripetuto tale pulizia attraverso l'interruzione dell'owner più /recover in aa9a45d4-302e-4cf5-8490-f5a1c9e44b79. |
closecheck come eliminazione di sessione e rimozione del marcatore obsoleto (S-13) | RUNTIME_VALIDATED | Le sessioni del Round A, tra cui 47efd323-4ce1-400a-ac83-74893cf82f26, hanno registrato closecheck.stale-removed seguito da restore.session-artifact-removed; non è rimasto alcun journal. |
| Recupero anticipato prima della costruzione dell'overlay, recupero differito pre-fingerprint (S-05) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) S05: owner della sessione f755ed51-b85c-4df2-b062-5bf65c768b32 terminato con un journal in sospeso (maxFPS=77 attivo); l'avvio successivo, sessione 291ea22b-f9b3-42a4-be07-7f0c055c7113, ha registrato PENDING_JOURNAL_RECOVERED prima di TRANSACTION_STARTED, è stato eseguito con il proprio overlay (88) e si è concluso identico a livello di byte allo stato precedente la prima sessione. Il ramo differito pre-fingerprint resta offline (transaction.legacy-journal-ownership-migration). |
| Ripristino dei metadati (timestamp, attributi, sola lettura), flush write-through, pulizia dei backup (S-12) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S12a sessione 40de172b-e144-4f0a-9207-09c80b5d7df7 (timestamp noto di options.cfg) e S12b sessione d9e2534b-3cb3-47ef-9cbd-1b92c62a35e7 (timestamp più ReadOnly): l'overlay era attivo durante la sessione (ReadOnly rimosso per OMSI), e byte, ora dell'ultima scrittura, ora di creazione e attributi sono stati ripristinati esattamente; non è rimasta alcuna directory di backup. |
/recover sotto il lease dell'installazione; rifiuto nella finestra pre-PID (S-04) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): S04 sessione 1fb2aad5-2985-4fa4-9c5a-6186f51d37b8: con un owner attivo /recovery-status e /recover hanno restituito OL_E_INSTALLATION_BUSY e un secondo avvio è stato rifiutato; con l'owner terminato e OMSI lasciato in esecuzione, /recover e un nuovo avvio sono stati rifiutati finché OMSI non è uscito, dopodiché /recover ha ripristinato esattamente. S04b sessione 5e57ca51-ab5e-4e94-a0d0-531735ee4057: un journal pre-PID (iniezione di guasti dell'harness) è stato rifiutato mentre era in esecuzione un qualsiasi Omsi.exe dalla radice ed è stato recuperato dopo l'uscita; un closecheck scritto da quell'OMSI viene conservato con OL_W_RESTORE_FOREIGN_FILE_RETAINED (documentato, conservativo). |
Ripianificazione in StartSessionAsync, OL_E_PLAN_NOT_RUNNABLE su un piano obsoleto (S-15) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R02: con un plugin elencato nel manifest spostato altrove dopo la pianificazione, StartSessionAsync ha sollevato OL_E_PLAN_NOT_RUNNABLE: OL_E_PERMANENT_PLUGIN_MISSING prima che esistesse qualsiasi sessione (piano 4797c9ce-6eb3-47b1-b09d-03562dd3bd44, candidato 2, dopo la correzione BUG-01) |
Ciclo di vita dell'owner: arresto tramite pipe, Ctrl+C, arresto dall'area di notifica, uscita di OMSI, owner terminato, /observe-seconds | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): arresto tramite pipe durante /observe-seconds L06 sessione 300a563e-7b0e-4f01-afbd-9e15df32c7e6; Ctrl+C L03 sessione 5e2aca54-bae2-4fc6-a106-93699e755bfc (owner terminato 577 ms dopo il segnale); OMSI terminato L05a sessione d69658f9-16f6-43e9-8e36-682114b97e14; finestra principale di OMSI chiusa L05b sessione 76b11ba4-8ddb-4611-9a1c-8be317cd0337 (OMSI ignora WM_CLOSE; concluso con terminazione forzata); arresto dall'area di notifica T01/T03 sessioni 6d827c13-caf8-4221-832a-c91d26f130e0, 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; owner terminato S05. Ogni percorso si è concluso con un ripristino esatto. Se l'owner viene terminato di colpo, Omsi.exe continua a essere eseguito (per scelta progettuale); il recupero viene rifiutato finché non esce (S04). |
| Budget ProcessExit di 4 s alla chiusura della console o al logoff | RUNTIME_VALIDATED (chiusura della console) | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) L04 sessione 559d0f1d-7d5b-4b6b-b70c-0acb272d53db: finestra della console chiusa; il ripristino si è completato entro il budget, la sessione ha raggiunto Completed senza journal; Windows ha terminato l'owner circa 5 s dopo la chiusura (uscita 0xC000013A). Il logoff non è stato verificato. |
| Arresto cooperativo tramite WM_CLOSE | UNAVAILABLE | Non implementato (decisione di prodotto, S-11). Chiusura a runtime L05b: OMSI non si è chiuso entro 30 s dall'invio di WM_CLOSE alla sua finestra principale. ShutdownTimeoutSeconds non viene utilizzato. |
Semantica del lease dell'installazione (semaforo Local\) | STATICALLY_VALIDATED | lease.cross-thread-release; limiti documentati come rischio accettato (S-18) |
| Conservazione di CP1252 durante la modifica dei file OMSI (S-07) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) C01 sessione 84a71235-d618-4917-9af4-c2a6025742f4: options.cfg con un valore CP1252 accentato (inclusi 0x80 e 0x96) modificato tramite /set; il file attivo ha mantenuto i byte CP1252 senza EF BF BD, e il file era identico a livello di byte dopo la sessione |
| Individuazione dei contenuti che salta i reparse point (S-23) | STATICALLY_VALIDATED | Test discovery.* |
| Conservazione della diagnostica (le 50 sessioni più recenti) (S-26) | STATICALLY_VALIDATED | HostTrace.Prune |
| I blocchi transitori dei file (antivirus, indicizzatore) su scritture ed eliminazioni della transazione vengono ritentati per circa 1.5 s; i blocchi persistenti continuano a fallire (ciclo di correzione CP-10) | STATICALLY_VALIDATED | transaction.transient-lock-retried, transaction.restore-failure-recovery (il blocco persistente continua a fallire); due errori offline intermittenti osservati prima della correzione, nessuno in 16 esecuzioni successive |
Plugin permanente e piattaforma#
| Funzionalità | Stato | Evidenza |
|---|---|---|
Profilo Omsi23004_692EBFBF (692EBFBF...6243, 8,503,440 byte) | RUNTIME_VALIDATED | Ogni sessione della matrice |
Eseguibile Steam LAA (7DAB063D...D759) | PARTIAL | Chiusura a runtime LAA01 sessione 9ec975ca-7820-47be-b806-5f5a94aad4ab: una copia controllata (derivata dall'originale non modificato dell'installazione con IMAGE_FILE_LARGE_ADDRESS_AWARE e un checksum PE ricalcolato; 8,503,440 byte, characteristics 0x81AE) corrispondeva all'hash, il fingerprint è stato accettato e il piano era eseguibile. L'immagine è l'eseguibile Steam originale protetto da DRM: al di fuori di un'installazione Steam autentica passa il controllo al client Steam ed esce, quindi la sessione è fallita con OL_E_PROCESS_EXITED_EARLY e un ripristino esatto. Gameplay, letture, comandi e arresto richiedono un'installazione Steam autentica (ENVIRONMENT). |
Identità dell'installazione: lease e nome della pipe di controllo derivano da un'unica definizione, InstallationPaths.IdentityKey (C:\OMSI = C:\OMSI\ = C:\OMSI\. = C:\foo\..\OMSI = varianti di maiuscole/minuscole; C:\OMSI-A differisce da C:\OMSI-B) (ciclo di correzione CP-02, addendum A/B) | STATICALLY_VALIDATED; osservato a runtime | lease.root-normalization, paths.installation-identity-and-containment. Chiusura a runtime ID01: mentre era in esecuzione la sessione 01bfc780-10ef-4390-b700-c08bf809a42f, i secondi avvii e /recovery-status con la radice scritta con \., con un segmento .., in minuscolo e in maiuscolo sono stati rifiutati (OL_E_SESSION_ALREADY_ACTIVE, OL_E_INSTALLATION_BUSY); lo stesso per la grafia con separatore finale (ID01b, sessione ba3ea7c9-9826-453d-b447-81c48763e18f). |
Coerenza del pacchetto di rilascio: staging pulito, ricevuta di build di Native.x86 (contenuto, non timestamp), manifest senza BOM, integrità della chiusura in staging e dell'archivio riestratto, l'installer copia il manifest (ciclo di correzione CP-01, Round A RA-007, addendum F/G/H) | STATICALLY_VALIDATED; osservato nell'installazione | Test-PackagingPipeline.ps1 (candidato coerente più 16 casi negativi), runtime.release-manifest-bom, runtime.release-manifest-strict-parser. Chiusura a runtime: i pacchetti installati nell'installazione autorizzata erano coerenti con i propri manifest, e ogni sessione è stata pianificata con plugin.integrity.reference = manifest (registro dei candidati research/reports/runtime-closure/CANDIDATES.md). |
Integrità della chiusura del plugin rispetto a release-manifest.json (S-09) | RUNTIME_VALIDATED | Sessione del Round A 47efd323-4ce1-400a-ac83-74893cf82f26; le sessioni di chiusura a runtime sui pacchetti di rilascio installati (per esempio R01 sessione 878b5e3c-2f9d-46bf-a918-11bb2e227e55, candidato 3) sono state pianificate con plugin.integrity.reference = manifest; R02 ha mostrato che un plugin elencato mancante blocca l'avvio. |
Validazione del build in-process (plugin.build.invalid -> OL_E_BUILD_VALIDATION_FAILED) | RUNTIME_VALIDATED | Sessioni della matrice; due sessioni precedenti con plugin.build.invalid su un plugin obsoleto |
| Handoff v4 con SHA-256 | RUNTIME_VALIDATED | Test di integrazione handoff.*; ogni sessione |
| Plugin inerte senza OmsiLaunch (nessun handoff) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) P01 (avvio semplice di OMSI, nessuna sessione OmsiLaunch; pid di OMSI 35564): la chiusura del plugin e l'host .NET sono stati caricati, OmsiLaunch.Native.x86.dll non è stato caricato, i tre punti di patch nativi contenevano i byte non modificati di Omsi.exe, e non sono comparsi né pipe di controllo, né journal, né diagnostica |
Criterio di ricerca delle DLL (AssemblyDirectory | System32) (S-24) | STATICALLY_VALIDATED | Attributi dell'assembly |
| Rilevamento di Windows 10+ x64 e rifiuto delle altre piattaforme | STATICALLY_VALIDATED | CurrentWindowsX64Platform.Detect |
Canale di controllo runtime e piano di controllo#
| Funzionalità | Stato | Evidenza |
|---|---|---|
| Integrità del formato di trasmissione della mailbox, associazione alla sessione | RUNTIME_VALIDATED | Tutte le sessioni runtime; runtime-command.wire-guard, runtime-command.session-binding |
| Scarto delle risposte tardive e nessun blocco del canale dopo un timeout (S-08) | RUNTIME_VALIDATED | Sessione del Round A 173414a5-ee53-4b10-aeb7-046f40b851e9: un client esterno ha abbandonato road-vehicles.spawn dopo 250 ms; un map.read successivo è riuscito e l'arresto canonico ha ripulito la sessione. Il rifiuto delle risposte sovradimensionate resta solo offline. |
Piano di controllo locale: nome della pipe per installazione, associazione a session_id, errori tipizzati degli handler, limite di 64 KiB (S-06) | RUNTIME_VALIDATED | Sessione del Round A a00c6ff8-9cc9-4bce-ae44-c4314daad7bf: protocollo non valido, arresto non associato, richiesta runtime per la sessione errata e frame sovradimensionato sono stati rifiutati; una successiva richiesta di stato valida e un arresto associato sono riusciti. Il rifiuto delle risposte sovradimensionate resta solo offline. |
| Slot di telemetria con sequenza, salto dei campioni incoerenti, eventi consecutivi identici (S-25) | STATICALLY_VALIDATED | telemetry.sequence-samples |
Il confine dell'API rifiuta internal.* e rimuove le chiavi interne dai risultati (S-02) | STATICALLY_VALIDATED | OmsiLaunchService.ExecuteRuntimeAsync; validazione del registro |
| Una risposta della mailbox non valida o sovradimensionata libera lo slot; la richiesta successiva riesce (ciclo di correzione CP-03) | STATICALLY_VALIDATED | runtime-command.oversized-response-rejected; lato plugin plugin-runtime.oversized-and-abandoned-responses. Non producibile a runtime: nessuna operazione pubblica restituisce più di uno slot (la più grande circa 37.8 KB, chiusura a runtime R03). |
| Ogni percorso terminale di una richiesta runtime lascia la mailbox riutilizzabile: rifiuto tipizzato, timeout, annullamento da parte del chiamante, id di richiesta riutilizzato, operazione interna, sessione errata, argomento mancante (runtime); risposte malformate, sovradimensionate, corrotte, obsolete e orfane (offline) | RUNTIME_VALIDATED (percorsi raggiungibili) | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R03 sessione 1134fdc3-a469-4ff5-a511-9964ed65e7cd: ogni errore era tipizzato e la richiesta valida successiva è riuscita. I percorsi di corruzione delle risposte non possono essere prodotti dall'esterno e restano offline (runtime-command.terminal-paths-leave-channel-usable). |
Risposta sovradimensionata del piano di controllo restituita come OL_E_CONTROL_RESPONSE_TOO_LARGE; stato/eventi ridotti a un frame a partire dai più vecchi (ciclo di correzione CP-04) | STATICALLY_VALIDATED | control-plane.binding-and-typed-errors. Non producibile a runtime: la risposta pubblica più grande osservata nel ciclo di chiusura a runtime era di circa 37.8 KB (R03), e la cronologia degli eventi di una sessione resta molto al di sotto di un frame. |
Il piano di controllo non resta mai silente una volta connesso: frame malformati, sovradimensionati, con lunghezza negativa, vuoti, JSON null, senza comando, con argomento non stringa, con protocollo non valido, con comando sconosciuto, non associati e per la sessione errata; frame client troncati; client bloccati; client che si disconnettono prima della risposta | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) R04 sessione faaaf8a8-126d-4a23-a8f3-381e47c58de6 (candidato 2, dopo la correzione BUG-02): ogni frame ha ricevuto il proprio errore tipizzato, ciascuno seguito da un session.status riuscito; un client bloccato non ha bloccato gli altri; un arresto associato in concorrenza con un road-vehicles.spawn in corso ha terminato la sessione e il chiamante dello spawn ha ricevuto una fine di stream pulita. OL_E_TIMEOUT e i metadati di troncamento restano offline (control-plane.errors-never-silent). |
Harness batch runtime (/runtime-batch, /runtime-write-batch, /d3d-batch) | INTERNAL (STATICALLY_VALIDATED) | Solo harness di validazione (S-27) |
Operazioni runtime#
| Operazione/i | Stato | Evidenza |
|---|---|---|
time.read, time.set | RUNTIME_VALIDATED | Sessione e5454061 (scrittura, SetTime, rilettura, ripristino) |
weather.read, weather.actual.read | RUNTIME_VALIDATED | Sessione e5454061 |
weather.set | UNAVAILABLE | Rifiutato con OL_E_RUNTIME_SETTING_NOT_PERSISTENT; persistenza FAIL nelle sessioni e5454061 e 5f641c8d; rifiuto PASS in 50a1f1ec |
map.read | RUNTIME_VALIDATED | Rivalidato dopo la correzione dello slot globale Map nella sessione 9dd62626-94c6-4cd7-bb6f-0288327696f4: loaded=true, 19 tile, identità Grundorf, nome file, descrizione e intervallo di anni coerenti. |
camera.read, camera.set | RUNTIME_VALIDATED | Sessione e5454061 (scrittura del FOV, rilettura, ripristino) |
camera.lock, camera.unlock | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) CAM01 sessione 5dfd9b96-fa94-4060-85af-0c9d19823a73: la situazione salvata Linie 5 ha fornito un PlayerVehicle (rv-000001); i blocchi sulle famiglie 0, 2 e 1 sono stati confermati dalla rilettura della telecamera; lo sblocco ha rilasciato il criterio |
road-vehicles.read, road-vehicles.list, road-vehicle.read | RUNTIME_VALIDATED | Sessioni e5454061, 5f641c8d |
| Durata degli handle RoadVehicle e rilevamento degli handle obsoleti (RV-002) | PARTIAL | Nessun produttore sicuro di rimozioni: in tre finestre di chiusura a runtime (H01, H01b, H01c, fino a 180 s, con un salto dell'orologio) le popolazioni RoadVehicle e Human di Grundorf sono solo cresciute; nessuna operazione pubblica rimuove un oggetto. Il rilevamento degli handle obsoleti resta offline (S-19). La regola generazione/ABA è validata a runtime per le texture D3D (H02). |
road-vehicles.spawn (RV-003) | RUNTIME_VALIDATED | Sessione 5f641c8d: 2 -> 3, rv-000003 risolto |
road-vehicles.place-random | RUNTIME_VALIDATED | Matrice: collezione 2 -> 4 |
player-vehicle.read | RUNTIME_VALIDATED | Round A RA-002 sessione 9dd62626-94c6-4cd7-bb6f-0288327696f4 (present=false); chiusura a runtime CAM01 sessione 5dfd9b96-fa94-4060-85af-0c9d19823a73 ha letto un PlayerVehicle presente da una situazione salvata |
humans.read, humans.list, human.read | RUNTIME_VALIDATED | Sessione e5454061 |
timetable.read, timetable.*.list, timetable.logs.read | RUNTIME_VALIDATED | Sessione e5454061; voci di tracciato (track entry) 91 record |
Troncamento degli elenchi limitati invece di OL_E_RUNTIME_RESPONSE_TOO_LARGE (audit della documentazione BUG-05) | RUNTIME_VALIDATED | Nuovo test dell'audit della documentazione sul pacchetto 9F8CC87B..., situazione salvata situations\Linie 5.osn (Berlin-Spandau): timetable.track-entries.list ha restituito 137 di 825 voci e timetable.tour-entries.list 224 di 4747 con truncated=true (sessioni 08df97b8-06cc-4faa-be8b-f49ca1538dce e il nuovo test di acquisizione della documentazione); prima della correzione entrambe fallivano con OL_E_RUNTIME_RESPONSE_TOO_LARGE (sessione f51dcb59-a723-4570-b6c5-b61e628a7993). Evidenza: research/reports/documentation-audit/runtime/. |
drivers.read, tickets.read | RUNTIME_VALIDATED | Sessione e5454061 |
vehicle.variables.list, vehicle.variable.get, vehicle.variable.set | RUNTIME_VALIDATED | Refresh_Strings 0 -> 1 -> 0 nella sessione runtime registrata come Runtime-Proven in research/reports/OmsiHook-Parity-Wave-A-Closure-001.md (1,025 nomi enumerati, secondo OMSILAUNCH-AUTONOMOUS-BUILD-001.md); il report non registra l'id di sessione |
vehicle.string-variables.list, vehicle.string-variable.get | RUNTIME_VALIDATED (solo lettura) | Sessione e5454061; scritture BI-004 UNAVAILABLE |
vehicle.constants.list, vehicle.constant.get, vehicle.curves.list, vehicle.curve.evaluate, vehicle.hofs.read | RUNTIME_VALIDATED | Sessione e5454061 |
d3d.status, d3d.texture.create, d3d.texture.describe, d3d.texture.update, d3d.texture.release, rifiuto degli handle rilasciati | RUNTIME_VALIDATED | Matrice, "basic D3D texture lifecycle"; note delle capability runtime.d3d.* (sessione 4378899d per lo slot del dispositivo) |
| Eventi di perdita / reset / ripristino del dispositivo D3D, invalidazione della generazione (RV-007) | RUNTIME_VALIDATED (resetting/restored) | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) D01 sessione fc07946e-58dd-4ddc-af7e-10c7e61a899a: una modifica temporanea della modalità di visualizzazione (produttore di test, mai pubblico, nessuna chiamata di reset sintetica) ha indotto OMSI a eseguire due volte il reset del dispositivo. Sono stati emessi d3d.resetting/d3d.restored, la generazione è avanzata a ogni ciclo, una richiesta durante il reset ha ricevuto OL_E_D3D_RESET_IN_PROGRESS, la texture precedente alla perdita è stata rifiutata con OL_E_D3D_STALE_RESOURCE_HANDLE e le nuove texture hanno funzionato. OMSI è passato direttamente a DEVICENOTRESET, quindi una transizione lost distinta non è stata prodotta. Un tentativo ha causato il crash di OMSI in DSound.dll (cambio dell'endpoint audio del display; l'owner ha ripristinato esattamente). |
events.read / events watch | RUNTIME_VALIDATED | Ogni sessione (ciclo di vita guidato dalla telemetria) |
internal.road-vehicles.make-basic | INTERNAL | Irraggiungibile attraverso le superfici pubbliche |
Funzionalità di avvio#
| Funzionalità | Stato | Evidenza |
|---|---|---|
/set e settings del profilo (configuration.options.semantic) | RUNTIME_VALIDATED | RV-005 |
| Profili di sessione (compilatore rigoroso, conflitti, confinamento dei percorsi inclusi i reparse point S-17) | RUNTIME_VALIDATED (ambito dell'avvio da profilo) | Round A RA-009, Test-Beta3SessionProfile.ps1, 2026-09-22: splash screen gestita, Internet Textures (texture da Internet) disattivate e preset graphics.maxFPS=30; options.cfg ripristinato, fixture intatta, nessun journal/lease/processo. |
Caricamento di /spec (limite di 1 MiB, proprietà sconosciute rifiutate, timeout rispettati) (S-20) | STATICALLY_VALIDATED | Test cli.* |
Splash screen gestita PTB/ENG/DEU/FRA | RUNTIME_VALIDATED | RV-006 |
Internet Textures Disabled (soppressione del downloader in-process) | STATICALLY_VALIDATED | Percorso di telemetria internet-textures.suppressed; non citato nella matrice |
Protezione dei target .itx delle Internet Textures (Round A RA-011/RA-012, ciclo di correzione CP-05, addendum E): radice canonica, target canonico, percorso relativo, regole sui segmenti; è ammesso solo un segmento di directory denominato texture sotto la radice (mytexture, texture_backup, texture2 e texture nella radice assoluta non lo sono); target con attraversamento, assoluti, relativi alla radice e junction vengono rifiutati; le diverse grafie convergono in un unico percorso canonico della transazione | STATICALLY_VALIDATED | presentation.itx-target-root-normalization, presentation.itx-target-guard-rejections |
Internet Textures Override | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md): I01 sessione 6eac2dac-c7e9-49a1-acbf-2a5d59c1c0d3: il downloader di OMSI ha inviato HEAD e GET a un server di loopback per un target esistente e per uno originariamente assente, li ha scritti entrambi, e dopo l'arresto canonico il target assente è stato rimosso e quello esistente ripristinato in modo esatto a livello di byte; I02 sessione a8f2b720-e41a-4e34-86bf-125bf519a5bd: lo stesso dopo la terminazione di owner e OMSI, tramite /recover. |
/date, /time, /year, flag del meteo, flag del veicolo del giocatore (STATICALLY_PARTIAL) | UNAVAILABLE | Il pianificatore contrassegna il piano come non eseguibile (OL_E_CAPABILITY_UNAVAILABLE); il plugin rifiuta le modalità di data/ora diverse da Unset |
/entrypoint:<identity> (BI-001) | PARTIAL | Piano non eseguibile (RUNTIME_PARTIAL) |
/last (LastMapState, BI-006) | UNAVAILABLE | UNSUPPORTED_FOR_CURRENT_PROFILE |
Overlay di tastiera/controller InputSpec (BI-005) | UNAVAILABLE | I parser esistono; non applicati |
Assegnazione headless del PlayerVehicle (BI-007), SetActualDateTime (BI-002), controllo del meteo ICAO (BI-003), scritture delle variabili stringa (BI-004), riposizionamento tra tile (BI-008) | UNAVAILABLE | Bloccati fino al completamento dell'implementazione |
Individuazione tramite /list (content.*) | STATICALLY_VALIDATED; osservato a runtime | discovery.fixture; la chiusura a runtime ha usato /list:situations sull'installazione autorizzata (identità inclusa quella non ASCII situations\Nur für Fortgeschrittene.osn) |
/quiet, /serve | UNAVAILABLE | ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT |
Flag di diagnostica (/log, /logall, /omsi-logall, /verbose, /trace*) | PARTIAL | Trasportati in DiagnosticsSpec; effetto limitato alla traccia dell'host |
Host Windows e area di notifica#
| Funzionalità | Stato | Evidenza |
|---|---|---|
Indicatore nell'area di notifica (OmsiLaunchW.exe): icona nell'area di notifica, stato, «End session» con conferma e Cancel, riavvio di Esplora risorse, finestre di dialogo aperte mentre arriva un arresto, arresto durante /observe-seconds, finestre di dialogo di errore (S-16) | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) sul candidato 3 (dopo la correzione BUG-04): T01 sessione 6d827c13-caf8-4221-832a-c91d26f130e0 (icona trovata in Shell_TrayWnd, finestra di stato pt-BR, il riavvio di Esplora risorse ha riaggiunto l'icona, Cancel ha mantenuto la sessione, End session l'ha terminata in 607 ms e ha rimosso l'icona); T02 sessione 0939a151-bf03-4ca9-8294-8b0088df7d30 (finestre di stato e di conferma aperte durante un arresto tramite pipe); T03 sessione 7e6e805d-69c2-47a3-9fa3-4cdccbe3ccb8; T04 sessione 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (finestre di dialogo di errore negli argomenti, di nessuna sessione attiva e di errore della sessione, con codici). I codici di uscita dello shim 100-106 non sono stati prodotti. |
Riavvio con /silent che restituisce 0 quando l'host si è avviato | RUNTIME_VALIDATED | Ciclo di chiusura a runtime (research/reports/runtime-closure/FINAL-RUNTIME-VALIDATION-REPORT.md) T04 sessione 8ddc4cc9-3089-4c0c-b062-f0c526ce0e4a (candidato 3, dopo la correzione BUG-03): il launcher ha restituito 0 e un chiamante che ne catturava l'output ha ricevuto la fine dello stream dopo 0.4 s mentre la sessione OmsiLaunchW era in esecuzione senza finestra della console; la sessione si è arrestata con un ripristino esatto |
| Codici di uscita dello shim di bootstrap 100-106, buffer dinamico del percorso (S-21) | STATICALLY_VALIDATED | Test-ReleaseIdentity.ps1 |
Nuovo test dell'audit della documentazione (chiusura della documentazione 0.1.0-beta3)#
Pacchetto 9F8CC87B238A677F7238C262E8FE0496832263B6C0A58083409EB485C03C6F17 sull'installazione autorizzata, con BUG-05, BUG-06, BUG-07 e lo smoke test ripetuti sul pacchetto finale B8462ED6C596843E778C33DF4E93EBA3ACC875B7E43B011D60E5A21A16032E35 (R01 sessione 56cdee4b-9160-49fc-b0fd-5134ff9fe2d0, sessione di acquisizione della documentazione 40046805-5337-48fc-90dd-e7d3500ed3b4); evidenza in research/reports/documentation-audit/runtime/ e research/reports/OMSILAUNCH-BETA3-FINAL-DOCUMENTATION-AUDIT.md.
| Elemento | Stato | Evidenza |
|---|---|---|
OmsiLaunchW.exe segnala un avvio non eseguibile (BUG-06) | RUNTIME_VALIDATED | /new ... /date:2026-09-20 con OmsiLaunchW.exe: finestra di dialogo Requested capability unavailable: world.explicit-date / Code: OL_E_CAPABILITY_UNAVAILABLE, uscita 1, nessun processo OMSI (doc-bug06-dialog.json; pacchetto installato 9f8cc87b..., per scelta progettuale non viene creata alcuna sessione) |
| Le route CLI pubblicizzate sono sintassi reale (BUG-07) | RUNTIME_VALIDATED | Ogni alternativa di route client stampata da help --json e capabilities --json installati (32 descrittori) è stata accettata dal parser installato; nessuna ha stampato il messaggio di utilizzo (doc-bug07-routes.json; pacchetto installato 9f8cc87b...) |
| Ogni riga di comando della pagina degli esempi CLI | RUNTIME_VALIDATED | 43 righe client eseguite sulla sessione owner 08df97b8-06cc-4faa-be8b-f49ca1538dce (situazione salvata; events watch saltato perché resta in esecuzione fino a Ctrl+C), concluse con il session stop della pagina stessa (uscita dell'owner 0). Tutte corrispondevano alla pagina tranne vehicle.constant.get con name=max_speed, una costante che quell'autobus non ha; la pagina ora usa antrieb_getr_version. L'esempio di profilo grundorf-quick non veniva pianificato (backslash raddoppiati in scalari YAML semplici) ed è stato corretto; ogni riga senza sessione è stata eseguita dalla radice dell'installazione, le righe di avvio con /plan (doc-client-examples.json, doc-examples-no-session.json, doc-profile-example.json) |
Smoke test NEW_MAP con /observe-seconds sul pacchetto finale | RUNTIME_VALIDATED | R01 sessione 08570134-cfd8-4726-a472-5f6dd2f04c8f, stato finale pulito (research/reports/runtime-closure/doc-R01-*) |
Elenco consolidato RUNTIME_VALIDATION_REQUIRED#
Il ciclo di chiusura a runtime del 2026-09-23 ha chiuso la coda precedente. Resta vuota, eccetto gli elementi che non possono essere prodotti in modo sicuro su questa installazione:
- Gameplay, letture, comandi e arresto con Steam LAA: richiedono un'installazione Steam autentica (ambiente; la riga sopra è
PARTIAL). - Rimozione di RoadVehicle e Human per RV-002: nessun produttore sicuro di rimozioni (la riga sopra è
PARTIAL).
Gli elementi che restano offline perché non possono essere prodotti dall'esterno del prodotto sono indicati nelle rispettive righe e non fanno parte della coda: corruzione delle risposte della mailbox, risposte sovradimensionate, troncamento della cronologia degli eventi, la transizione D3D lost, il logoff, i codici di uscita dello shim 100-106 e il ramo differito di recupero pre-fingerprint.
Correlati: capability, limitazioni note, transazioni e recupero, compatibilità.