# Roadmap Invest Harness Этапы выражают зависимости и критерии готовности, не календарные обещания. Названия компонентов и схемы всей системы находятся в [основной диздоке](design.md). | Этап | Результат | Критерий выхода | |---|---|---| | P0 Контракты и DSH spike | Зафиксированная сборка DSH; adapter harness; Runner Protocol; исправленные границы UI, config, credentials и agent loop | Load/run/cancel/dispose одного DSH-плагина; один и тот же ExecutionSpec локально и в тестовом Runner; pinned commit, digest и compatibility report | | P1 JSON Schema Driven компоненты | Общие формы config, connections selectors, validation errors и revision editor | Общий корпус fixtures в JS/Go, defaults, nested objects, secrets refs, upgrade preview; неизвестные keywords отвергаются | | P2 Реестры пакетов | Каталоги harness, plugin, skill, template; OCI registry и package storage; discovery plugin | Publish/resolve/download по digest, permissions, блокировка, immutable versions, проверка DSH-совместимости | | P3 Локально и on-premise | CLI, локальный DSH, self-hosted control plane, PostgreSQL и S3, bootstrap admin, backup/restore | Установка на чистой машине, запуск без облачной учётки, обновление/rollback, restore rehearsal; изолированный режим с кешированными пакетами | | P4 Запуск на Runner’ах | Managed и customer-managed pools, стандартный adapter, lease/fencing, events, quotas, scheduling plugin | Повтор claim/complete, потеря связи, отмена, тайм-аут, дедупликация occurrence, отказ чужому tenant; нет двойного dispatch | | P5 Provider plugins | Claude, Codex, xAI и другие; API и отдельно допущенные account modes | Матрица deploymentMode/authMode, refresh/revoke, доказанная возможность официальной интеграции; неподтверждённый mode скрыт/disabled | | P6 Standalone JS app | Общий TypeScript/React UI: PWA, desktop shell, mobile shell | Desktop через Electron и локальный sidecar; mobile через Capacitor как клиент Runner; безопасный IPC, deep links, login/cancel/reconnect | | P7 API edge cases и эксплуатация | Provider conformance, нагрузка, отказоустойчивость, observability | Выполнена матрица edge cases, лимиты подтверждены измерениями; Kubernetes Runner только после потребности и отдельной проверки | Edge cases не откладываются целиком до P7: auth/stream/retry проверки являются gate каждого провайдера уже на P5. P7 расширяет сочетания и нагрузку. Работа над UI и provider spikes может идти параллельно после P0, но publication gate не пропускается. ## Standalone не означает одинаковый runtime везде Desktop UI общается с локальным Go sidecar и DSH Node runtime через ограниченный IPC. Node integration в renderer выключена; изоляция контекста включена. Mobile и PWA управляют удалённым или доступным on-prem Runner; Docker и полный DSH на телефоне не обещаются. Offline mobile — кеш каталога/черновиков, не выполнение произвольного harness. Локальное выполнение на мобильном устройстве требует отдельного capability и будущего runtime. On-prem control plane размещается у клиента. Собственный Runner, подключённый к облачному control plane, — другой режим и сам по себе не является on-prem установкой всей платформы. ## Готовность к началу реализации Можно начинать P0–P2 по текущим контрактам. Нельзя объявлять готовыми универсальную DSH-совместимость, перенос сессии между средами и вход по подписке любого провайдера до выполнения соответствующих gate. Функциональность без подтверждённого mode не блокирует API-key путь и базовую платформу.