Skip to content

Out-of-process verify worker

Текущее состояние (CIDE + AEE):

build_verify_host Поведение
supervised-inproc (default) BuildTestJobCoordinator в IDE; dotnet build/test в дочерних процессах
supervised-worker-process One-shot: dotnet exec BuildVerifyWorker.dll build\|test … на каждый job
supervised-worker-daemon (opt-in) Long-lived: dotnet exec … serve, JSON-lines IPC (enqueue / status / wait / cancel)

Долгая цель ADR 0148: изоляция coordinator и нагрузки от UI; daemon снижает latency повторных verify.

Артефакт

tools/CascadeIDE.BuildVerifyWorker — консоль net10.0. Копируется рядом с CascadeIDE.exe (CopyBuildVerifyWorker).

Настройки ([agent.environment])

build_verify_host = "supervised-inproc"
# build_verify_worker_assembly_path = ""

CLI one-shot

dotnet exec CascadeIDE.BuildVerifyWorker.dll build Path/To/Solution.sln
dotnet exec CascadeIDE.BuildVerifyWorker.dll test Path/To/Solution.sln --filter FullyQualifiedName~SomeTests

Daemon IPC (serve)

Запуск: dotnet exec CascadeIDE.BuildVerifyWorker.dll serve

  • Первая строка stdout: {"id":"0","ok":true,"ready":true,"protocol":1}
  • Далее: одна JSON-строка на запрос (stdin) и одна на ответ (stdout)

Операции:

op Поля Ответ
ping pong: true
enqueue kind build|test, path, filter?, timeout_seconds?, include_raw_output? accepted, job_id
get_status job_id status (как у coordinator)
wait job_id result_json
cancel job_id cancelled
shutdown завершение процесса

Закрытие stdin воркера → graceful exit.

Клиент в IDE: BuildVerifyWorkerDaemonClient + DaemonBuildVerifyWorkerBackend.

L0 + warmup

При l0_include_warmup_cs = true L0 добавляет .cs из solution warm-up (см. defaults agent.environment.ladder).

Следующий шаг

  • Auto-restart daemon при падении (policy в settings).
  • Semantic L0 / affected-project graph (0141+).