Документация OmsiLaunch
Перевод исходной страницы на английском языке для OmsiLaunch 0.1.0-beta3. Нормативной является английская страница: при расхождениях приоритет имеют английская страница и код.
Это нормативная английская документация OmsiLaunch 0.1.0-beta3 — базовой версии после этапа укрепления (post-hardening). OmsiLaunch обеспечивает программируемый запуск, владение сеансом и runtime-управление ровно для одной сборки OMSI 2 — профиля Omsi23004_692EBFBF. Каждая страница в docs/ описывает то, что делает текущий код; если страница и код расходятся, прав код, а страница содержит ошибку.
Во всей документации используется следующая шкала стабильности: STABLE_BETA, EXPERIMENTAL, PARTIAL, INTERNAL, UNAVAILABLE. Флаги, которые разбираются, но ничего не делают, помечены как ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT (принимается для совместимости, сейчас ни на что не влияет). Ничто не считается проверенным в runtime, если этого не подтверждает статус проверки в runtime.
Кому что читать#
| Аудитория | С чего начать | Далее |
|---|---|---|
| Пользователи (CLI, ярлыки, профили сеанса) | Установка, Первый сеанс | Справочник CLI, Примеры CLI, Профили сеанса, Значок в трее Windows, Коды выхода |
Интеграторы (OmsiLaunch.Api, локальный IPC) | Быстрый старт с публичным API, Справочник публичного API, Справочник LaunchSpec | Жизненный цикл сеанса, Runtime-управление, Возможности, Локальное управление / IPC, Справочник ошибок |
| Сопровождающие (выпуск, проверка, границы) | Упаковка, Модель постоянного плагина | Транзакции и восстановление после сбоя, Совместимость, Известные ограничения, Статус проверки в runtime |
Навигация#
| Страница | Назначение |
|---|---|
| Начало работы | Спланировать, запустить, наблюдать и остановить один сеанс из корневого каталога OMSI. |
| Установка | Предварительные требования, распаковка пакета в корневой каталог OMSI, проверка с помощью /version, чистое удаление. |
| Быстрый старт с публичным API | Законченная программа на .NET, которая планирует, запускает, читает и останавливает один сеанс. |
| Справочник CLI | Все флаги, командные слова и иерархические маршруты OmsiLaunch.exe / OmsiLaunchW.exe. |
| Примеры CLI | Готовые к копированию командные строки для типовых задач. |
| Справочник LaunchSpec | Все свойства LaunchSpec и значения перечислений, правила загрузки JSON для /spec. |
| Справочник профилей сеанса | Схема profile.yaml omsilaunch.session-profile/v1, ключи, ограничения, приоритет. |
| Справочник публичного API | IOmsiLaunch, публичные записи и перечисления, стабильность каждого члена. |
| Перечень публичного API | Сгенерированный список всех публичных типов и членов с сигнатурами и стабильностью. |
| Runtime-управление | Канал runtime-команд, тайм-ауты, handle, семантика остановки. |
| Справочник возможностей | Каталог возможностей и все идентификаторы публичных runtime-операций с их классификацией. |
| Жизненный цикл сеанса | Переходы SessionState, что обещает StartSessionAsync, как завершается сеанс. |
| Транзакции и восстановление после сбоя | Состояния журнала, резервные копии, проверка восстановления, удаления в рамках сеанса, восстановление после аварийного завершения. |
| Модель постоянного плагина | Замыкание плагина plugins\OmsiLaunch.*, контроль целостности по манифесту, чего сеанс никогда не касается. |
| Локальное управление / IPC | Протокол именованного канала (named pipe) 0.1, конечная точка для каждой установки, привязка к session_id, модель доверия. |
| OmsiLaunchW.exe | Оконный хост Windows (без консоли): отличия от OmsiLaunch.exe, /silent, диалоги, коды выхода. |
| Значок в трее Windows | Индикатор в области уведомлений: значок, меню, окно состояния поле за полем, End session (завершение сеанса), перезапуск Проводника (Explorer). |
| Справочник ошибок | Все коды OL_E_* / OL_W_* с категорией и значением. |
| Коды выхода | Значения PublicExitCode от 0 до 10 и коды shim-загрузчика от 100 до 106. |
| Упаковка / структура установки | Файлы в релизном ZIP-архиве, release-manifest.json, структура .omsilaunch\. |
| Совместимость / поддерживаемые сборки OMSI | Единственный поддерживаемый хеш Omsi.exe, принимаемый хеш Steam LAA, требования к платформе. |
| Известные ограничения | Что в этой бета-версии не поддерживается, поддерживается частично или является принятым риском. |
| Статус проверки в runtime | Что выполнялось под OMSI, что выполнялось только офлайн и что ещё требует реального сеанса. |
Страницы в корне репозитория, которые остаются нормативными для сопровождающих: README.md, PUBLIC-API.md, RUNTIME-CONTROL.md, RUNTIME-CAPABILITIES.md, BUILD-PROFILES.md, IMPLEMENTATION-STATUS.md, TESTING-AND-VALIDATION.md, POST-RELEASE-BACKLOG.md. Они дают сводку; подробным справочником служат перечисленные выше страницы. Исторические страницы перечислены в манифесте документации.
Как документация поддерживается в актуальном состоянии#
Гейт документации tests\OmsiLaunch.DocumentationTests компилируется с OmsiLaunch.Api и OmsiLaunch.Core и сравнивает перечисленные выше страницы с кодом, который определяет публичную поверхность:
| Гейт | Что проверяет |
|---|---|
docs.cli-flags | Каждый элемент CliInput.KnownFlags присутствует в справочнике CLI в виде `/flag` или `/flag:`; каждый элемент CliInput.AcceptedNoEffectFlags помечен в своей строке как ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT; каждое командное слово и каждый маршрут CliInput.HierarchicalRoutes приведены вместе со своей runtime-операцией; для каждого значения PublicExitCode есть строка | n | в таблице кодов выхода. |
docs.capabilities | Каждый идентификатор PublicCapabilityRegistry.All, каждый элемент PublicCapabilityRegistry.PublicRuntimeOperationIds и каждое имя PublicCapabilityClassification присутствуют в справочнике возможностей. |
docs.errors | Каждый код PublicErrorCodes.All присутствует в справочнике ошибок, и ни один литерал OL_E_* / OL_W_* в src\ или tools\OmsiLaunch.Cli\ не отсутствует в PublicErrorCodes. |
docs.public-api | Каждый экспортируемый тип OmsiLaunch.Api, каждое значение перечисления и каждый член IOmsiLaunch присутствуют в справочнике публичного API, и используются все пять слов стабильности. |
docs.launchspec | Каждое публичное свойство, достижимое из LaunchSpec, и каждое значение его перечислений присутствуют в справочнике LaunchSpec. |
docs.session-profiles | Каждый ключ SessionProfileCompiler.SchemaKeys, идентификатор схемы и ограничение 256 KiB присутствуют в справочнике профилей сеанса. |
docs.structure | Каждая страница из таблицы навигации существует. |
docs.links | Каждая относительная ссылка в docs\**\*.md (за исключением docs\localized\) и в корневых файлах *.md указывает на существующий файл или каталог. |
docs.localization | Для каждой локали, указанной в docs\localized\LOCALIZATION-MANIFEST.md, есть все страницы локализуемого набора; каждая страница сохраняет заголовки, таблицы и блоки кода английской страницы, каждый встроенный фрагмент кода (флаги, идентификаторы возможностей и операций, коды ошибок, ключи, идентификаторы) и каждую ссылку, а её относительные ссылки разрешаются. |
Гейт — один из наборов тестов, которые запускает tools\Invoke-OfflineValidation.ps1 (его можно пропустить с помощью -SkipDocs). Он работает офлайн, никогда не запускает OMSI и прерывает сборку, если флаг, маршрут, возможность, код ошибки, значение перечисления или публичный тип не задокументированы либо ссылка не работает. Прозу он не проверяет, поэтому страница всё равно может неверно описывать поведение; о таком случае следует сообщать как об ошибке в странице.
Переводы#
docs\localized\<locale>\ содержит полные переводы этой документации 0.1.0-beta3 для pt-BR, pt-PT, en-GB, fr-FR, de-DE, es-ES, es-LATAM, it-IT, pl-PL, nl-NL, ru-RU, zh-CN, zh-TW и ja-JP. Набор страниц, корневые каталоги локалей и страницы, которые намеренно не переводятся, перечислены в localized/LOCALIZATION-MANIFEST.md. Переводы сохраняют без изменений все команды, флаги, идентификаторы, коды ошибок и примеры английских страниц, и гейт docs.localization это проверяет. Нормативным источником остаются английские страницы: если перевод расходится с ними, приоритет имеют английская страница и код, а перевод содержит ошибку.