- доменные типы internal/catalog лишились json-тегов и MarshalJSON; типы
metricWire/layerWire/aggregationWire и перевод catalogWire живут в транспорте,
тело отказа тоже получило объявленный тип — байты ответа не изменились
- заведён сторож: обход графа типов ответа утверждает, что домен не доезжает до
сериализации, плюс требование json-тега на полях транспортных структур и
заведомо красные случаи к обоим правилам
- решение с ценой обеих сторон записано в architecture.md и ADR; шаг lint в
гейте получил свой кеш — общий на машину красил прогон находками из чужого
worktree
- сервис поднимается через `task up`/`task restart`, данные вынесены в ./data
и переживают пересборку — поток с телефона не прерывается
- `task gate` гоняет build/vet/lint/test/race/покрытие диффа/миграции, плюс два
шага под healthlog: данные о здоровье в индексе и синхронность образцов конфига
- `task review:context` собирает вход для архитектурного прохода ревью