Перейти к содержанию

ADR 0002: Единый слой состояния отладки для человека и агента

Статус: Accepted
Дата: 2026-04-02 (ретроспектива; содержание зафиксировано ранее в debug-human-agent-parity-v1.md)

Связанные ADR

Вне ADR

Документ Роль
architecture-policy.md отладка
MCP-PROTOCOL.md MCP PROTOCOL

Контекст

Агент может управлять отладкой через MCP, а пользователь — через UI IDE. Если брейкпоинты, останов, стек и переменные расходятся между внешним контуром и тем, что видит человек, совместная отладка становится ненадёжной.

Решение

Один источник правды по состоянию отладки внутри CascadeIDE:

  1. Брейкпоинты согласованы с глифами редактора и с тем, что отражают тулы вроде ide_set_breakpoint и показ списка точек.
  2. Останов: текущая строка и подсветка в редакторе согласованы с MCP (ide_get_debug_snapshot, ide_debug_stack_trace, состояние панели отладки).
  3. Стек и переменные: UI панели отладки и данные для агента через MCP (ide_debug_stack_trace, ide_debug_variables, ide_get_debug_snapshot) исходят из одной сессии и одной модели, а не из двух несинхронизированных процессов.

Внешний отладчик (netcoredbg, DAP) остаётся движком; состояние для человека и MCP проходит через слой IDE.

Последствия

  • Реализация тянет за собой явный слой (например сессия DAP в IDE), а не раздельные обходы.
  • Документ debug-human-agent-parity-v1.md остаётся каноническим описанием цели; этот ADR фиксирует решение в формате ADR.

Отклонённые альтернативы

  • Два независимых контура без синхронизации — отклонено как противоречащее цели продукта.