Forge
markdowndeeb25a2
1# Отладка: единый слой для человека и агента (целевое видение)
2
3**Статус:** зафиксированная цель продукта; реализация по мере итераций.
4**Связь:** [MCP-PROTOCOL.md](MCP-PROTOCOL.md), [architecture-policy.md](architecture-policy.md). Решение в формате ADR: [adr/0002-debug-human-agent-parity.md](adr/0002-debug-human-agent-parity.md).
5
6## Зачем
7
8CascadeIDE позиционируется как IDE, которой агент управляет через MCP, при этом **человек остаётся в одной среде** с агентом. Для редактирования и UI это уже близко к одному каналу (тулы меняют то же окно, что видит пользователь).
9
10Для **отладки** пока возможен разрыв: агент может выставлять брейкпоинты и получать стек/переменные через отдельный контур (например внешний `dotnet-debug-mcp` + файлы брейкпоинтов), а в самой IDE пользователь **не обязан видеть** те же маркеры и то же состояние остановки. Тогда совместная работа («я на строке X, переменные такие — шагаем дальше?») становится ненадёжной.
11
12## Цель (критерий «сделано»)
13
14Один **источник правды** по состоянию отладки внутри CascadeIDE:
15
161. **Брейкпоинты** — те же, что в глифах редактора и в списке точек, что и те, что отражают `ide_set_breakpoint` и канонический snapshot/debug read API.
172. **Останов** — текущая строка и подсветка в редакторе совпадают с тем, что агент может запросить через MCP (`ide_get_debug_snapshot`, состояние панели отладки).
183. **Стек и переменные** — данные в UI панели отладки и данные, которые агент получает через MCP (`ide_debug_stack_trace`, `ide_debug_variables`, `ide_get_debug_snapshot`), согласованы (одна сессия / одна модель, а не два независимых процесса без синхронизации).
19
20Внешние отладчики (netcoredbg, DAP) могут оставаться **движком**, но **состояние** для человека и для MCP должно проходить через **слой IDE**, а не расходиться «в обход».
21
22## Не цель этого документа
23
24- Не дублировать канон **agent-notes** по общему backlog MCP+IDE — только фиксация **видения по отладке**.
25- Не описывать пошаговую реализацию — её ведут задачи в коде и при необходимости отдельные ADR.
26
27## История
28
29- Документ введён, чтобы явно закрепить требование паритета человек/агент в отладочном контуре.
30
View only · write via MCP/CIDE