AEE Orion local test-drive (v1)¶
Сценарии от ревью Orion, привязка к MLP (текущая реализация) и автоматизация.
Быстрый запуск¶
pwsh -File scripts/aee/orion-test-drive.ps1
pwsh -File scripts/aee/orion-test-drive.ps1 -Ui # + чеклист в IDE
Фильтр xUnit: Category=AgentEnvironment → класс AgentEnvironmentOrionStressTests.
1. Stale context & epochs (выносливость)¶
| Orion | MLP сейчас | Как проверить |
|---|---|---|
Микро-правки 500 ms + /agent verify |
AgentVerifyEpochTracker → AgentVerifyEpochStale; новый verify отменяет предыдущий (superseded) |
Stress_MicroWrites_*, Stress_RapidVerify_*, Stress_RapidVerifyAndMicroWrites_* |
| Coalesce 1.5 s схлопывает запросы | Только L2 build внутри одного climb (EnvironmentTaskDedup), не очередь slash-verify |
Stress_Dedup_* |
| Очередь CancellationToken | Один _activeCts на run; при новом verify — cancel + dispose |
Stress_RapidVerify_SupersedesPredecessor_* |
В IDE: открыть solution → /agent verify standard → править .cs каждые ~500 ms → /agent status (не должен зависать).
2. Substrate bundle (глухая изоляция)¶
| Orion | MLP сейчас | Как проверить |
|---|---|---|
_cide_sandbox/{run_id} |
%LocalAppData%/CascadeIDE/agent-runs/{run_id}/substrate/ |
/agent sandbox agent_ephemeral |
Порты без SocketException |
AgentSandboxSubstrate.ReserveFreeTcpPort() на run |
Stress_ParallelSubstrate_* |
| БД не протекает между run | wit.db + owner.txt per run; RecreateSubstrateBeforeTests перед L3 |
тот же тест |
3. Supervised host death¶
| Orion | MLP сейчас | Как проверить |
|---|---|---|
FailFast / kill MSBuild worker |
Host kind supervised-inproc; смерть job → AgentEnvironmentTaskDied |
Stress_HostDeath_* (TestJobStatusFactory → null status) |
| UI glyph Died | DataBus → RefreshPfdBackgroundStatusBar (нет отдельного glyph W3+) |
UI: убить dotnet во время verify (ручной краш) |
| Чат не зависает | AgentRunCompleted / cancel; chat projection async |
UI: /agent cancel после сбоя |
Идеал (не MLP gate): отдельный supervised MSBuild process + auto-restart (ADR §8.1.5 open Q #10).
Ограничения тестов без IDE¶
- Интеграция с реальным
CascadeIDE.sln— тесты ищут solution вверх отbin/; если нет — часть тестов no-opreturn. Environment.FailFastв процессе теста убьёт весь test host — используем симуляцию черезjob not found→TaskDied.