| 1 | # AEE Orion local test-drive (v1) |
| 2 | |
| 3 | Сценарии от ревью Orion, привязка к **MLP** (текущая реализация) и автоматизация. |
| 4 | |
| 5 | ## Быстрый запуск |
| 6 | |
| 7 | ```powershell |
| 8 | pwsh -File scripts/aee/orion-test-drive.ps1 |
| 9 | pwsh -File scripts/aee/orion-test-drive.ps1 -Ui # + чеклист в IDE |
| 10 | ``` |
| 11 | |
| 12 | Фильтр xUnit: `Category=AgentEnvironment` → класс `AgentEnvironmentOrionStressTests`. |
| 13 | |
| 14 | ## 1. Stale context & epochs (выносливость) |
| 15 | |
| 16 | | Orion | MLP сейчас | Как проверить | |
| 17 | |-------|------------|---------------| |
| 18 | | Микро-правки 500 ms + `/agent verify` | `AgentVerifyEpochTracker` → `AgentVerifyEpochStale`; новый verify **отменяет** предыдущий (`superseded`) | `Stress_MicroWrites_*`, `Stress_RapidVerify_*`, `Stress_RapidVerifyAndMicroWrites_*` | |
| 19 | | Coalesce 1.5 s схлопывает запросы | **Только L2 build** внутри одного climb (`EnvironmentTaskDedup`), не очередь slash-verify | `Stress_Dedup_*` | |
| 20 | | Очередь CancellationToken | Один `_activeCts` на run; при новом verify — cancel + dispose | `Stress_RapidVerify_SupersedesPredecessor_*` | |
| 21 | |
| 22 | **В IDE:** открыть solution → `/agent verify standard` → править `.cs` каждые ~500 ms → `/agent status` (не должен зависать). |
| 23 | |
| 24 | ## 2. Substrate bundle (глухая изоляция) |
| 25 | |
| 26 | | Orion | MLP сейчас | Как проверить | |
| 27 | |-------|------------|---------------| |
| 28 | | `_cide_sandbox/{run_id}` | `%LocalAppData%/CascadeIDE/agent-runs/{run_id}/substrate/` | `/agent sandbox agent_ephemeral` | |
| 29 | | Порты без `SocketException` | `AgentSandboxSubstrate.ReserveFreeTcpPort()` на run | `Stress_ParallelSubstrate_*` | |
| 30 | | БД не протекает между run | `wit.db` + `owner.txt` per run; `RecreateSubstrateBeforeTests` перед L3 | тот же тест | |
| 31 | |
| 32 | ## 3. Supervised host death |
| 33 | |
| 34 | | Orion | MLP сейчас | Как проверить | |
| 35 | |-------|------------|---------------| |
| 36 | | `FailFast` / kill MSBuild worker | Host kind `supervised-inproc`; смерть job → `AgentEnvironmentTaskDied` | `Stress_HostDeath_*` (`TestJobStatusFactory` → null status) | |
| 37 | | UI glyph Died | DataBus → `RefreshPfdBackgroundStatusBar` (нет отдельного glyph W3+) | UI: убить dotnet во время verify (ручной краш) | |
| 38 | | Чат не зависает | `AgentRunCompleted` / cancel; chat projection async | UI: `/agent cancel` после сбоя | |
| 39 | |
| 40 | **Идеал (не MLP gate):** отдельный supervised MSBuild process + auto-restart (ADR §8.1.5 open Q #10). |
| 41 | |
| 42 | ## Ограничения тестов без IDE |
| 43 | |
| 44 | - Интеграция с реальным `CascadeIDE.sln` — тесты ищут solution вверх от `bin/`; если нет — часть тестов no-op `return`. |
| 45 | - `Environment.FailFast` в процессе теста убьёт весь test host — используем симуляцию через `job not found` → `TaskDied`. |
| 46 | |
| 47 | ## Связанные документы |
| 48 | |
| 49 | - [ADR 0148](../adr/0148-agent-execution-environment-verification-ladder-and-native-tooling.md) |
| 50 | - [playbook-agent-environment-v1.md](playbook-agent-environment-v1.md) |
| 51 | |