Forge
markdowndeeb25a2
1# Out-of-process verify worker
2
3Текущее состояние (CIDE + AEE):
4
5| `build_verify_host` | Поведение |
6|---------------------|-----------|
7| `supervised-inproc` (default) | `BuildTestJobCoordinator` в IDE; `dotnet build`/`test` в дочерних процессах |
8| `supervised-worker-process` | One-shot: `dotnet exec BuildVerifyWorker.dll build\|test …` на каждый job |
9| `supervised-worker-daemon` (opt-in) | Long-lived: `dotnet exec … serve`, JSON-lines IPC (enqueue / status / wait / cancel) |
10
11Долгая цель ADR 0148: изоляция coordinator и нагрузки от UI; daemon снижает latency повторных verify.
12
13## Артефакт
14
15`tools/CascadeIDE.BuildVerifyWorker` — консоль **net10.0**. Копируется рядом с `CascadeIDE.exe` (`CopyBuildVerifyWorker`).
16
17### Настройки (`[agent.environment]`)
18
19```toml
20build_verify_host = "supervised-inproc"
21# build_verify_worker_assembly_path = ""
22```
23
24### CLI one-shot
25
26```bash
27dotnet exec CascadeIDE.BuildVerifyWorker.dll build Path/To/Solution.sln
28dotnet exec CascadeIDE.BuildVerifyWorker.dll test Path/To/Solution.sln --filter FullyQualifiedName~SomeTests
29```
30
31### Daemon IPC (`serve`)
32
33Запуск: `dotnet exec CascadeIDE.BuildVerifyWorker.dll serve`
34
35- Первая строка stdout: `{"id":"0","ok":true,"ready":true,"protocol":1}`
36- Далее: одна JSON-строка на запрос (stdin) и одна на ответ (stdout)
37
38Операции:
39
40| `op` | Поля | Ответ |
41|------|------|--------|
42| `ping` | — | `pong: true` |
43| `enqueue` | `kind` build\|test, `path`, `filter?`, `timeout_seconds?`, `include_raw_output?` | `accepted`, `job_id` |
44| `get_status` | `job_id` | `status` (как у coordinator) |
45| `wait` | `job_id` | `result_json` |
46| `cancel` | `job_id` | `cancelled` |
47| `shutdown` | — | завершение процесса |
48
49Закрытие stdin воркера → graceful exit.
50
51Клиент в IDE: `BuildVerifyWorkerDaemonClient` + `DaemonBuildVerifyWorkerBackend`.
52
53## L0 + warmup
54
55При `l0_include_warmup_cs = true` L0 добавляет `.cs` из solution warm-up (см. defaults `agent.environment.ladder`).
56
57## Следующий шаг
58
59- Auto-restart daemon при падении (policy в settings).
60- Semantic L0 / affected-project graph (0141+).
61
View only · write via MCP/CIDE